public void TestByFiltering() { var frequencyOfWords = new Dictionary <string, int> { { "kawaii", 25 }, { "kare", 7 }, { "korosu", 20 }, { "sakura", 3 } }; var syllable = new List <string> { "k", "ka", "kaw" }; var syllableAnalysis = new SyllableAnalysis(frequencyOfWords); List <KeyValuePair <string, List <string> > > autocompleteResults = syllableAnalysis.Autocomplete(syllable); Assert.That(autocompleteResults[0].Key, Is.EqualTo("k")); Assert.That(autocompleteResults[0].Value.Count, Is.EqualTo(3)); Assert.That(autocompleteResults[0].Value[0], Is.EqualTo("kawaii")); Assert.That(autocompleteResults[0].Value[1], Is.EqualTo("korosu")); Assert.That(autocompleteResults[0].Value[2], Is.EqualTo("kare")); Assert.That(autocompleteResults[1].Key, Is.EqualTo("ka")); Assert.That(autocompleteResults[1].Value.Count, Is.EqualTo(2)); Assert.That(autocompleteResults[1].Value[0], Is.EqualTo("kawaii")); Assert.That(autocompleteResults[1].Value[1], Is.EqualTo("kare")); Assert.That(autocompleteResults[2].Key, Is.EqualTo("kaw")); Assert.That(autocompleteResults[2].Value.Count, Is.EqualTo(1)); Assert.That(autocompleteResults[2].Value[0], Is.EqualTo("kawaii")); }
public void TestEmptySyllables() { var frequencyOfWords = new Dictionary <string, int> { { "kanojo", 20 }, { "karetachi", 1 }, { "korosu", 10 }, { "kare", 10 }, { "sakura", 10 } }; var syllableAnalysis = new SyllableAnalysis(frequencyOfWords); List <KeyValuePair <string, List <string> > > autocompleteResults = syllableAnalysis.Autocomplete(new List <string>()); Assert.That(autocompleteResults.Count, Is.EqualTo(0)); }
static void Main(string[] args) { try { InputDataController inputController; SyllableAnalysis syllableInstance; if (args.Length == 1) { inputController = new InputDataController(); inputController.PerformAutomaticInput(args[0]); syllableInstance = new SyllableAnalysis(inputController.FrequencyOfWords); foreach (var syllable in inputController.Syllables) { var autocompleteResult = syllableInstance.Autocomplete(syllable); Console.WriteLine("{0}:", syllable); foreach (var resultWord in autocompleteResult) { Console.WriteLine(resultWord); } Console.WriteLine(); } Console.WriteLine("\n\n"); Console.WriteLine("Elapsed time of the job: {0} ms", syllableInstance.DurationOfTime.TotalMilliseconds); } else { inputController = new InputDataController(); inputController.PerformUserInput(); syllableInstance = new SyllableAnalysis(inputController.FrequencyOfWords); List <KeyValuePair <string, List <string> > > autocompleteResults = syllableInstance.Autocomplete(inputController.Syllables); Console.WriteLine(); foreach (var autocompleteResult in autocompleteResults) { foreach (var autocompleteWord in autocompleteResult.Value) { Console.WriteLine(autocompleteWord); } Console.WriteLine(); } } } catch (Exception exception) { Console.WriteLine(exception.Message); } }
public void TestEmptyFrequencyOfWords() { var syllables = new List <string> { "k", "ka", "kar" }; var syllableAnalysis = new SyllableAnalysis(new Dictionary <string, int>()); List <KeyValuePair <string, List <string> > > autocompleteResults = syllableAnalysis.Autocomplete(syllables); Assert.That(autocompleteResults[0].Key, Is.EqualTo("k")); Assert.That(autocompleteResults[1].Key, Is.EqualTo("ka")); Assert.That(autocompleteResults[2].Key, Is.EqualTo("kar")); Assert.That(autocompleteResults.Count, Is.EqualTo(3)); Assert.That(autocompleteResults[0].Value.Count, Is.EqualTo(0)); Assert.That(autocompleteResults[1].Value.Count, Is.EqualTo(0)); Assert.That(autocompleteResults[2].Value.Count, Is.EqualTo(0)); }
public void TestOrderByWords() { var frequencyOfWords = new Dictionary <string, int> { { "korosu", 10 }, { "kawaii", 10 }, { "kanojo", 10 }, { "karetachi", 10 }, { "kare", 10 } }; var syllables = new List <string> { "k", "ka", "kar" }; var syllableAnalysis = new SyllableAnalysis(frequencyOfWords); List <KeyValuePair <string, List <string> > > autocompleteResult = syllableAnalysis.Autocomplete(syllables); Assert.That(autocompleteResult[0].Key, Is.EqualTo("k")); Assert.That(autocompleteResult[0].Value.Count, Is.EqualTo(5)); Assert.That(autocompleteResult[0].Value[0], Is.EqualTo("kanojo")); Assert.That(autocompleteResult[0].Value[1], Is.EqualTo("kare")); Assert.That(autocompleteResult[0].Value[2], Is.EqualTo("karetachi")); Assert.That(autocompleteResult[0].Value[3], Is.EqualTo("kawaii")); Assert.That(autocompleteResult[0].Value[4], Is.EqualTo("korosu")); Assert.That(autocompleteResult[1].Key, Is.EqualTo("ka")); Assert.That(autocompleteResult[1].Value.Count, Is.EqualTo(4)); Assert.That(autocompleteResult[1].Value[0], Is.EqualTo("kanojo")); Assert.That(autocompleteResult[1].Value[1], Is.EqualTo("kare")); Assert.That(autocompleteResult[1].Value[2], Is.EqualTo("karetachi")); Assert.That(autocompleteResult[1].Value[3], Is.EqualTo("kawaii")); Assert.That(autocompleteResult[2].Key, Is.EqualTo("kar")); Assert.That(autocompleteResult[2].Value.Count, Is.EqualTo(2)); Assert.That(autocompleteResult[2].Value[0], Is.EqualTo("kare")); Assert.That(autocompleteResult[2].Value[1], Is.EqualTo("karetachi")); }
public void InputTest() { var frequencyOfWords = new Dictionary <string, int> { { "kare", 10 }, { "kanojo", 20 }, { "karetachi", 1 }, { "korosu", 7 }, { "sakura", 3 } }; var syllables = new List <string> { "k", "ka", "kar" }; var syllableAnalysis = new SyllableAnalysis(frequencyOfWords); List <KeyValuePair <string, List <string> > > autocompleteResults = syllableAnalysis.Autocomplete(syllables); Assert.That(autocompleteResults.Count, Is.EqualTo(3)); Assert.That(autocompleteResults[0].Key, Is.EqualTo("k")); Assert.That(autocompleteResults[0].Value[0], Is.EqualTo("kanojo")); Assert.That(autocompleteResults[0].Value[1], Is.EqualTo("kare")); Assert.That(autocompleteResults[0].Value[2], Is.EqualTo("korosu")); Assert.That(autocompleteResults[0].Value[3], Is.EqualTo("karetachi")); Assert.That(autocompleteResults[0].Value.Count, Is.EqualTo(4)); Assert.That(autocompleteResults[1].Key, Is.EqualTo("ka")); Assert.That(autocompleteResults[1].Value[0], Is.EqualTo("kanojo")); Assert.That(autocompleteResults[1].Value[1], Is.EqualTo("kare")); Assert.That(autocompleteResults[1].Value[2], Is.EqualTo("karetachi")); Assert.That(autocompleteResults[1].Value.Count, Is.EqualTo(3)); Assert.That(autocompleteResults[2].Key, Is.EqualTo("kar")); Assert.That(autocompleteResults[2].Value[0], Is.EqualTo("kare")); Assert.That(autocompleteResults[2].Value[1], Is.EqualTo("karetachi")); Assert.That(autocompleteResults[2].Value.Count, Is.EqualTo(2)); }
private string Autocomplete(string syllable) { var result = SyllableAnalysis.Autocomplete(syllable); return(string.Join(";", result.ToArray())); }