public void GetAllNecessaryNgramsFromTable_InsideList_Empty() { var wordLists = new List <List <List <string> > > { new List <List <string> > { new List <string> { "a", "b" }, new List <string>(), new List <string> { "e", "f", "g" } }, new List <List <string> > { new List <string> { "z", "x" }, new List <string> { "y" }, new List <string> { "w", "v", "u" } } }; var provider = new SqlQueryProviderAlpha(_names); Exception ex = Assert.Throws <ArgumentException>(() => provider.GetAllNecessaryNgramsFromTable(NgramType.Trigram, wordLists)); Assert.Equal("List<string> inside list has wrong size", ex.Message); }
public void GetAllNecessaryNgramsFromTable_outsideList_Null() { var provider = new SqlQueryProviderAlpha(_names); Exception ex = Assert.Throws <ArgumentException>(() => provider.GetAllNecessaryNgramsFromTable(NgramType.Trigram, null)); Assert.Equal("List<string> 'wordLists' has wrong size", ex.Message); }
public void GetTheSameNgramsFromTable_NullListWithNames() { var provider = new SqlQueryProviderAlpha(_names); Exception ex = Assert.Throws <ArgumentException>(() => provider.GetTheSameNgramsFromTable(NgramType.Bigram, null)); Assert.Equal("List<string> 'wordList' has wrong size", ex.Message); }
public void CheckWordsInUnigramFromTable_NullList() { var provider = new SqlQueryProviderAlpha(_names); Exception ex = Assert.Throws <ArgumentException>(() => provider.CheckWordsInUnigramFromTable(null)); Assert.Equal("List<string> 'wordList' can't be null", ex.Message); }
public void GetTheSameNgramsFromTable_Fourgrams() { var provider = new SqlQueryProviderAlpha(_names); var result = provider.GetTheSameNgramsFromTable(NgramType.Quadrigram, _wordList); const string str = @"SELECT * FROM `four[a]` WHERE Word1='a\\' AND Word2='b' AND Word3='\'c' AND Word4='d'"; Assert.Equal(str, result); }
public void CreateDbString() { var provider = new SqlQueryProviderAlpha(); var result = provider.CreateDbString("name"); const string str = "CREATE DATABASE IF NOT EXISTS `name` CHARACTER SET utf8 COLLATE utf8_polish_ci;"; Assert.Equal(str, result); }
public void GetSimilarNgramsFromTable_Trigrams() { var provider = new SqlQueryProviderAlpha(_names); var result = provider.GetSimilarNgramsFromTable(NgramType.Trigram, _wordList); const string str = @"SELECT * FROM tri[a] WHERE Word1='a\\' AND Word2='b';"; Assert.Equal(str, result); }
public void GetTheSameNgramsFromTable_WrongListSize() { var list = new List <string> { "a", }; var provider = new SqlQueryProviderAlpha(_names); Exception ex = Assert.Throws <ArgumentException>(() => provider.GetTheSameNgramsFromTable(NgramType.Bigram, list)); Assert.Equal("List<string> 'wordList' has wrong size", ex.Message); }
public void InsertOrUpdateNgramString() { var ngram = new NGram(10, new List <string> { "ą", "b" }); var provider = new SqlQueryProviderAlpha(); var result = provider.InsertOrUpdateNgramString(ngram); const string str = "CALL `Add2gram[a]`('10', 'ą', 'b');"; Assert.Equal(str, result); }
public void GetSimilarNgramsFromTable_GoodListSize() { var list = new List <string> { "a", "b", "c" }; var provider = new SqlQueryProviderAlpha(_names); var ex = Record.Exception(() => provider.GetSimilarNgramsFromTable(NgramType.Quadrigram, list)); Assert.IsNotType <ArgumentException>(ex); }
public void GetMultiNgramsFromTable_NullListWithWords() { var provider = new SqlQueryProviderAlpha(_names); var wordList = new List <string> { "a", "b", "c" }; Exception ex = Assert.Throws <ArgumentException>(() => provider.GetMultiNgramsFromTable(NgramType.Quadrigram, wordList, null)); Assert.Equal("List<string> 'combinations' has wrong size", ex.Message); ex = Assert.Throws <ArgumentException>(() => provider.GetMultiNgramsFromTable(NgramType.Quadrigram, null, wordList)); Assert.Equal("List<string> 'wordList' has wrong size", ex.Message); }
public void CheckWordsInUnigramFromTable_NormalExample() { var wordList = new List <string> { @"a\", "b", @"baa'" }; var provider = new SqlQueryProviderAlpha(_names); var result = provider.CheckWordsInUnigramFromTable(wordList); const string str = @"SELECT * FROM `uni[a]` WHERE Word1='a\\' UNION ALL SELECT * FROM `uni[b]` WHERE Word1='b' OR Word1='baa\'';"; Assert.Equal(str, result); }
public void CreateAddProcedureString_Digram() { var provider = new SqlQueryProviderAlpha(); var result = provider.CreateAddProcedureString("BaseName", "TableName", 2); var names = new[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "other" }; var str = names.Aggregate("", (current, name) => current + ($"DROP PROCEDURE IF EXISTS BaseName.`Add2gram[{name}]`; CREATE PROCEDURE BaseName.`Add2gram[{name}]`(in _value int, in _word1 varchar(30), in _word2 varchar(30)) " + $"BEGIN SELECT @id:=ID, @val:=Value FROM BaseName.`TableName[{name}]` WHERE Word1 = _word1 AND Word2 = _word2; " + $"IF @id IS NULL THEN INSERT INTO BaseName.`TableName[{name}]` (Value, Word1, Word2) VALUES ( _value, _word1, _word2); " + $"ELSE UPDATE BaseName.`TableName[{name}]` SET Value = @val + _value WHERE ID = @id; END IF; END; ")); Assert.Equal(str, result); }
public void CreateNgramsTableString_Digram() { var provider = new SqlQueryProviderAlpha(); var result = provider.CreateNgramsTableString("DbName", "TableName", 2); var names = new[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "other" }; var str = names.Aggregate("", (current, name) => current + ($"CREATE TABLE IF NOT EXISTS `DbName`.`TableName[{name}]` " + "( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, " + "`Value` INT NOT NULL, `Word1` VARCHAR(30) NOT NULL, " + "`Word2` VARCHAR(30) NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_polish_ci;")); Assert.Equal(str, result); }
public void GetAllNecessaryNgramsFromTable_NormalExample2() { var wordLists = new List <List <List <string> > > { new List <List <string> > { new List <string> { @"a\", "b" }, new List <string> { "c", "d" }, new List <string> { "e", @"'f", "g" } }, new List <List <string> > { new List <string> { "z", "x" }, new List <string> { "y" }, new List <string> { "w", "v", "u" } } }; var provider = new SqlQueryProviderAlpha(_names); var result = provider.GetAllNecessaryNgramsFromTable(NgramType.Trigram, wordLists); const string str = "SELECT * FROM `tri[a]` WHERE ( " + @"( Word1='a\\' OR Word1='b' ) AND ( Word2='c' OR Word2='d' ) AND ( Word3='e' OR Word3='\'f' OR Word3='g' ) ) UNION ALL " + "SELECT * FROM `tri[z]` WHERE ( " + @"( Word1='z' OR Word1='x' ) AND ( Word2='y' ) AND ( Word3='w' OR Word3='v' OR Word3='u' ) );"; Assert.Equal(str, result); }
public void GetMultiNgramsFromTable_Fourgrams() { var list = new List <string> { @"\or1", "or2" }; var wordList = new List <string> { @"a\", "b", @"'c" }; var provider = new SqlQueryProviderAlpha(_names); var result = provider.GetMultiNgramsFromTable(NgramType.Quadrigram, wordList, list); const string str = @"SELECT * FROM `four[a]` WHERE Word1='a\\' AND Word2='b' AND Word3='\'c' AND ( Word4='\\or1' OR Word4='or2' );"; Assert.Equal(str, result); }
public void InsertNgramsString(string a, string b) { var ngrams = new List <NGram> { new NGram(10, new List <string> { "a", "b" }), new NGram(15, new List <string> { "a", "c" }), new NGram(20, new List <string> { a, "d" }) }; var provider = new SqlQueryProviderAlpha(); var result = provider.InsertNgramsString("TableName", ngrams); string str = "INSERT INTO `TableName[a]` (`Value`, `Word1`, `Word2`) " + "VALUES('10', 'a', 'b'),('15', 'a', 'c');" + $"INSERT INTO `TableName[{b}]` (`Value`, `Word1`, `Word2`) " + $"VALUES('20', '{a}', 'd');"; Assert.Equal(str, result); }