public void TestCannotGetNullKey() { TST<int> tst = new TST<int>(); tst.Put("bla", 1); Assert.IsTrue(tst.Contains("bla")); tst.Get(null); }
public void TestTST() { // build symbol table TST<string> st = new TST<string>(); string[] a = new string[] { "by", "sea", "sells", "she", "shells", "shore", "the", }; for (int i = 0; i < a.Length; i++) st.Put(a[i], i.ToString()); // print results if (st.Size() < 100) { Debug.WriteLine("keys(\"\"):"); foreach (string key in st.Keys()) Debug.WriteLine(key + " " + st.Get(key)); Debug.WriteLine(Environment.NewLine); } Debug.WriteLine("longestPrefixOf(\"shellsort\"):"); Debug.WriteLine(st.LongestPrefixOf("shellsort")); Debug.WriteLine(Environment.NewLine); Debug.WriteLine("longestPrefixOf(\"quicksort\"):"); Debug.WriteLine(st.LongestPrefixOf("quicksort")); Debug.WriteLine(Environment.NewLine); Debug.WriteLine("keysWithPrefix(\"shor\"):"); foreach (string s in st.KeysWithPrefix("shor")) Debug.WriteLine(s); Debug.WriteLine(Environment.NewLine); Debug.WriteLine("keysThatMatch(\".he.l.\"):"); foreach (string s in st.KeysThatMatch(".he.l.")) Debug.WriteLine(s); }
public void TestCannotGetEmptyStringKey() { TST<int> tst = new TST<int>(); tst.Put("bla", 1); Assert.IsTrue(tst.Contains("bla")); tst.Get(""); }
public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - shellsST.txt"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); var fieName = string.Empty; switch (fileNumber) { case "1": fieName = "shellsST.txt"; break; case "quit": return; default: return; } var @in = new In($"Files\\Strings\\{fieName}"); var content = @in.ReadAllStrings(); var st = new TST<Integer>(); for (var i = 0; i< content.Length; i++) { st.Put(content[i], i); } // print results if (st.Size() < 100) { Console.WriteLine("keys(\"\"):"); foreach (var key in st.Keys()) { Console.WriteLine($"{key} {st.Get(key).Value}"); } Console.WriteLine(); } Console.WriteLine("longestPrefixOf(\"shellsort\"):"); Console.WriteLine(st.LongestPrefixOf("shellsort")); Console.WriteLine(); Console.WriteLine("longestPrefixOf(\"shell\"):"); Console.WriteLine(st.LongestPrefixOf("shell")); Console.WriteLine(); Console.WriteLine("keysWithPrefix(\"shor\"):"); foreach (var s in st.KeysWithPrefix("shor")) Console.WriteLine(s); Console.WriteLine(); Console.WriteLine("keysThatMatch(\".he.l.\"):"); foreach (var s in st.KeysThatMatch(".he.l.")) Console.WriteLine(s); Console.ReadLine(); }
void TrieSTTest() { var strArr = FileHandler.ReadFileAsStrArr("shellsST.txt"); strArr.Show(); //var st = new TrieST<int>(); var st = new TST <int>(); for (int i = 1; i < strArr.Length; i++) { //st.Put(strArr[i], i); st.Put(strArr[i], i); } //st.Put("bad", 100); Console.WriteLine(st.Get("she")); Console.WriteLine(st.Get("sells")); Console.WriteLine(st.Get("shore")); Console.WriteLine(st.Get("shore1")); Console.WriteLine(st.Get("zoo")); Console.ReadKey(); }
void TSTStart() { string[] strs = txt.text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // build symbol table from standard input TST <int> st = new TST <int>(); for (int i = 0; i < strs.Length; i++) { string key = strs[i]; st.Put(key, i); } // print results if (st.size() < 100) { print("keys(\"\"):"); foreach (string key in st.keys()) { print(key + " " + st.Get(key)); } } print("longestPrefixOf(\"shellsort\"):"); print(st.longestPrefixOf("shellsort")); print("longestPrefixOf(\"shell\"):"); print(st.longestPrefixOf("shell")); print("keysWithPrefix(\"shor\"):"); foreach (string s in st.keysWithPrefix("shor")) { print(s); } print("keysThatMatch(\".he.l.\"):"); foreach (string s in st.keysThatMatch(".he.l.")) { print(s); } }
public void Compress() { string input = BinaryStdIn.ReadString(); TST <int> st = new TST <int>(); for (int i = 0; i < R; i++) { st.Put("" + i, i); } int code = R + 1; //标记结束 while (input.Length > 0) { string s = st.LongestPrefixOf(input); //匹配最长前缀 BinaryStdOut.Write(st.Get(s), W); int t = s.Length; if (t < input.Length && code < L) //将s加入符号表 { st.Put(input.Substring(0, t + 1), code++); } input = input.Substring(t); } BinaryStdOut.Write(R, W); }
public void Run() { Console.WriteLine("Choose file:"); // Prompt Console.WriteLine("1 - shellsST.txt"); // Prompt Console.WriteLine("or quit"); // Prompt var fileNumber = Console.ReadLine(); var fieName = string.Empty; switch (fileNumber) { case "1": fieName = "shellsST.txt"; break; case "quit": return; default: return; } var @in = new In($"Files\\Strings\\{fieName}"); var content = @in.ReadAllStrings(); var st = new TST <Integer>(); for (var i = 0; i < content.Length; i++) { st.Put(content[i], i); } // print results if (st.Size() < 100) { Console.WriteLine("keys(\"\"):"); foreach (var key in st.Keys()) { Console.WriteLine($"{key} {st.Get(key).Value}"); } Console.WriteLine(); } Console.WriteLine("longestPrefixOf(\"shellsort\"):"); Console.WriteLine(st.LongestPrefixOf("shellsort")); Console.WriteLine(); Console.WriteLine("longestPrefixOf(\"shell\"):"); Console.WriteLine(st.LongestPrefixOf("shell")); Console.WriteLine(); Console.WriteLine("keysWithPrefix(\"shor\"):"); foreach (var s in st.KeysWithPrefix("shor")) { Console.WriteLine(s); } Console.WriteLine(); Console.WriteLine("keysThatMatch(\".he.l.\"):"); foreach (var s in st.KeysThatMatch(".he.l.")) { Console.WriteLine(s); } Console.ReadLine(); }
public void TestReadKeys() { TST<int> tst = new TST<int>(); string[] keys = testKeys.Split(' '); for (int i = 0; i < keys.Length; i++) { tst.Put(keys[i], i); } for (int i = 0; i < keys.Length; i++) { Assert.IsTrue(tst.Contains(keys[i])); Assert.IsTrue(tst.Get(keys[i]) == i); } }
public void TestKeyHasToHaveValue() { TST<int> tst = new TST<int>(); tst.Put("seashells", 1); Assert.IsTrue(tst.Contains("seashells")); // "sea" is only a prefix of the key tst.Get("sea"); }