public virtual bool runTest() { Console.WriteLine(s_strTFPath + " " + s_strTFName + " , for " + s_strClassMethod + " , Source ver: " + s_strDtTmVer); int iCountErrors = 0; int iCountTestcases = 0; IntlStrings intl; String strLoc = "Loc_000oo"; HybridDictionary hd; const int BIG_LENGTH = 100; string [] valuesShort = { "", " ", "$%^#", System.DateTime.Today.ToString(), Int32.MaxValue.ToString() }; string [] keysShort = { Int32.MaxValue.ToString(), " ", System.DateTime.Today.ToString(), "", "$%^#" }; string [] valuesLong = new string[BIG_LENGTH]; string [] keysLong = new string[BIG_LENGTH]; int cnt = 0; try { intl = new IntlStrings(); for (int i = 0; i < BIG_LENGTH; i++) { valuesLong[i] = "Item" + i; keysLong[i] = "keY" + i; } Console.WriteLine("--- create dictionary ---"); strLoc = "Loc_001oo"; iCountTestcases++; hd = new HybridDictionary(); Console.WriteLine("1. Contains() on empty dictionary"); iCountTestcases++; Console.WriteLine(" - Contains(null)"); try { hd.Contains(null); iCountErrors++; Console.WriteLine("Err_0001a, ArgumentNullException expected"); } // catch (System.ArgumentNullException e) { Console.WriteLine("expected exception: {0}", e.ToString()); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0001b, unexpected exception: {0}", e.ToString()); } Console.WriteLine(" - Contains(some_object)"); if (hd.Contains("some_string")) { iCountErrors++; Console.WriteLine("Err_0001c, empty dictionary contains some_object"); } Console.WriteLine("2. add few simple strings and check Contains()"); strLoc = "Loc_002oo"; iCountTestcases++; cnt = hd.Count; int len = valuesShort.Length; for (int i = 0; i < len; i++) { hd.Add(keysShort[i], valuesShort[i]); } if (hd.Count != len) { iCountErrors++; Console.WriteLine("Err_0002a, count is {0} instead of {1}", hd.Count, valuesShort.Length); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(keysShort[i])) { iCountErrors++; Console.WriteLine("Err_0002_{0}b, doesn't contain \"{1}\"", i, keysShort[i]); } } Console.WriteLine(" .. increase number of elements"); cnt = hd.Count; len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } if (hd.Count != len + cnt) { iCountErrors++; Console.WriteLine("Err_0002c, count is {0} instead of {1}", hd.Count, len + cnt); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(keysLong[i])) { iCountErrors++; Console.WriteLine("Err_0002_{0}d, doesn't contain \"{1}\"", i, keysLong[i]); } } for (int i = 0; i < valuesShort.Length; i++) { iCountTestcases++; if (!hd.Contains(keysShort[i])) { iCountErrors++; Console.WriteLine("Err_0002_{0}e, doesn't contain \"{1}\"", i, keysShort[i]); } } Console.WriteLine("3. add intl strings check Contains()"); strLoc = "Loc_003oo"; iCountTestcases++; string [] intlValues = new string [len * 2]; for (int i = 0; i < len * 2; i++) { string val = intl.GetString(MAX_LEN, true, true, true); while (Array.IndexOf(intlValues, val) != -1) { val = intl.GetString(MAX_LEN, true, true, true); } intlValues[i] = val; } iCountTestcases++; hd.Clear(); for (int i = 0; i < len; i++) { hd.Add(intlValues[i + len], intlValues[i]); } if (hd.Count != (len)) { iCountErrors++; Console.WriteLine("Err_0003a, count is {0} instead of {1}", hd.Count, len); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(intlValues[i + len])) { iCountErrors++; Console.WriteLine("Err_0003_{0}b, doesn't contain \"{1}\"", i, intlValues[i + len]); } } Console.WriteLine("4. case sensitivity"); strLoc = "Loc_004oo"; hd.Clear(); len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(keysLong[i])) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, doesn't contain added uppercase \"{1}\"", i, keysLong[i]); } iCountTestcases++; if (hd.Contains(keysLong[i].ToUpper())) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, contains uppercase \"{1}\" - should not", i, keysLong[i].ToUpper()); } } Console.WriteLine("5. similar_but_different_in_casing keys and Contains()"); strLoc = "Loc_005oo"; iCountTestcases++; hd.Clear(); string [] ks = { "Key", "kEy", "keY" }; len = ks.Length; for (int i = 0; i < len; i++) { hd.Add(ks[i], "Value" + i); } if (hd.Count != len) { iCountErrors++; Console.WriteLine("Err_0005a, count is {0} instead of {1}", hd.Count, len); } iCountTestcases++; if (hd.Contains("Value0")) { iCountErrors++; Console.WriteLine("Err_0005b, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(ks[i])) { iCountErrors++; Console.WriteLine("Err_0005c_{0}, returned false when true expected", i); } } Console.WriteLine(" .. increase number of elements"); cnt = hd.Count; len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } if (hd.Count != len + cnt) { iCountErrors++; Console.WriteLine("Err_0005d, count is {0} instead of {1}", hd.Count, len + cnt); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(keysLong[i])) { iCountErrors++; Console.WriteLine("Err_0005_{0}e, doesn't contain \"{1}\"", i, keysLong[i]); } } for (int i = 0; i < ks.Length; i++) { iCountTestcases++; if (!hd.Contains(ks[i])) { iCountErrors++; Console.WriteLine("Err_0005_{0}f, doesn't contain \"{1}\"", i, ks[i]); } } Console.WriteLine("6. Contains(null) for filled dictionary"); strLoc = "Loc_006oo"; iCountTestcases++; len = valuesShort.Length; hd.Clear(); for (int i = 0; i < len; i++) { hd.Add(keysShort[i], valuesShort[i]); } try { hd.Contains(null); iCountErrors++; Console.WriteLine("Err_0006a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0006b, unexpected exception: {0}", e.ToString()); } Console.WriteLine("7. Contains() for case-insensitive comparer dictionary"); hd = new HybridDictionary(true); strLoc = "Loc_007oo"; iCountTestcases++; hd.Clear(); len = ks.Length; hd.Add(ks[0], "Value0"); for (int i = 1; i < len; i++) { try { hd.Add(ks[i], "Value" + i); iCountErrors++; Console.WriteLine("Err_0007a_{0}, no exception", i); } catch (ArgumentException e) { Console.WriteLine("_{0}, Expected exception: {1}", i, e.Message); } catch (Exception ex) { iCountErrors++; Console.WriteLine("Err_0007b_{0}, unexpected exception: {1}", i, ex.ToString()); } } if (hd.Count != 1) { iCountErrors++; Console.WriteLine("Err_0007c, count is {0} instead of {1}", hd.Count, 1); } iCountTestcases++; if (hd.Contains("Value0")) { iCountErrors++; Console.WriteLine("Err_0007d, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!hd.Contains(ks[i])) { iCountErrors++; Console.WriteLine("Err_0007e_{0}, returned false when true expected", i); } } iCountTestcases++; if (!hd.Contains("KEY")) { iCountErrors++; Console.WriteLine("Err_0007f, returned false non-existing-cased key"); } Console.WriteLine("9. Contains() and few SpecialStructs_not_overriding_Equals"); hd = new HybridDictionary(); strLoc = "Loc_009oo"; iCountTestcases++; Co8686_SpecialStruct s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; Co8686_SpecialStruct s1 = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; hd.Add(s, "first"); hd.Add(s1, "second"); if (hd.Count != 2) { iCountErrors++; Console.WriteLine("Err_0009a, count is {0} instead of {1}", hd.Count, 2); } iCountTestcases++; if (!hd.Contains(s)) { iCountErrors++; Console.WriteLine("Err_0009b, returned false when true expected"); } iCountTestcases++; if (!hd.Contains(s1)) { iCountErrors++; Console.WriteLine("Err_0009c, returned false when true expected"); } Console.WriteLine("10. Contains() and many SpecialStructs_not_overriding_Equals"); int num = 40; hd = new HybridDictionary(); strLoc = "Loc_010oo"; iCountTestcases++; Co8686_SpecialStruct [] ss = new Co8686_SpecialStruct[num]; for (int i = 0; i < num; i++) { ss[i] = new Co8686_SpecialStruct(); ss[i].Num = i; ss[i].Wrd = "value" + i; hd.Add(ss[i], "item" + i); } if (hd.Count != num) { iCountErrors++; Console.WriteLine("Err_0010a, count is {0} instead of {1}", hd.Count, num); } for (int i = 0; i < num; i++) { iCountTestcases++; if (!hd.Contains(ss[i])) { iCountErrors++; Console.WriteLine("Err_0010b_{0}, returned false when true expected", i); } } iCountTestcases++; s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "value1"; if (hd.Contains(s)) { iCountErrors++; Console.WriteLine("Err_0010c, returned true when false expected"); } } catch (Exception exc_general) { ++iCountErrors; Console.WriteLine(s_strTFAbbrev + " : Error Err_general! strLoc==" + strLoc + ", exc_general==\n" + exc_general.ToString()); } if (iCountErrors == 0) { Console.WriteLine("Pass. " + s_strTFPath + " " + s_strTFName + " ,iCountTestcases==" + iCountTestcases); return(true); } else { Console.WriteLine("Fail! " + s_strTFPath + " " + s_strTFName + " ,iCountErrors==" + iCountErrors + " , BugNums?: " + s_strActiveBugNums); return(false); } }
public virtual bool runTest() { Console.WriteLine(s_strTFPath + " " + s_strTFName + " , for " + s_strClassMethod + " , Source ver: " + s_strDtTmVer); int iCountErrors = 0; int iCountTestcases = 0; IntlStrings intl; String strLoc = "Loc_000oo"; ListDictionary ld; string [] values = { "", " ", "a", "aA", "text", " SPaces", "1", "$%^#", "2222222222222222222222222", System.DateTime.Today.ToString(), Int32.MaxValue.ToString() }; string [] keys = { "zero", "oNe", " ", "", "aa", "1", System.DateTime.Today.ToString(), "$%^#", Int32.MaxValue.ToString(), " spaces", "2222222222222222222222222" }; int cnt = 0; try { intl = new IntlStrings(); Console.WriteLine("--- create dictionary ---"); strLoc = "Loc_001oo"; iCountTestcases++; ld = new ListDictionary(); Console.WriteLine("1. Contains() on empty dictionary"); iCountTestcases++; Console.WriteLine(" - Contains(null)"); try { ld.Contains(null); iCountErrors++; Console.WriteLine("Err_0001a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0001b, unexpected exception: {0}", e.ToString()); } Console.WriteLine(" - Contains(some_object)"); if ( ld.Contains("some_string") ) { iCountErrors++; Console.WriteLine("Err_0001c, empty dictionary contains some_object"); } Console.WriteLine("2. add simple strings and check Contains()"); strLoc = "Loc_002oo"; iCountTestcases++; cnt = ld.Count; int len = values.Length; for (int i = 0; i < len; i++) { ld.Add(keys[i], values[i]); } if (ld.Count != len) { iCountErrors++; Console.WriteLine("Err_0002a, count is {0} instead of {1}", ld.Count, values.Length); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! ld.Contains(keys[i]) ) { iCountErrors++; Console.WriteLine("Err_0002_{0}b, doesn't contain \"{1}\"", i, keys[i]); } } Console.WriteLine("3. add intl strings check Contains()"); strLoc = "Loc_003oo"; iCountTestcases++; string [] intlValues = new string [len * 2]; for (int i = 0; i < len*2; i++) { string val = intl.GetString(MAX_LEN, true, true, true); while (Array.IndexOf(intlValues, val) != -1 ) val = intl.GetString(MAX_LEN, true, true, true); intlValues[i] = val; } Boolean caseInsensitive = false; for (int i = 0; i < len * 2; i++) { if(intlValues[i].Length!=0 && intlValues[i].ToLower()==intlValues[i].ToUpper()) caseInsensitive = true; } iCountTestcases++; ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(intlValues[i+len], intlValues[i]); } if ( ld.Count != (len) ) { iCountErrors++; Console.WriteLine("Err_0003a, count is {0} instead of {1}", ld.Count, len); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! ld.Contains(intlValues[i+len]) ) { iCountErrors++; Console.WriteLine("Err_0003_{0}b, doesn't contain \"{1}\"", i, intlValues[i+len]); } } Console.WriteLine("4. case sensitivity"); strLoc = "Loc_004oo"; string [] intlValuesLower = new string [len * 2]; for (int i = 0; i < len * 2; i++) { intlValues[i] = intlValues[i].ToUpper(); } for (int i = 0; i < len * 2; i++) { intlValuesLower[i] = intlValues[i].ToLower(); } ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(intlValues[i+len], intlValues[i]); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! ld.Contains(intlValues[i+len]) ) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, doesn't contain added uppercase \"{1}\"", i, intlValues[i+len]); } iCountTestcases++; if ( !caseInsensitive && ld.Contains(intlValuesLower[i+len]) ) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, contains lowercase \"{1}\" - should not", i, intlValuesLower[i+len]); } } Console.WriteLine("5. similar_but_different_in_casing keys and Contains()"); strLoc = "Loc_005oo"; iCountTestcases++; ld.Clear(); string [] ks = {"Key", "kEy", "keY"}; len = ks.Length; for (int i = 0; i < len; i++) { ld.Add(ks[i], "Value"+i); } if (ld.Count != len) { iCountErrors++; Console.WriteLine("Err_0005a, count is {0} instead of {1}", ld.Count, len); } iCountTestcases++; if ( ld.Contains("Value0") ) { iCountErrors++; Console.WriteLine("Err_0005b, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( !ld.Contains(ks[i]) ) { iCountErrors++; Console.WriteLine("Err_0005c_{0}, returned false when true expected", i); } } Console.WriteLine("6. Contains(null) for filled dictionary"); strLoc = "Loc_006oo"; iCountTestcases++; ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(keys[i], values[i]); } try { ld.Contains(null); iCountErrors++; Console.WriteLine("Err_0006a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0006b, unexpected exception: {0}", e.ToString()); } Console.WriteLine("7. Contains() for case-insensitive comparer"); ld = new ListDictionary(new Co8686_InsensitiveComparer()); strLoc = "Loc_007oo"; iCountTestcases++; ld.Clear(); len = ks.Length; ld.Add(ks[0], "Value0"); for (int i = 1; i < len; i++) { try { ld.Add(ks[i], "Value"+i); iCountErrors++; Console.WriteLine("Err_0007a_{0}, no exception", i); } catch (ArgumentException e) { Console.WriteLine("_{0}, Expected exception: {1}", i, e.Message); } catch (Exception ex) { iCountErrors++; Console.WriteLine("Err_0007b_{0}, unexpected exception: {1}", i, ex.ToString()); } } if (ld.Count != 1) { iCountErrors++; Console.WriteLine("Err_0007c, count is {0} instead of {1}", ld.Count, 1); } iCountTestcases++; if ( ld.Contains("Value0") ) { iCountErrors++; Console.WriteLine("Err_0007d, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( !ld.Contains(ks[i]) ) { iCountErrors++; Console.WriteLine("Err_0007e_{0}, returned false when true expected", i); } } iCountTestcases++; if ( !ld.Contains("KEY") ) { iCountErrors++; Console.WriteLine("Err_0007f, returned false non-existing-cased key"); } Console.WriteLine("10. Contains() and SpecialStructs_not_overriding_Equals"); ld = new ListDictionary(); strLoc = "Loc_010oo"; iCountTestcases++; Co8686_SpecialStruct s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; Co8686_SpecialStruct s1 = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; ld.Add(s, "first"); ld.Add(s1, "second"); if (ld.Count != 2) { iCountErrors++; Console.WriteLine("Err_0010a, count is {0} instead of {1}", ld.Count, 2); } iCountTestcases++; if ( !ld.Contains(s) ) { iCountErrors++; Console.WriteLine("Err_0010b, returned false when true expected"); } iCountTestcases++; if ( !ld.Contains(s1) ) { iCountErrors++; Console.WriteLine("Err_0010c, returned false when true expected"); } } catch (Exception exc_general ) { ++iCountErrors; Console.WriteLine (s_strTFAbbrev + " : Error Err_general! strLoc=="+ strLoc +", exc_general==\n"+exc_general.ToString()); } if ( iCountErrors == 0 ) { Console.WriteLine( "Pass. "+s_strTFPath +" "+s_strTFName+" ,iCountTestcases=="+iCountTestcases); return true; } else { Console.WriteLine("Fail! "+s_strTFPath+" "+s_strTFName+" ,iCountErrors=="+iCountErrors+" , BugNums?: "+s_strActiveBugNums ); return false; } }
public virtual bool runTest() { Console.WriteLine(s_strTFPath + " " + s_strTFName + " , for " + s_strClassMethod + " , Source ver: " + s_strDtTmVer); int iCountErrors = 0; int iCountTestcases = 0; IntlStrings intl; String strLoc = "Loc_000oo"; HybridDictionary hd; const int BIG_LENGTH = 100; string [] valuesShort = { "", " ", "$%^#", System.DateTime.Today.ToString(), Int32.MaxValue.ToString() }; string [] keysShort = { Int32.MaxValue.ToString(), " ", System.DateTime.Today.ToString(), "", "$%^#" }; string [] valuesLong = new string[BIG_LENGTH]; string [] keysLong = new string[BIG_LENGTH]; int cnt = 0; try { intl = new IntlStrings(); for (int i = 0; i < BIG_LENGTH; i++) { valuesLong[i] = "Item" + i; keysLong[i] = "keY" + i; } Console.WriteLine("--- create dictionary ---"); strLoc = "Loc_001oo"; iCountTestcases++; hd = new HybridDictionary(); Console.WriteLine("1. Contains() on empty dictionary"); iCountTestcases++; Console.WriteLine(" - Contains(null)"); try { hd.Contains(null); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0001b, unexpected exception: {0}", e.ToString()); } Console.WriteLine(" - Contains(some_object)"); if ( hd.Contains("some_string") ) { iCountErrors++; Console.WriteLine("Err_0001c, empty dictionary contains some_object"); } Console.WriteLine("2. add few simple strings and check Contains()"); strLoc = "Loc_002oo"; iCountTestcases++; cnt = hd.Count; int len = valuesShort.Length; for (int i = 0; i < len; i++) { hd.Add(keysShort[i], valuesShort[i]); } if (hd.Count != len) { iCountErrors++; Console.WriteLine("Err_0002a, count is {0} instead of {1}", hd.Count, valuesShort.Length); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! hd.Contains(keysShort[i]) ) { iCountErrors++; Console.WriteLine("Err_0002_{0}b, doesn't contain \"{1}\"", i, keysShort[i]); } } Console.WriteLine(" .. increase number of elements"); cnt = hd.Count; len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } if (hd.Count != len+cnt) { iCountErrors++; Console.WriteLine("Err_0002c, count is {0} instead of {1}", hd.Count, len+cnt); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! hd.Contains(keysLong[i]) ) { iCountErrors++; Console.WriteLine("Err_0002_{0}d, doesn't contain \"{1}\"", i, keysLong[i]); } } for (int i = 0; i < valuesShort.Length; i++) { iCountTestcases++; if ( ! hd.Contains(keysShort[i]) ) { iCountErrors++; Console.WriteLine("Err_0002_{0}e, doesn't contain \"{1}\"", i, keysShort[i]); } } Console.WriteLine("3. add intl strings check Contains()"); strLoc = "Loc_003oo"; iCountTestcases++; string [] intlValues = new string [len * 2]; for (int i = 0; i < len*2; i++) { string val = intl.GetString(MAX_LEN, true, true, true); while (Array.IndexOf(intlValues, val) != -1 ) val = intl.GetString(MAX_LEN, true, true, true); intlValues[i] = val; } iCountTestcases++; hd.Clear(); for (int i = 0; i < len; i++) { hd.Add(intlValues[i+len], intlValues[i]); } if ( hd.Count != (len) ) { iCountErrors++; Console.WriteLine("Err_0003a, count is {0} instead of {1}", hd.Count, len); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! hd.Contains(intlValues[i+len]) ) { iCountErrors++; Console.WriteLine("Err_0003_{0}b, doesn't contain \"{1}\"", i, intlValues[i+len]); } } Console.WriteLine("4. case sensitivity"); strLoc = "Loc_004oo"; hd.Clear(); len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! hd.Contains(keysLong[i]) ) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, doesn't contain added uppercase \"{1}\"", i, keysLong[i]); } iCountTestcases++; if ( hd.Contains(keysLong[i].ToUpper()) ) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, contains uppercase \"{1}\" - should not", i, keysLong[i].ToUpper()); } } Console.WriteLine("5. similar_but_different_in_casing keys and Contains()"); strLoc = "Loc_005oo"; iCountTestcases++; hd.Clear(); string [] ks = {"Key", "kEy", "keY"}; len = ks.Length; for (int i = 0; i < len; i++) { hd.Add(ks[i], "Value"+i); } if (hd.Count != len) { iCountErrors++; Console.WriteLine("Err_0005a, count is {0} instead of {1}", hd.Count, len); } iCountTestcases++; if ( hd.Contains("Value0") ) { iCountErrors++; Console.WriteLine("Err_0005b, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( !hd.Contains(ks[i]) ) { iCountErrors++; Console.WriteLine("Err_0005c_{0}, returned false when true expected", i); } } Console.WriteLine(" .. increase number of elements"); cnt = hd.Count; len = valuesLong.Length; for (int i = 0; i < len; i++) { hd.Add(keysLong[i], valuesLong[i]); } if (hd.Count != len+cnt) { iCountErrors++; Console.WriteLine("Err_0005d, count is {0} instead of {1}", hd.Count, len+cnt); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( ! hd.Contains(keysLong[i]) ) { iCountErrors++; Console.WriteLine("Err_0005_{0}e, doesn't contain \"{1}\"", i, keysLong[i]); } } for (int i = 0; i < ks.Length; i++) { iCountTestcases++; if ( ! hd.Contains(ks[i]) ) { iCountErrors++; Console.WriteLine("Err_0005_{0}f, doesn't contain \"{1}\"", i, ks[i]); } } Console.WriteLine("6. Contains(null) for filled dictionary"); strLoc = "Loc_006oo"; iCountTestcases++; len = valuesShort.Length; hd.Clear(); for (int i = 0; i < len; i++) { hd.Add(keysShort[i], valuesShort[i]); } try { hd.Contains(null); iCountErrors++; Console.WriteLine("Err_0006a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0006b, unexpected exception: {0}", e.ToString()); } Console.WriteLine("7. Contains() for case-insensitive comparer dictionary"); hd = new HybridDictionary(true); strLoc = "Loc_007oo"; iCountTestcases++; hd.Clear(); len = ks.Length; hd.Add(ks[0], "Value0"); for (int i = 1; i < len; i++) { try { hd.Add(ks[i], "Value"+i); iCountErrors++; Console.WriteLine("Err_0007a_{0}, no exception", i); } catch (ArgumentException e) { Console.WriteLine("_{0}, Expected exception: {1}", i, e.Message); } catch (Exception ex) { iCountErrors++; Console.WriteLine("Err_0007b_{0}, unexpected exception: {1}", i, ex.ToString()); } } if (hd.Count != 1) { iCountErrors++; Console.WriteLine("Err_0007c, count is {0} instead of {1}", hd.Count, 1); } iCountTestcases++; if ( hd.Contains("Value0") ) { iCountErrors++; Console.WriteLine("Err_0007d, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if ( !hd.Contains(ks[i]) ) { iCountErrors++; Console.WriteLine("Err_0007e_{0}, returned false when true expected", i); } } iCountTestcases++; if ( !hd.Contains("KEY") ) { iCountErrors++; Console.WriteLine("Err_0007f, returned false non-existing-cased key"); } Console.WriteLine("9. Contains() and few SpecialStructs_not_overriding_Equals"); hd = new HybridDictionary(); strLoc = "Loc_009oo"; iCountTestcases++; Co8686_SpecialStruct s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; Co8686_SpecialStruct s1 = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; hd.Add(s, "first"); hd.Add(s1, "second"); if (hd.Count != 2) { iCountErrors++; Console.WriteLine("Err_0009a, count is {0} instead of {1}", hd.Count, 2); } iCountTestcases++; if ( !hd.Contains(s) ) { iCountErrors++; Console.WriteLine("Err_0009b, returned false when true expected"); } iCountTestcases++; if ( !hd.Contains(s1) ) { iCountErrors++; Console.WriteLine("Err_0009c, returned false when true expected"); } Console.WriteLine("10. Contains() and many SpecialStructs_not_overriding_Equals"); int num = 40; hd = new HybridDictionary(); strLoc = "Loc_010oo"; iCountTestcases++; Co8686_SpecialStruct [] ss = new Co8686_SpecialStruct[num]; for (int i = 0; i < num; i++) { ss[i] = new Co8686_SpecialStruct(); ss[i].Num = i; ss[i].Wrd = "value"+i; hd.Add(ss[i], "item"+i); } if (hd.Count != num) { iCountErrors++; Console.WriteLine("Err_0010a, count is {0} instead of {1}", hd.Count, num); } for (int i = 0; i < num; i++) { iCountTestcases++; if ( !hd.Contains(ss[i]) ) { iCountErrors++; Console.WriteLine("Err_0010b_{0}, returned false when true expected", i); } } iCountTestcases++; s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "value1"; if ( hd.Contains(s) ) { iCountErrors++; Console.WriteLine("Err_0010c, returned true when false expected"); } } catch (Exception exc_general ) { ++iCountErrors; Console.WriteLine (s_strTFAbbrev + " : Error Err_general! strLoc=="+ strLoc +", exc_general==\n"+exc_general.ToString()); } if ( iCountErrors == 0 ) { Console.WriteLine( "Pass. "+s_strTFPath +" "+s_strTFName+" ,iCountTestcases=="+iCountTestcases); return true; } else { Console.WriteLine("Fail! "+s_strTFPath+" "+s_strTFName+" ,iCountErrors=="+iCountErrors+" , BugNums?: "+s_strActiveBugNums ); return false; } }
public virtual bool runTest() { Console.WriteLine(s_strTFPath + " " + s_strTFName + " , for " + s_strClassMethod + " , Source ver: " + s_strDtTmVer); int iCountErrors = 0; int iCountTestcases = 0; IntlStrings intl; String strLoc = "Loc_000oo"; ListDictionary ld; string [] values = { "", " ", "a", "aA", "text", " SPaces", "1", "$%^#", "2222222222222222222222222", System.DateTime.Today.ToString(), Int32.MaxValue.ToString() }; string [] keys = { "zero", "oNe", " ", "", "aa", "1", System.DateTime.Today.ToString(), "$%^#", Int32.MaxValue.ToString(), " spaces", "2222222222222222222222222" }; int cnt = 0; try { intl = new IntlStrings(); Console.WriteLine("--- create dictionary ---"); strLoc = "Loc_001oo"; iCountTestcases++; ld = new ListDictionary(); Console.WriteLine("1. Contains() on empty dictionary"); iCountTestcases++; Console.WriteLine(" - Contains(null)"); try { ld.Contains(null); iCountErrors++; Console.WriteLine("Err_0001a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0001b, unexpected exception: {0}", e.ToString()); } Console.WriteLine(" - Contains(some_object)"); if (ld.Contains("some_string")) { iCountErrors++; Console.WriteLine("Err_0001c, empty dictionary contains some_object"); } Console.WriteLine("2. add simple strings and check Contains()"); strLoc = "Loc_002oo"; iCountTestcases++; cnt = ld.Count; int len = values.Length; for (int i = 0; i < len; i++) { ld.Add(keys[i], values[i]); } if (ld.Count != len) { iCountErrors++; Console.WriteLine("Err_0002a, count is {0} instead of {1}", ld.Count, values.Length); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!ld.Contains(keys[i])) { iCountErrors++; Console.WriteLine("Err_0002_{0}b, doesn't contain \"{1}\"", i, keys[i]); } } Console.WriteLine("3. add intl strings check Contains()"); strLoc = "Loc_003oo"; iCountTestcases++; string [] intlValues = new string [len * 2]; for (int i = 0; i < len * 2; i++) { string val = intl.GetString(MAX_LEN, true, true, true); while (Array.IndexOf(intlValues, val) != -1) { val = intl.GetString(MAX_LEN, true, true, true); } intlValues[i] = val; } Boolean caseInsensitive = false; for (int i = 0; i < len * 2; i++) { if (intlValues[i].Length != 0 && intlValues[i].ToLower() == intlValues[i].ToUpper()) { caseInsensitive = true; } } iCountTestcases++; ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(intlValues[i + len], intlValues[i]); } if (ld.Count != (len)) { iCountErrors++; Console.WriteLine("Err_0003a, count is {0} instead of {1}", ld.Count, len); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!ld.Contains(intlValues[i + len])) { iCountErrors++; Console.WriteLine("Err_0003_{0}b, doesn't contain \"{1}\"", i, intlValues[i + len]); } } Console.WriteLine("4. case sensitivity"); strLoc = "Loc_004oo"; string [] intlValuesLower = new string [len * 2]; for (int i = 0; i < len * 2; i++) { intlValues[i] = intlValues[i].ToUpper(); } for (int i = 0; i < len * 2; i++) { intlValuesLower[i] = intlValues[i].ToLower(); } ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(intlValues[i + len], intlValues[i]); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!ld.Contains(intlValues[i + len])) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, doesn't contain added uppercase \"{1}\"", i, intlValues[i + len]); } iCountTestcases++; if (!caseInsensitive && ld.Contains(intlValuesLower[i + len])) { iCountErrors++; Console.WriteLine("Err_0004_{0}a, contains lowercase \"{1}\" - should not", i, intlValuesLower[i + len]); } } Console.WriteLine("5. similar_but_different_in_casing keys and Contains()"); strLoc = "Loc_005oo"; iCountTestcases++; ld.Clear(); string [] ks = { "Key", "kEy", "keY" }; len = ks.Length; for (int i = 0; i < len; i++) { ld.Add(ks[i], "Value" + i); } if (ld.Count != len) { iCountErrors++; Console.WriteLine("Err_0005a, count is {0} instead of {1}", ld.Count, len); } iCountTestcases++; if (ld.Contains("Value0")) { iCountErrors++; Console.WriteLine("Err_0005b, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!ld.Contains(ks[i])) { iCountErrors++; Console.WriteLine("Err_0005c_{0}, returned false when true expected", i); } } Console.WriteLine("6. Contains(null) for filled dictionary"); strLoc = "Loc_006oo"; iCountTestcases++; ld.Clear(); for (int i = 0; i < len; i++) { ld.Add(keys[i], values[i]); } try { ld.Contains(null); iCountErrors++; Console.WriteLine("Err_0006a, no exception"); } catch (ArgumentNullException ex) { Console.WriteLine(" Expected exception: {0}", ex.Message); } catch (Exception e) { iCountErrors++; Console.WriteLine("Err_0006b, unexpected exception: {0}", e.ToString()); } Console.WriteLine("7. Contains() for case-insensitive comparer"); ld = new ListDictionary(new Co8686_InsensitiveComparer()); strLoc = "Loc_007oo"; iCountTestcases++; ld.Clear(); len = ks.Length; ld.Add(ks[0], "Value0"); for (int i = 1; i < len; i++) { try { ld.Add(ks[i], "Value" + i); iCountErrors++; Console.WriteLine("Err_0007a_{0}, no exception", i); } catch (ArgumentException e) { Console.WriteLine("_{0}, Expected exception: {1}", i, e.Message); } catch (Exception ex) { iCountErrors++; Console.WriteLine("Err_0007b_{0}, unexpected exception: {1}", i, ex.ToString()); } } if (ld.Count != 1) { iCountErrors++; Console.WriteLine("Err_0007c, count is {0} instead of {1}", ld.Count, 1); } iCountTestcases++; if (ld.Contains("Value0")) { iCountErrors++; Console.WriteLine("Err_0007d, returned true when should not"); } for (int i = 0; i < len; i++) { iCountTestcases++; if (!ld.Contains(ks[i])) { iCountErrors++; Console.WriteLine("Err_0007e_{0}, returned false when true expected", i); } } iCountTestcases++; if (!ld.Contains("KEY")) { iCountErrors++; Console.WriteLine("Err_0007f, returned false non-existing-cased key"); } Console.WriteLine("10. Contains() and SpecialStructs_not_overriding_Equals"); ld = new ListDictionary(); strLoc = "Loc_010oo"; iCountTestcases++; Co8686_SpecialStruct s = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; Co8686_SpecialStruct s1 = new Co8686_SpecialStruct(); s.Num = 1; s.Wrd = "one"; ld.Add(s, "first"); ld.Add(s1, "second"); if (ld.Count != 2) { iCountErrors++; Console.WriteLine("Err_0010a, count is {0} instead of {1}", ld.Count, 2); } iCountTestcases++; if (!ld.Contains(s)) { iCountErrors++; Console.WriteLine("Err_0010b, returned false when true expected"); } iCountTestcases++; if (!ld.Contains(s1)) { iCountErrors++; Console.WriteLine("Err_0010c, returned false when true expected"); } } catch (Exception exc_general) { ++iCountErrors; Console.WriteLine(s_strTFAbbrev + " : Error Err_general! strLoc==" + strLoc + ", exc_general==\n" + exc_general.ToString()); } if (iCountErrors == 0) { Console.WriteLine("Pass. " + s_strTFPath + " " + s_strTFName + " ,iCountTestcases==" + iCountTestcases); return(true); } else { Console.WriteLine("Fail! " + s_strTFPath + " " + s_strTFName + " ,iCountErrors==" + iCountErrors + " , BugNums?: " + s_strActiveBugNums); return(false); } }