Ejemplo n.º 1
0
    def test_clearNodes(self):
        """Should empty path stack and variable forbidden"""

        #create a searchpath and add just one node
        test = SearchPath(SearchPathHelper.alphabets)
        test.generate(1)

        #now call clear and make sure path value is "" (empty)
        test.clearNodes()
        self.assertEquals(test.Value, "")
Ejemplo n.º 2
0
 def test_clearNodes(self):
     """Should empty path stack and variable forbidden"""
     
     #create a searchpath and add just one node
     test = SearchPath(SearchPathHelper.alphabets)
     test.generate(1)
     
     #now call clear and make sure path value is "" (empty)
     test.clearNodes()
     self.assertEquals(test.Value, "")
Ejemplo n.º 3
0
    def test_generate_correctAlph(self):
        """Should get correct alphabet even if node is popped then readded"""

        test_alphs = {
            0: "A",
            1: "BC",
            2: "D",
            3: "E",
            SearchPath.DEFAULT_KEY: "X"
        }
        forbidden_seqs = ["CD"]
        test = SearchPath(test_alphs, forbidden_seqs)

        #given these position alphabets and this forbidden seq,
        #the only legal 3-node searchpath should be ABD.  Make
        #a hundred searchpaths and make sure this is the only one
        #that actually shows up.
        found_paths = {}
        for i in xrange(100):
            curr_path = test.generate(3)
            found_paths[curr_path] = True
            test.clearNodes()
        #next

        #make sure there is only one path found and that it is the right one
        found_path_str = str("".join(found_paths.keys()))
        self.assertEquals(len(found_paths), 1)
        self.assertEquals(found_path_str, "ABD")
Ejemplo n.º 4
0
    def test_generate_nonePossible(self):
        """Should return null if no path can match constraints"""

        alphabet = {SearchPath.DEFAULT_KEY: "AB"}
        #forbid all combinations of alphabet
        forbidden_seqs = ["AA", "AB", "BB", "BA"]

        test = SearchPath(alphabet, forbidden_seqs)
        output = test.generate(2)

        self.assertEquals(output, None)
Ejemplo n.º 5
0
 def test_generate_nonePossible(self):
     """Should return null if no path can match constraints"""
     
     alphabet = {SearchPath.DEFAULT_KEY:"AB"}
     #forbid all combinations of alphabet
     forbidden_seqs = ["AA", "AB", "BB", "BA"]
     
     test = SearchPath(alphabet, forbidden_seqs)
     output = test.generate(2)
     
     self.assertEquals(output, None)
Ejemplo n.º 6
0
    def test_generate_multiple(self):
        """Should be able to call generate multiple times to extend path"""

        test = SearchPath(SearchPathHelper.alphabets)
        output1 = test.generate(2)
        output2 = test.generate(3)

        #make sure that the length of the path is now three
        self.assertEquals(len(output2), 3)

        #make sure that the new path is a superset of the old one
        self.assertEquals(output1, output2[:2])
Ejemplo n.º 7
0
 def test_generate_multiple(self):
     """Should be able to call generate multiple times to extend path"""
     
     test = SearchPath(SearchPathHelper.alphabets)
     output1 = test.generate(2)
     output2 = test.generate(3)
     
     #make sure that the length of the path is now three
     self.assertEquals(len(output2), 3)
     
     #make sure that the new path is a superset of the old one
     self.assertEquals(output1, output2[:2])
Ejemplo n.º 8
0
    def test_generate_correctAlph(self):
        """Should get correct alphabet even if node is popped then readded"""
        
        test_alphs = {0:"A",1:"BC",2:"D",3:"E",SearchPath.DEFAULT_KEY:"X"}
        forbidden_seqs = ["CD"]
        test = SearchPath(test_alphs, forbidden_seqs)

        #given these position alphabets and this forbidden seq,
        #the only legal 3-node searchpath should be ABD.  Make
        #a hundred searchpaths and make sure this is the only one
        #that actually shows up.
        found_paths = {}
        for i in xrange(100):
            curr_path = test.generate(3)
            found_paths[curr_path] = True
            test.clearNodes()
        #next 
        
        #make sure there is only one path found and that it is the right one
        found_path_str = str("".join(found_paths.keys()))
        self.assertEquals(len(found_paths), 1)
        self.assertEquals(found_path_str, "ABD")