public virtual bool runTest() { int iCountErrors = 0; int iCountTestcases = 0; Console.Out.Write( strPath ); Console.Out.Write( strTest ); Console.Out.Write( ".cs" ); Console.Out.WriteLine( " runTest() started..." ); Hashtable hash = null; bool bRet = false; int ii; String strSecretID = null; Object objBogus = null; HashConfuse hshcnf1; HashConfuse hshcnf2; String strValue; ArrayList alst; Boolean fRetValue; Int32 iCount; Random rnd1; Int32 iElement; String [] strSuperHeroes = { "Captain Marvel" , "Batgirl" , "Nightwing" , "Green Lantern" , "Robin" , "Superman" , "Black Canary" , "Spiderman" , "Iron Man" , "Wonder Girl" , "Batman" , "Flash" , "Green Arrow" , "Atom" , "Steel" , "Powerman" , }; String [] strSecretIdentities = { "Batson, Billy" , "Gordan, Barbara" , "Grayson, Dick" , "Jordan, Hal" , "Drake, Tim" , "Kent, Clark" , "Lance, Dinah" , "Parker, Peter" , "Stark, Tony" , "Troy, Donna" , "Wayne, Bruce" , "West, Wally" , "Queen, Oliver" , "Palmer, Ray" , "Irons, John Henry" , "Cage, Luke" , }; do { iCountTestcases++; hash = new Hashtable(); if ( hash == null ) { Console.WriteLine( strTest+ "E_101" ); Console.WriteLine( strTest+ "Hashtable creation error" ); ++iCountErrors; break; } for ( ii = 0; ii < strSuperHeroes.Length; ++ii ) { iCountTestcases++; try { hash.Add( strSuperHeroes[ii], strSecretIdentities[ii] ); } catch ( Exception ex ) { StringBuilder strInfo = new StringBuilder( "Remove: Add error " ); strInfo = strInfo.Append( "Unexpected exception on Item <" ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_303" ); Console.WriteLine( strTest+ strInfo.ToString() ); Console.WriteLine( strTest+ ex.ToString() ); ++iCountErrors; break; } } iCountTestcases++; if ( hash.Count != strSuperHeroes.Length ) { StringBuilder strInfo = new StringBuilder( "Remove: add error " ); strInfo = strInfo.Append( "On Item <" + ii ); strInfo = strInfo.Append( "> " ); strInfo = strInfo.Append( "Expected Result = <" ); strInfo = strInfo.Append( strSuperHeroes.Length.ToString() ); strInfo = strInfo.Append( "> " ); strInfo = strInfo.Append( "Returned Result = <" ); strInfo = strInfo.Append( hash.Count.ToString() ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_404" ); Console.WriteLine( strTest+ strInfo.ToString() ); ++iCountErrors; } Console.Out.WriteLine( "Remove: Attempt to remove a bogus key entry from table" ); try { iCountTestcases++; hash.Remove( "THIS IS A BOGUS KEY" ); if ( hash.Count != strSuperHeroes.Length ) { StringBuilder strInfo = new StringBuilder( "Remove error " ); strInfo = strInfo.Append( "Expected Result = <" ); strInfo = strInfo.Append( strSuperHeroes.Length.ToString() ); strInfo = strInfo.Append( "> " ); strInfo = strInfo.Append( "Returned Result = <" ); strInfo = strInfo.Append( hash.Count.ToString() ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_505" ); Console.WriteLine( strTest+ strInfo.ToString() ); ++iCountErrors; } } catch ( Exception ex ) { StringBuilder strInfo = new StringBuilder( "Remove error " ); strInfo = strInfo.Append( "Unexpected exception <" ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_606" ); Console.WriteLine( strTest+ strInfo.ToString() ); Console.WriteLine( strTest+ ex.ToString() ); ++iCountErrors; } iCountTestcases++; Console.Out.WriteLine( "Remove: Attempt to remove a null key entry from table" ); try { hash.Remove( null ); Console.WriteLine( strTest+ "E_707" ); Console.WriteLine( strTest+ "Remove error: ArgumentException expected" ); ++iCountErrors; } catch ( ArgumentException ex ) { Console.Out.WriteLine( "ArgumentException caught" ); } catch ( Exception ex ) { StringBuilder strInfo = new StringBuilder( "Remove error " ); strInfo = strInfo.Append( "Generic exception caught:" ); strInfo = strInfo.Append( ex.ToString() ); Console.WriteLine( strTest+ "E_808" ); Console.WriteLine( strTest+ strInfo.ToString() ); ++iCountErrors; } Console.Out.WriteLine( "Remove: Add key/value pair to Hashtable and remove items" ); for ( ii = 0; ii < strSuperHeroes.Length; ++ii ) { iCountTestcases++; try { hash.Remove( strSuperHeroes[ii] ); if ( hash.Count != strSuperHeroes.Length - ii - 1 ) { StringBuilder strInfo = new StringBuilder( "Remove error " ); strInfo = strInfo.Append( "On Item <" + ii ); strInfo = strInfo.Append( "> " ); strInfo = strInfo.Append( "Expected Result = <" ); strInfo = strInfo.Append( (strSuperHeroes.Length - ii - 1).ToString() ); strInfo = strInfo.Append( "> " ); strInfo = strInfo.Append( "Returned Result = <" ); strInfo = strInfo.Append( hash.Count.ToString() ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_1010" ); Console.WriteLine( strTest+ strInfo.ToString() ); ++iCountErrors; break; } } catch ( Exception ex ) { StringBuilder strInfo = new StringBuilder( "Remove error " ); strInfo = strInfo.Append( "Unexpected exception on Item <" ); strInfo = strInfo.Append( "> " ); Console.WriteLine( strTest+ "E_1111" ); Console.WriteLine( strTest+ strInfo.ToString() ); Console.WriteLine( strTest+ ex.ToString() ); ++iCountErrors; break; } } hash = new Hashtable(); alst = new ArrayList(); for(int i=0; i<7; i++) { strValue = "Test_" + i; hshcnf1 = new HashConfuse(strValue); alst.Add(hshcnf1); hash.Add(hshcnf1, strValue); } fRetValue = true; iCount = 7; rnd1 = new Random(); iCountTestcases++; for(int i=0; i<100; i++) { for(int j=0; j<7; j++) { if(!((String)hash[alst[j]]).Equals(((HashConfuse)alst[j]).Word)) { fRetValue = false; } } for(int j=0; j<3; j++) { iElement = rnd1.Next(6); hash.Remove(alst[iElement]); alst.RemoveAt(iElement); strValue = "Test_" + iCount++; hshcnf1 = new HashConfuse(strValue); alst.Add(hshcnf1); hash.Add(hshcnf1, strValue); } } if(!fRetValue) { Console.WriteLine("Something wrong somewhere"); iCountErrors++; } } while ( false ); Console.Error.Write( strName ); Console.Error.Write( ": " ); if ( iCountErrors == 0 ) { Console.Error.Write( strTest ); Console.Error.WriteLine( " paSs, iCountTestcases==" + iCountTestcases); return true; } else { System.String strFailMsg = null; Console.WriteLine( strTest+ strPath ); Console.WriteLine( strTest+ "FAiL" ); Console.Error.Write( strTest ); Console.Error.Write( " iCountErrors==" ); Console.Error.WriteLine( iCountErrors ); return false; } }
public virtual bool runTest() { int iCountErrors = 0; int iCountTestcases = 0; Console.Out.Write(strPath); Console.Out.Write(strTest); Console.Out.Write(".cs"); Console.Out.WriteLine(" runTest() started..."); Hashtable hash = null; bool bRet = false; int ii; String strSecretID = null; Object objBogus = null; HashConfuse hshcnf1; HashConfuse hshcnf2; String strValue; ArrayList alst; Boolean fRetValue; Int32 iCount; Random rnd1; Int32 iElement; String [] strSuperHeroes = { "Captain Marvel", "Batgirl", "Nightwing", "Green Lantern", "Robin", "Superman", "Black Canary", "Spiderman", "Iron Man", "Wonder Girl", "Batman", "Flash", "Green Arrow", "Atom", "Steel", "Powerman", }; String [] strSecretIdentities = { "Batson, Billy", "Gordan, Barbara", "Grayson, Dick", "Jordan, Hal", "Drake, Tim", "Kent, Clark", "Lance, Dinah", "Parker, Peter", "Stark, Tony", "Troy, Donna", "Wayne, Bruce", "West, Wally", "Queen, Oliver", "Palmer, Ray", "Irons, John Henry", "Cage, Luke", }; do { iCountTestcases++; hash = new Hashtable(); if (hash == null) { Console.WriteLine(strTest + "E_101"); Console.WriteLine(strTest + "Hashtable creation error"); ++iCountErrors; break; } for (ii = 0; ii < strSuperHeroes.Length; ++ii) { iCountTestcases++; try { hash.Add(strSuperHeroes[ii], strSecretIdentities[ii]); } catch (Exception ex) { StringBuilder strInfo = new StringBuilder("Remove: Add error "); strInfo = strInfo.Append("Unexpected exception on Item <"); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_303"); Console.WriteLine(strTest + strInfo.ToString()); Console.WriteLine(strTest + ex.ToString()); ++iCountErrors; break; } } iCountTestcases++; if (hash.Count != strSuperHeroes.Length) { StringBuilder strInfo = new StringBuilder("Remove: add error "); strInfo = strInfo.Append("On Item <" + ii); strInfo = strInfo.Append("> "); strInfo = strInfo.Append("Expected Result = <"); strInfo = strInfo.Append(strSuperHeroes.Length.ToString()); strInfo = strInfo.Append("> "); strInfo = strInfo.Append("Returned Result = <"); strInfo = strInfo.Append(hash.Count.ToString()); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_404"); Console.WriteLine(strTest + strInfo.ToString()); ++iCountErrors; } Console.Out.WriteLine("Remove: Attempt to remove a bogus key entry from table"); try { iCountTestcases++; hash.Remove("THIS IS A BOGUS KEY"); if (hash.Count != strSuperHeroes.Length) { StringBuilder strInfo = new StringBuilder("Remove error "); strInfo = strInfo.Append("Expected Result = <"); strInfo = strInfo.Append(strSuperHeroes.Length.ToString()); strInfo = strInfo.Append("> "); strInfo = strInfo.Append("Returned Result = <"); strInfo = strInfo.Append(hash.Count.ToString()); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_505"); Console.WriteLine(strTest + strInfo.ToString()); ++iCountErrors; } } catch (Exception ex) { StringBuilder strInfo = new StringBuilder("Remove error "); strInfo = strInfo.Append("Unexpected exception <"); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_606"); Console.WriteLine(strTest + strInfo.ToString()); Console.WriteLine(strTest + ex.ToString()); ++iCountErrors; } iCountTestcases++; Console.Out.WriteLine("Remove: Attempt to remove a null key entry from table"); try { hash.Remove(null); Console.WriteLine(strTest + "E_707"); Console.WriteLine(strTest + "Remove error: ArgumentException expected"); ++iCountErrors; } catch (ArgumentException ex) { Console.Out.WriteLine("ArgumentException caught"); } catch (Exception ex) { StringBuilder strInfo = new StringBuilder("Remove error "); strInfo = strInfo.Append("Generic exception caught:"); strInfo = strInfo.Append(ex.ToString()); Console.WriteLine(strTest + "E_808"); Console.WriteLine(strTest + strInfo.ToString()); ++iCountErrors; } Console.Out.WriteLine("Remove: Add key/value pair to Hashtable and remove items"); for (ii = 0; ii < strSuperHeroes.Length; ++ii) { iCountTestcases++; try { hash.Remove(strSuperHeroes[ii]); if (hash.Count != strSuperHeroes.Length - ii - 1) { StringBuilder strInfo = new StringBuilder("Remove error "); strInfo = strInfo.Append("On Item <" + ii); strInfo = strInfo.Append("> "); strInfo = strInfo.Append("Expected Result = <"); strInfo = strInfo.Append((strSuperHeroes.Length - ii - 1).ToString()); strInfo = strInfo.Append("> "); strInfo = strInfo.Append("Returned Result = <"); strInfo = strInfo.Append(hash.Count.ToString()); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_1010"); Console.WriteLine(strTest + strInfo.ToString()); ++iCountErrors; break; } } catch (Exception ex) { StringBuilder strInfo = new StringBuilder("Remove error "); strInfo = strInfo.Append("Unexpected exception on Item <"); strInfo = strInfo.Append("> "); Console.WriteLine(strTest + "E_1111"); Console.WriteLine(strTest + strInfo.ToString()); Console.WriteLine(strTest + ex.ToString()); ++iCountErrors; break; } } hash = new Hashtable(); alst = new ArrayList(); for (int i = 0; i < 7; i++) { strValue = "Test_" + i; hshcnf1 = new HashConfuse(strValue); alst.Add(hshcnf1); hash.Add(hshcnf1, strValue); } fRetValue = true; iCount = 7; rnd1 = new Random(); iCountTestcases++; for (int i = 0; i < 100; i++) { for (int j = 0; j < 7; j++) { if (!((String)hash[alst[j]]).Equals(((HashConfuse)alst[j]).Word)) { fRetValue = false; } } for (int j = 0; j < 3; j++) { iElement = rnd1.Next(6); hash.Remove(alst[iElement]); alst.RemoveAt(iElement); strValue = "Test_" + iCount++; hshcnf1 = new HashConfuse(strValue); alst.Add(hshcnf1); hash.Add(hshcnf1, strValue); } } if (!fRetValue) { Console.WriteLine("Something wrong somewhere"); iCountErrors++; } }while (false); Console.Error.Write(strName); Console.Error.Write(": "); if (iCountErrors == 0) { Console.Error.Write(strTest); Console.Error.WriteLine(" paSs, iCountTestcases==" + iCountTestcases); return(true); } else { System.String strFailMsg = null; Console.WriteLine(strTest + strPath); Console.WriteLine(strTest + "FAiL"); Console.Error.Write(strTest); Console.Error.Write(" iCountErrors=="); Console.Error.WriteLine(iCountErrors); return(false); } }