public void ChooseTest() { for (int i = 0; i < 10; i++) { CharSetSolver solver = new CharSetSolver(BitWidth.BV16); BDD set1 = solver.MkRangeConstraint('a', 'c', true); string set1str = solver.PrettyPrint(set1); BDD set2 = solver.MkRangeConstraint('a', 'c'); string set2str = solver.PrettyPrint(set2); BDD set3 = solver.MkRangeConstraint('A', 'C'); string set3str = solver.PrettyPrint(set3); BDD set1a = solver.MkOr(set2, set3); Assert.AreEqual <string>("[A-Ca-c]", set1str); Assert.AreEqual <string>("[a-c]", set2str); Assert.AreEqual <string>("[A-C]", set3str); int h1 = set1.GetHashCode(); int h2 = set1a.GetHashCode(); bool same = (h1 == h2); Assert.AreSame(set1, set1a); Assert.IsTrue(same); Assert.IsTrue(solver.AreEquivalent(set1, set1a)); //int seed = solver.Chooser.RandomSeed; char choice1 = (char)solver.Choose(set1); char choice2 = (char)solver.Choose(set1); char choice3 = (char)solver.Choose(set1); char choice4 = (char)solver.Choose(set1); //solver.Chooser.RandomSeed = seed; //char choice1a = solver.Choose(set1a); //char choice2a = solver.Choose(set1a); //char choice3a = solver.Choose(set1a); //char choice4a = solver.Choose(set1a); //string s = new String(new char[] { choice1, choice2, choice3, choice4 }); //string sa = new String(new char[] { choice1a, choice2a, choice3a, choice4a }); //Assert.AreEqual<string>(s, sa); } }