예제 #1
0
class TestClassesNodes(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        super(TestClassesNodes, self).__init__(*args, **kwargs)
        self.f1 = FeatureTest(1)
        self.f2 = FeatureTest(10)
        self.f2.shape = geom.box(1.0, 0.0, 2.0, 1.0)
        self.f3 = FeatureTest(100)
        self.f3.shape = geom.box(1.0, 0.0, 3.0, 1.0)

        self.n1 = BlendNode([self.f1])
        self.n2 = BlendNode([self.f2])
        self.n3 = BlendNode([self.f3])
        
    def test_blend_node(self):
        node1 = BlendNode([self.f1, self.f2])
        self.assertEqual(node1.z((1, 1)), (1 + 10) / 2)
        self.assertEqual(node1.influence((1, 1)), 2 * 0.8)
        self.assertEqual(node1.shape.area, 2.0)

        node2 = BlendNode([self.f1, self.f2, self.f3])
        self.assertAlmostEqual(node2.z((1, 1)), (1 + 10 + 100) / 3)
        self.assertEqual(node2.influence((1, 1)), 3 * 0.8)
        self.assertEqual(node2.shape.area, 3.0)

        node3 = BlendNode([self.n1, self.n2, self.n3])
        self.assertAlmostEqual(node3.z((1, 1)), (1 + 10 + 100) / 3)
        self.assertEqual(node3.influence((1, 1)), 3 * 0.8)
        self.assertEqual(node3.shape.area, 3.0)
        
    def test_replace_node(self):
        node1 = ReplaceNode(self.n1, self.n2)
        self.assertEqual(node1.z((1, 1)), 10 * 0.8 + 1 * 0.2)
        self.assertEqual(node1.influence((1, 1)), 0.8)
        self.assertEqual(node1.shape.area, 2.0)

        node1.add_child(self.n3)
        self.assertEqual(self.n3.z((1, 1)), 100)
        self.assertAlmostEqual(node1.z((1, 1)), 10 * 0.8 + (1 + 100) / 2 * 0.2)
        self.assertEqual(node1.influence((1, 1)), 0.8 * 2)
        self.assertEqual(node1.shape.area, 3.0)

    def test_addition_node(self):
        node1 = AdditionNode(self.n1, self.n2)
        self.assertEqual(node1.z((1, 1)), 1 + 10 * 0.8)
        self.assertEqual(node1.influence((1, 1)), 0.8)
        self.assertEqual(node1.shape.area, 2.0)

        node1.add_child(self.n3)
        self.assertEqual(self.n3.z((1, 1)), 100)
        self.assertAlmostEqual(node1.z((1, 1)), 10 * 0.8 + (1 + 100) / 2)
        self.assertEqual(node1.influence((1, 1)), 0.8 * 2)
        self.assertEqual(node1.shape.area, 3.0)
예제 #2
0
    def test_blend_node(self):
        node1 = BlendNode([self.f1, self.f2])
        self.assertEqual(node1.z((1, 1)), (1 + 10) / 2)
        self.assertEqual(node1.influence((1, 1)), 2 * 0.8)
        self.assertEqual(node1.shape.area, 2.0)

        node2 = BlendNode([self.f1, self.f2, self.f3])
        self.assertAlmostEqual(node2.z((1, 1)), (1 + 10 + 100) / 3)
        self.assertEqual(node2.influence((1, 1)), 3 * 0.8)
        self.assertEqual(node2.shape.area, 3.0)

        node3 = BlendNode([self.n1, self.n2, self.n3])
        self.assertAlmostEqual(node3.z((1, 1)), (1 + 10 + 100) / 3)
        self.assertEqual(node3.influence((1, 1)), 3 * 0.8)
        self.assertEqual(node3.shape.area, 3.0)
예제 #3
0
    def __init__(self, *args, **kwargs):
        super(TestClassesNodes, self).__init__(*args, **kwargs)
        self.f1 = FeatureTest(1)
        self.f2 = FeatureTest(10)
        self.f2.shape = geom.box(1.0, 0.0, 2.0, 1.0)
        self.f3 = FeatureTest(100)
        self.f3.shape = geom.box(1.0, 0.0, 3.0, 1.0)

        self.n1 = BlendNode([self.f1])
        self.n2 = BlendNode([self.f2])
        self.n3 = BlendNode([self.f3])