From 10f602caefe99886f45eabd2e1689cd579d3690a Mon Sep 17 00:00:00 2001 From: "HOT-ROD\\craig" Date: Tue, 5 Jun 2018 01:20:11 +0100 Subject: [PATCH] End of session check-in. Fixed the stick random file bug. In the middle of the random item = 0 bug. --- WetPancake/DataAccess.fs | 2 +- WetPancake/DataServices.fs | 6 ++---- WetPancake/ProductServices.fs | 15 ++++++++------- WetPancake/Script.fsx | 6 +++--- WetPancake/SystemServices.fs | 14 +++++++++----- WetPancakeCLI/ConsoleCommands.cs | 5 +++++ 6 files changed, 28 insertions(+), 20 deletions(-) diff --git a/WetPancake/DataAccess.fs b/WetPancake/DataAccess.fs index 5be2f54..fa2612e 100644 --- a/WetPancake/DataAccess.fs +++ b/WetPancake/DataAccess.fs @@ -12,7 +12,7 @@ CreateSampleTextFilesPath |> FindSampleTextFiles - let SelectRandomSampleFile = + let SelectRandomSampleFile() = let files = ListSampleFiles files.[Random().Next(0, files.Length)] diff --git a/WetPancake/DataServices.fs b/WetPancake/DataServices.fs index ea91311..eb8d55d 100644 --- a/WetPancake/DataServices.fs +++ b/WetPancake/DataServices.fs @@ -7,10 +7,8 @@ open DataCleaning open System.Threading - let PickRandomWord words = PickRandomItem (Random().Next) words - let rec GenerateMarkovChain (map: Map) (state:string) chain = - let nextChoice = map.[state] |> PickRandomWord + let nextChoice = map.[state] |> PickRandomItem if MatchText @"\." nextChoice then nextChoice :: chain else let currentWords = @@ -38,6 +36,6 @@ This isn't ideal but needed so please be careful when attempting to remove this line.*) Thread.Sleep(100) - yield GenerateMarkovSentence map (PickRandomWord startWords).Key + yield GenerateMarkovSentence map (PickRandomItem startWords).Key } result |> ConcatToString \ No newline at end of file diff --git a/WetPancake/ProductServices.fs b/WetPancake/ProductServices.fs index d468354..80bd2f3 100644 --- a/WetPancake/ProductServices.fs +++ b/WetPancake/ProductServices.fs @@ -7,18 +7,19 @@ module Pancake = open DataProcessing open DataStructuring open DataServices + open System let RequestRandomText() = - let data = - LoadFile SelectRandomSampleFile - |> ApplyStandardSetup - |> SortIntoGroups (PickRandomNumber 10) - |> GenerateMap - GenerateMarkovText (PickRandomNumber 10) data + let data = + LoadFile (SelectRandomSampleFile()) + |> ApplyStandardSetup + |> SortIntoGroups (PickRandomNumber 5) + |> GenerateMap + GenerateMarkovText (PickRandomNumber 3) data let RequestText (gibberishLevel: int) (sentences: int) = let data = - LoadFile SelectRandomSampleFile + LoadFile (SelectRandomSampleFile()) |> ApplyStandardSetup |> SortIntoGroups gibberishLevel |> GenerateMap diff --git a/WetPancake/Script.fsx b/WetPancake/Script.fsx index 805de7c..2ed38d1 100644 --- a/WetPancake/Script.fsx +++ b/WetPancake/Script.fsx @@ -22,14 +22,14 @@ open WetPancake let ss_number = PickRandomNumber 10 let ss_item = let items = seq {1 .. 10} - PickRandomItem (Random().Next) items + PickRandomItem items // Data Access let da_sampleFilePath = CreateSampleTextFilesPath let da_sampleTextFiles = FindSampleTextFiles da_sampleFilePath let da_sampleFiles = ListSampleFiles -let da_randomSampleFile = SelectRandomSampleFile +let da_randomSampleFile = SelectRandomSampleFile() let da_file = LoadFile da_randomSampleFile // Data Cleaning @@ -107,7 +107,7 @@ let ds_map7Item = ds_map7.Item(0) // Data Services let dss_text = - LoadFile SelectRandomSampleFile + LoadFile (SelectRandomSampleFile()) |> ReplaceArtifact "\"" |> ReplaceArtifact "\n\nIn" |> ReplaceArtifact "\r" diff --git a/WetPancake/SystemServices.fs b/WetPancake/SystemServices.fs index 7c833cd..7558253 100644 --- a/WetPancake/SystemServices.fs +++ b/WetPancake/SystemServices.fs @@ -4,8 +4,12 @@ let PickRandomNumber max = Random().Next(1, max); - let PickRandomItem (rnd: int -> int) seq = - //let index = rnd 0 ((Seq.length seq) - 1) - //seq |> Seq.item index - let index = Random().Next(Seq.length seq); - seq |> Seq.item index \ No newline at end of file + (*This needs work. + If the seq passed in has count of 0, + it causes exceptions further up the pipe*) + let PickRandomItem seq = + if (Seq.length seq) = 0 then + seq |> Seq.item 0 + else + let index = Random().Next(0, Seq.length seq); + seq |> Seq.item index \ No newline at end of file diff --git a/WetPancakeCLI/ConsoleCommands.cs b/WetPancakeCLI/ConsoleCommands.cs index 8a680b8..034d29c 100644 --- a/WetPancakeCLI/ConsoleCommands.cs +++ b/WetPancakeCLI/ConsoleCommands.cs @@ -43,5 +43,10 @@ namespace WetPancakeCLI [Parameters("gibberish level: int, sentences: int, file path: string")] [Usage("> RequestTextFromFile 3 6 C:/yourfile.txt")] public static string RequestTextFromFile(int gibberishLevel, int sentences, string filePath) => RequestTextFromFile(gibberishLevel, sentences, filePath); + + public static string test1() + { + return RequestRandomText(); + } } }