Browse Source

Updated the remaining functions in Product Services to async.

Added string literals to script in WetPancake lib. for quick testing in "script mode".
master
Craig Oates 6 years ago
parent
commit
231b6eea39
  1. 3
      TestCentre/PropertyTests.fs
  2. 30
      WetPancake/ProductServices.fs
  3. 23
      WetPancake/Script.fsx
  4. 8
      WetPancakeCLI/ConsoleCommands.cs

3
TestCentre/PropertyTests.fs

@ -5,11 +5,14 @@
open FsCheck.Xunit
open WetPancake
open TestingConstants
open System.Diagnostics
open System
[<Property>]
let ``Request Random Text does not return null when using the built-in random settings`` () =
let test = Pancake.RequestRandomText
let results = Assert.NotNull test
Debug.WriteLine(String.Format("Result = {0}", test))
Check.Quick results
[<Property>]

30
WetPancake/ProductServices.fs

@ -19,22 +19,24 @@ module Pancake =
}
let RequestText (gibberishLevel: int) (sentences: int) =
let data =
LoadFile (SelectRandomSampleFile())
|> ApplyStandardSetup
|> SortIntoGroups gibberishLevel
|> GenerateMap
GenerateMarkovText sentences data
async {
let data =
LoadFile (SelectRandomSampleFile())
|> ApplyStandardSetup
|> SortIntoGroups gibberishLevel
|> GenerateMap
return GenerateMarkovText sentences data
}
let RequestTextFromFile (gibberishLevel: int) (sentences: int) (filePath: string) =
let data =
LoadFile filePath
|> ApplyStandardSetup
|> SortIntoGroups gibberishLevel
|> GenerateMap
GenerateMarkovText sentences data
async {
let data =
LoadFile filePath
|> ApplyStandardSetup
|> SortIntoGroups gibberishLevel
|> GenerateMap
return GenerateMarkovText sentences data
}
// Add Checks to make sure the client is passing in a .txt file?
// Leave for the client to check?
// Give the client a function to check (and throw) if not handed a .txt file?

23
WetPancake/Script.fsx

@ -124,6 +124,25 @@ printfn "Text: %A" dss_sentences
// (WetPancake) Pancake
let p_result = Pancake.RequestRandomText()
[<Literal>]
let DesktopClock = __SOURCE_DIRECTORY__ + @"\TextFiles\desktop-clock-info.txt"
[<Literal>]
let ConsoleWaterworks = __SOURCE_DIRECTORY__ + @"\TextFiles\console-waterworks-announcement.txt"
[<Literal>]
let WordGenerator = __SOURCE_DIRECTORY__ + @"\TextFiles\word-generator.txt"
[<Literal>]
let TestPost = __SOURCE_DIRECTORY__ + @"\TextFiles\test-post.txt"
let p_result = Pancake.RequestRandomText()
let p_result2 = Pancake.RequestText 5 10
let p_result3 = Pancake.RequestTextFromFile 3 10 "D:\Developer\Wet-Pancake\WetPancake\TextFiles\desktop-clock-info.txt"
let p_result3 = Pancake.RequestTextFromFile 3 10 DesktopClock
let p_result4 = Pancake.RequestTextFromFile 3 10 ConsoleWaterworks
let p_result5 = Pancake.RequestTextFromFile 3 10 WordGenerator
let p_result6 = Pancake.RequestTextFromFile 3 10 TestPost
p_result |> Async.RunSynchronously
p_result2 |> Async.RunSynchronously
p_result3 |> Async.RunSynchronously
p_result4 |> Async.RunSynchronously
p_result5 |> Async.RunSynchronously
p_result6 |> Async.RunSynchronously

8
WetPancakeCLI/ConsoleCommands.cs

@ -59,12 +59,12 @@ namespace WetPancakeCLI
public static string GenerateText(int gibberishLevel, int sentences)
{
if (gibberishLevel < 2) return "Please enter a gibberish level greater than 1.";
try { return RequestText(gibberishLevel, sentences); }
try { return FSharpAsync.StartAsTask(RequestText(gibberishLevel, sentences), _taskCreationOptions, _cancellationToken).Result; }
catch (Exception e)
{
Debug.WriteLine(e.Message);
System.Console.WriteLine("[ERROR] Unable to complete request. Re-executing command...");
return RequestText(gibberishLevel, sentences);
return FSharpAsync.StartAsTask(RequestText(gibberishLevel, sentences), _taskCreationOptions, _cancellationToken).Result;
}
}
@ -78,12 +78,12 @@ namespace WetPancakeCLI
// Could do with checking if the file type is .txt...
if (gibberishLevel < 2) return "Please enter a gibberish level greater than 1.";
try
{ return RequestTextFromFile(gibberishLevel, sentences, filePath); }
{ return FSharpAsync.StartAsTask(RequestTextFromFile(gibberishLevel, sentences, filePath), _taskCreationOptions, _cancellationToken).Result; }
catch (Exception e)
{
Debug.WriteLine(e.Message);
System.Console.WriteLine("[ERROR] Unable to complete request. Re-executing command...");
return RequestTextFromFile(gibberishLevel, sentences, filePath);
return FSharpAsync.StartAsTask(RequestTextFromFile(gibberishLevel, sentences, filePath), _taskCreationOptions, _cancellationToken).Result;
}
}
}

Loading…
Cancel
Save