Пример #1
0
    def test_create_sets_multiple_parents(self):
        aa_nodes = [AABuilder().with_id(0).build(),
                    AABuilder().with_id(1).build(),
                    AABuilder().with_id(2).parent_ids([0, 1]).build()] 

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)

        self.assertEqual(aa[2].parent_ids, [0, 1])
Пример #2
0
    def test_create_sets_subtrees_to_distinct_aa_subclasses(self):
        aa_nodes = [AABuilder().subclass("Subclass1").build(),
                    AABuilder().subclass("Subclass1").build(),
                    AABuilder().subclass("Subclass2").build()] 

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)

        self.assertEqual(subtrees,  { 'Subclass1': 0, 'Subclass2': 0 })
Пример #3
0
    def test_create_sets_orphans_to_aa_with_no_parents(self):
        aa_nodes = [AABuilder().with_id(5).build(),
                    AABuilder().with_id(6).build(),
                    AABuilder().with_id(7).parent_ids([5]).build()] 

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)

        self.assertEqual(orphans, [0, 1])
Пример #4
0
    def test_create_reorders_aa_by_sorted_order(self):
        aa_nodes = [AABuilder().with_id(50).coords(1, 1).build(),
                    AABuilder().with_id(60).coords(0, 0).build(),
                    AABuilder().with_id(70).coords(1, 0).build(),
                    AABuilder().with_id(80).coords(0, 1).build()]

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)
        
        self.assertEquals(list(map(lambda a: a.id, aa)), [0, 1, 2, 3])
Пример #5
0
    def test_create_sorts_aa_top_to_bottom_left_to_right(self):
        aa_nodes = [AABuilder().with_id(50).coords(1, 1).build(),
                    AABuilder().with_id(60).coords(0, 0).build(),
                    AABuilder().with_id(70).coords(1, 0).build(),
                    AABuilder().with_id(80).coords(0, 1).build()]

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)
        
        self.assertEquals(list(map(lambda a: a.coords, aa)), [[0, 0], [1, 0], [0, 1], [1, 1]])
Пример #6
0
    def test_create_all_replaces_parent_soe_ids(self):
        aa_nodes = [AABuilder().with_id(50).build(),
                    AABuilder().with_id(60).parent_ids([50]).build(),
                    AABuilder().with_id(70).parent_ids([60]).build(),
                    AABuilder().with_id(80).build()]

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)
        
        self.assertEqual(list(map(lambda n: n.parent_ids, aa)), [[], [0], [1], []])
Пример #7
0
    def test_create_subtree_prereq_created_if_subclass_matches_y_classifcation(self):
        self._tree_y_subclass = "YSubclass"
        aa_node = AABuilder().subclass("YSubclass").cost(3).build()

        result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)

        self.assertEqual(result.prereqs["subtree"], 3)
Пример #8
0
    def test_create_parent_subtree_prereqs_ignored_if_not_shadows_tree(self):
        self._tree_name = "NonShadowsTree"
        
        aa_node = AABuilder().subclass(self._lineage["family"]).build()

        result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)

        self.assertEqual(result.prereqs["parent_subtree"], 0)
Пример #9
0
    def test_create_parent_subtree_prereqs_ignored_if_subclass_prereq_present(self):
        self._tree_name = "Shadows"
        
        aa_node = AABuilder().subclass(self._lineage["family"]).requires_subtree_points(10).build()

        result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)

        self.assertEqual(result.prereqs["parent_subtree"], 0)
Пример #10
0
    def test_create_shadows_subclass_matches_lineage_family_sets_parent_subtree_prereq(self):
        self._tree_name = "Shadows"
        
        aa_node = AABuilder().subclass(self._lineage["family"]).build()

        result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)

        self.assertEqual(result.prereqs["parent_subtree"], 10)
Пример #11
0
 def test_create_sets_icon_ids(self):
     aa_node = AABuilder().spellcrc(123).build()
     spell = SpellBuilder().with_crc(123).backdrop(50).icon(100).build()
     self._setup_spells(123, [spell])
     
     result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)
     
     self.assertDictEqual(result.icon, { "icon": 100, "backdrop": 50 })
Пример #12
0
    def test_create_populates_aa(self):
        aa_node = AABuilder().with_id(1).name("SomeAA").build()
        tree = TreeBuilder()\
            .with_aa([aa_node])\
            .build()

        self._setup_tree(tree)
        result = self.sut.create(0, self._lineage, self._class_name)

        self.assertEqual(result.aa, self._aa)
Пример #13
0
 def test_create_fetches_effects_in_order(self):
     aa_node = AABuilder().spellcrc(123).build()
     spell_rank5 = SpellBuilder().with_crc(123).rank(5).add_effect('Rank5', 1).build()
     spell_rank1 = SpellBuilder().with_crc(123).rank(1).add_effect('Rank1', 1).build()
     self._setup_spells(123, [spell_rank5, spell_rank1])
     
     self._spell_effect_formatter.format.side_effect = lambda effects: effects[0]["description"] + "Formatted" 
     
     result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)
     
     self.assertEqual(result.effects, ["Rank1Formatted", "Rank5Formatted"])
Пример #14
0
    def test_create_sets_prereqs(self):
        aa_node = AABuilder().requires_global_points(1)\
            .requires_parent_points(2)\
            .requires_subtree_points(3)\
            .requires_tree_points(4)\
            .build()

        result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)
            
        expected_prereqs = { "parent_subtree": 0,
                            "global": 1,
                            "tree": 4,
                            "subtree": 3,
                            "parent": 2}
        self.assertDictEqual(result.prereqs, expected_prereqs)
Пример #15
0
    def test_create_populates_children(self):
        aa_nodes = [AABuilder().with_id(50).build(),
                    AABuilder().with_id(60).parent_ids([50]).build(),
                    AABuilder().with_id(70).parent_ids([50]).build(),
                    AABuilder().with_id(80).parent_ids([60]).build(),
                    AABuilder().with_id(90).parent_ids([60]).build(),
                    AABuilder().with_id(100).build()]

        aa, orphans, subtrees = self.sut.create_all(aa_nodes, self._lineage, self._class_name, self._tree_name, self._tree_type, self._tree_y_subclass)
        
        self.assertEqual(list(map(lambda n: n.children, aa)), [[1, 2], [3, 4], [], [], [], []])
Пример #16
0
 def test_create_maps_basic_properties(self):
     aa_node = AABuilder().build()
     
     result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)
     
     self.assertEqual(result.id, 0)
     self.assertEqual(result.soe_id, aa_node["nodeid"])
     self.assertEqual(result.parent_ids, [])
     self.assertEqual(result.name, aa_node["name"])
     self.assertEqual(result.description, aa_node["description"])
     self.assertEqual(result.title, aa_node["title"])
     self.assertEqual(result.subclass, aa_node["classification"])
     self.assertEqual(result.max_level, aa_node["maxtier"])
     self.assertEqual(result.coords, [aa_node["xcoord"], aa_node["ycoord"]])
     self.assertEqual(result.level, 0)
     self.assertEqual(result.cost, aa_node["pointspertier"])
     self.assertEqual(result.children, [])
Пример #17
0
 def test_create_sets_parent(self):
     aa_node = AABuilder().parent_ids([5]).build()
     
     result = self.sut.create(aa_node, self._lineage, self._class_name, self._tree_name, self._tree_y_subclass)
     
     self.assertEqual(result.parent_ids, [aa_node["firstparentid"]])