Re-enabled code to run in both threaded and non-threaded mode, and do solution comparison. Still need to clean user interaction code and enable multiple executions.
Dev Ghai

Dev Ghai commited on 2013-12-27 07:02:01
Showing 1 changed files, with 24 additions and 35 deletions.

... ...
@@ -114,53 +114,42 @@ namespace Boggle
114 114
 
115 115
             BoggleBoard board = new BoggleBoard(boardSideLength, boardString);
116 116
             board.Print();
117
-            BoggleSolver solution = new BoggleSolver(board, bl, minWordLength);
117
+            BoggleSolver solver = new BoggleSolver(board, bl, minWordLength);
118
+            st.Reset();
118 119
             st.Start();
119
-            //HashSet<WordOnBoard> wordsUnThreaded = solution.GetWordsOnBoard(false);
120
-            //st.Stop();
121
-            //PrintWords(wordsUnThreaded);
120
+            HashSet<WordOnBoard> wordsUnThreaded = solver.GetWordsOnBoard(false);
121
+            st.Stop();
122
+            PrintWords(wordsUnThreaded);
122 123
 
123
-            //Console.WriteLine("Got solution in {0} ms. Number of words (unthreaded): {1}", st.ElapsedMilliseconds, wordsUnThreaded.Count);
124
-            //Console.WriteLine("Press any key to run in threaded mode.");
125
-            //Console.ReadKey();
124
+            Console.WriteLine("Got solution in {0} ms. Number of words (UNTHREADED): {1}\n\n", st.ElapsedMilliseconds, wordsUnThreaded.Count);
125
+            st.Reset();
126 126
             st.Start();
127
-            HashSet<WordOnBoard> wordsThreaded = solution.GetWordsOnBoard(true);
128
-            //wordsThreaded.ExceptWith(wordsUnThreaded);
127
+            HashSet<WordOnBoard> wordsThreaded = solver.GetWordsOnBoard(true);
129 128
             st.Stop();
130 129
             st.Reset();
131 130
             PrintWords(wordsThreaded);
132
-            Console.WriteLine("Got solution in {0} ms. Number of words (threaded): {1}.", st.ElapsedMilliseconds, wordsThreaded.Count);
133
-
134
-            
135
-
136
-
137
-            //if (wordsUnThreaded.Count > wordsThreaded.Count)
138
-            //{
139
-            //    wordsUnThreaded.ExceptWith(wordsThreaded);
140
-            //    Console.WriteLine("Words in unthreaded collection that are not in threaded collection:");
141
-            //    PrintWords(wordsUnThreaded);
142
-            //}
143
-            //if (wordsThreaded.Count > wordsUnThreaded.Count)
144
-            //{
145
-            //    wordsThreaded.ExceptWith(wordsUnThreaded);
146
-            //    Console.WriteLine("Words in threaded collection that are not in unthreaded collection:");
147
-            //    PrintWords(wordsThreaded);
148
-            //}
131
+            Console.WriteLine("\nGot solution in {0} ms. Number of words (THREADED): {1}.", st.ElapsedMilliseconds, wordsThreaded.Count);
149 132
 
150
-            //wordsUnThreaded.RemoveWhere(WordsWithLowestScore);
151
-            //Console.WriteLine("***Removed words with score 1.***");
152
-            //PrintWords(wordsUnThreaded);
153
-            Console.ReadKey();
133
+            Console.WriteLine("Time for sanity checks... comparing solutions from threaded and non-threaded mode.");
134
+            if (wordsThreaded.Count == wordsUnThreaded.Count)
135
+            {
136
+                Console.WriteLine("\nALL GOOD!");
154 137
             }
155
-
156
-        private static bool WordsWithLowestScore(WordOnBoard word)
138
+            if (wordsUnThreaded.Count > wordsThreaded.Count)
157 139
             {
158
-            if (word.Score == Constants.MIN_SCORE)
140
+                wordsUnThreaded.ExceptWith(wordsThreaded);
141
+                Console.WriteLine("Words in unthreaded collection that are not in threaded collection:");
142
+                PrintWords(wordsUnThreaded);
143
+            }
144
+            if (wordsThreaded.Count > wordsUnThreaded.Count)
159 145
             {
160
-                return true;
146
+                wordsThreaded.ExceptWith(wordsUnThreaded);
147
+                Console.WriteLine("Words in threaded collection that are not in unthreaded collection:");
148
+                PrintWords(wordsThreaded);
161 149
             }
162 150
 
163
-            return false;
151
+            Console.WriteLine("\nPress any key to exit.");
152
+            Console.ReadKey();
164 153
         }
165 154
     }
166 155
 }
167 156