Пример #1
0
    def test_multitext(self):
        model = self.acad.model
        text1 = 'Line1\nLine2\nLine3\\'
        text2 = 'Line1\\PLine2\\PLine3\\P'

        t1 = model.AddMText(APoint(0, 0, 0), 10, text1)
        t2 = model.AddMText(APoint(10, 10, 0), 10, text2)
        self.assertEqual(t1.TextString, text1)
        self.assertEqual(t2.TextString, text2)
Пример #2
0
    def test_points_arguments(self):
        model = self.acad.model
        p1 = APoint(0, 0, 0)
        for i in range(10):
            model.AddCircle(p1 * i, i + 1)
            p1 += i

        for circle in self.acad.iter_objects('circle'):
            cp = APoint(circle.Center)
            model.AddCircle(-cp, circle.Radius)
Пример #3
0
    def test_text(self):
        model = self.acad.model
        text1 = u'Русский текст'
        text2 = u'With paragraph \PYes'

        t1 = model.AddText(text1, APoint(0, 0, 0), 10)
        t2 = model.AddText(text2, APoint(10, 10, 0), 10)

        self.assertEqual(type(t1.TextString), unicode)
        self.assertEqual(t1.TextString, text1)
        self.assertEqual(t2.InsertionPoint, (10, 10, 0))
        self.assertNotEqual(t2.InsertionPoint, (10, 10, 1))
Пример #4
0
    def test_args(self):
        wrong_args = ['123', (1, 2), [1, 2, 3, 4]]
        for arg in wrong_args:
            with self.assertRaises(TypeError):
                p = APoint(arg)

        p = APoint(0, 0, 0)
        for arg in wrong_args:
            try:
                p += arg
                self.fail('Wrong arg passed')
            except Exception:
                pass
Пример #5
0
    def test_types(self):
        model = self.acad.model
        p1 = APoint(0, 0, 0)
        p2 = APoint(10, 10, 0)
        p3 = tuple(p + 10 for p in p2)

        model.AddLine(p1, p2)
        model.AddLine(p2, APoint(p3))
        lines = list(self.acad.iter_objects())
        self.assertEqual(len(lines), 2)
        self.assertEqual(lines[0].StartPoint, p1)
        self.assertEqual(lines[0].EndPoint, p2)
        self.assertEqual(lines[1].StartPoint, p2)
        self.assertEqual(lines[1].EndPoint, p3)
Пример #6
0
    def test_iter_objects(self):
        model = self.acad.model
        p1 = APoint(0, 0, 0)
        p2 = APoint(10, 10, 0)
        n_lines = 10
        n_texts = 15
        for i in range(n_lines):
            model.AddLine(p1, p2)
        for i in range(n_texts):
            model.AddMText(p2, 10, u'Dummy')

        lines_count = len(list(self.acad.iter_objects('Line')))
        texts_count = len(list(self.acad.iter_objects('MText')))
        all_count = len(list(self.acad.iter_objects(['MText', 'Line'])))

        self.assertEqual(lines_count, n_lines)
        self.assertEqual(texts_count, n_texts)
        self.assertEqual(all_count, n_lines + n_texts)
Пример #7
0
    def test_point_ops(self):
        p1 = APoint(1, 1, 1)
        p2 = APoint(1, 1, 1)
        p3 = APoint(2, 2, 2)
        p4 = APoint(2, 2, 2)

        self.assertEqual(p1 + p2, (2, 2, 2))
        self.assertEqual(p1 - p3, (-1, -1, -1))
        self.assertEqual(p1 * p2, p1)
        self.assertEqual(p3 * p4, (4, 4, 4))
        self.assertEqual(p3 / p4, p1)

        self.assertEqual(p1 + 1, (2, 2, 2))
        self.assertEqual(p2 * 4, p3 * 2)
        self.assertEqual(p3 * 10, (20, 20, 20))
        self.assertEqual(p3 / 2, p1)
        self.assertEqual(p1 / 0.5, p3)

        self.assertEqual(-p1, (-1, -1, -1))
Пример #8
0
    def test_find_objects(self):
        p1 = APoint(0, 0)
        model = self.acad.model
        for i in range(5):
            model.AddText(u'test %s' % i, p1, 2.5)

        def text_contains_3(text_obj):
            return '3' in text_obj.TextString

        text = self.acad.find_one('Text', predicate=text_contains_3)
        self.assertEqual(text.TextString, 'test 3')
Пример #9
0
    def test_point_iops(self):
        p1 = APoint(1, 1, 1)
        p2 = APoint(2, 2, 2)
        p3 = APoint(3, 3, 3)

        p1 += 2
        p2 += p3
        self.assertEqual(p1, p3)
        self.assertEqual(p2, (5, 5, 5))

        p1 = APoint(1, 1, 1)
        p2 = APoint(2, 2, 2)
        p1 -= 2
        p2 -= p3
        self.assertEqual(p1, (-1, -1, -1))
        self.assertEqual(p2, (-1, -1, -1))
        p = APoint(5, 5, 5)
        p /= 2.0
        self.assertEqual(p, (2.5, 2.5, 2.5))
        p *= 2
        self.assertEqual(p, (5, 5, 5))
Пример #10
0
 def test_distance(self):
     p1 = APoint(10, 10, 10)
     p2 = APoint(15, 15, 15)
     self.assertAlmostEqual(p1.distance_to(p2), 8.660254037844387)
     self.assertEqual(distance(p1, p2), distance(p2, p1))
Пример #11
0
 def test_attributes(self):
     p1 = APoint(1, 1, 1)
     p1.x += 1
     p1.y += 1
     p1.z += 1
     self.assertEqual(p1, (2, 2, 2))