예제 #1
0
    def testAdd1(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')

        self.__ae('R', tree, 1, 4)
        self.__ae('A', tree, 2, 3)
예제 #2
0
    def testRemove0(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.remove('A')

        self.__ae('R', tree, 1, 2)
예제 #3
0
    def test_text_init(self):
        "Test the Trees object creation from text"

        # 1. Create Map object from text
        myobj = trees.Trees(text=aoc_03.from_text(EXAMPLE_TEXT))

        # 2. Make sure it has the expected values
        self.assertEqual(myobj.part2, False)
        self.assertEqual(len(myobj.text), 11)
        self.assertEqual(len(myobj.trees), 11)
        self.assertEqual(myobj.rows, 11)
        self.assertEqual(myobj.cols, 11)

        # 3. Test methods
        self.assertEqual(myobj.is_tree((0, 0)), False)
        self.assertEqual(myobj.is_tree((1, 0)), False)
        self.assertEqual(myobj.is_tree((2, 0)), True)
        self.assertEqual(myobj.is_tree((3, 1)), False)
        self.assertEqual(myobj.is_tree((6, 2)), True)
        self.assertEqual(myobj.is_tree((9, 3)), False)
        self.assertEqual(myobj.is_tree((12, 4)), True)
        self.assertEqual(myobj.is_tree((15, 5)), True)
        self.assertEqual(myobj.is_tree((18, 6)), False)
        self.assertEqual(myobj.is_tree((21, 7)), True)
        self.assertEqual(myobj.is_tree((24, 8)), True)
        self.assertEqual(myobj.is_tree((27, 9)), True)
        self.assertEqual(myobj.is_tree((30, 10)), True)
        self.assertEqual(myobj.is_tree((33, 11)), False)
        self.assertEqual(myobj.is_tree((36, 12)), False)

        self.assertEqual(myobj.is_last((0, 0)), False)
        self.assertEqual(myobj.is_last((9, 3)), False)
        self.assertEqual(myobj.is_last((27, 9)), False)
        self.assertEqual(myobj.is_last((30, 10)), True)
        self.assertEqual(myobj.is_last((33, 11)), True)
예제 #4
0
    def testAdd3(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')

        self.__ae('R', tree, 1, 6)
        self.__ae('A', tree, 2, 5)
        self.__ae('A1', tree, 3, 4)
예제 #5
0
    def testAdd4(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')

        self.__ae('R', tree, 1, 8)
        self.__ae('A', tree, 2, 7)
        self.__ae('A1', tree, 3, 4)
        self.__ae('A2', tree, 5, 6)
예제 #6
0
    def testRemove1(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')
        tree.remove('A1')

        self.__ae('R', tree, 1, 6)
        self.__ae('A', tree, 2, 5)
        self.__ae('A2', tree, 3, 4)
예제 #7
0
    def test_empty_init(self):
        "Test the default Trees creation"

        # 1. Create default Map object
        myobj = trees.Trees()

        # 2. Make sure it has the default values
        self.assertEqual(myobj.part2, False)
        self.assertEqual(myobj.text, None)
        self.assertEqual(myobj.trees, None)
        self.assertEqual(myobj.rows, 0)
        self.assertEqual(myobj.cols, 0)
예제 #8
0
    def __init__(self, text=None, part2=False):

        # 1. Set the initial values
        self.part2 = part2
        self.text = text
        self.loc = (0, 0)
        self.delta = (3, 1)
        self.trees = None

        # 2. Process text (if any)
        if text is not None and len(text) > 0:
            self.trees = trees.Trees(text=text, part2=part2)
예제 #9
0
    def testAdd5(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')
        tree.add('R', 'B')

        self.__ae('R', tree, 1, 10)
        self.__ae('A', tree, 2, 7)
        self.__ae('A1', tree, 3, 4)
        self.__ae('A2', tree, 5, 6)
        self.__ae('B', tree, 8, 9)
예제 #10
0
    def testRemove3(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')
        tree.add('R', 'B')
        tree.add('B', 'B1')
        tree.add('B', 'B2')
        tree.remove('A')

        self.__ae('R', tree, 1, 12)
        self.__ae('A1', tree, 2, 3)
        self.__ae('A2', tree, 4, 5)
        self.__ae('B', tree, 6, 11)
        self.__ae('B1', tree, 7, 8)
        self.__ae('B2', tree, 9, 10)
예제 #11
0
    def testAdd9(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')
        tree.add('R', 'B')
        tree.add('B', 'B1')
        tree.add('B', 'B2')
        tree.add('A', 'A3')

        self.__ae('R', tree, 1, 16)
        self.__ae('A', tree, 2, 9)
        self.__ae('A1', tree, 3, 4)
        self.__ae('A2', tree, 5, 6)
        self.__ae('B', tree, 10, 15)
        self.__ae('B1', tree, 11, 12)
        self.__ae('B2', tree, 13, 14)
        self.__ae('A3', tree, 7, 8)
예제 #12
0
    def testAdd10(self):
        tree = trees.Trees()
        tree.add(None, 'R')
        tree.add('R', 'A')
        tree.add('A', 'A1')
        tree.add('A', 'A2')
        tree.add('R', 'B')
        tree.add('B', 'B1')
        tree.add('B', 'B2')
        tree.add('A', 'A3')
        tree.add('A2', 'A21')

        self.__ae('R', tree, 1, 18)
        self.__ae('A', tree, 2, 11)
        self.__ae('A1', tree, 3, 4)
        self.__ae('A2', tree, 5, 8)
        self.__ae('B', tree, 12, 17)
        self.__ae('B1', tree, 13, 14)
        self.__ae('B2', tree, 15, 16)
        self.__ae('A3', tree, 9, 10)
        self.__ae('A21', tree, 6, 7)
예제 #13
0
 def testAdd0(self):
     tree = trees.Trees()
     tree.add(None, 'R')
     self.__ae('R', tree, 1, 2)