コード例 #1
0
    def test_complex_ellipsis(self):
        '''
        Complex Ellipsis - multiple ellipses in 3D
        '''
        # Import 'Complex Ellipses.dxf'
        geometries = importer.import_dxf_file(
            "Test Files/Complex Ellipses.dxf")

        # Generate predetermined values
        ellipsis: List[Tuple[float, ...]] = []
        ellipsis.append([(0.0, 0.0, 0.0), (25.0 * 10**3, 0.0, 0.0),
                         0.5])  # Ellipse on x-axis
        ellipsis.append([(0.0, 0.0, 0.0), (-25.0 * 10**3, 0.0, 0.0),
                         0.5])  # Ellipse on y-axis
        ellipsis.append([(50.0 * 10**3, 0.0, 0.0), (10.0 * 10**3, 0.0, 0.0),
                         1.0])  # Ellipse with ratio 1.0
        ellipsis.append([(50.0 * 10**3, 0.0, 0.0), (0.0, 20.0 * 10**3, 0.0),
                         0.5])  # Ellipse with ratio 0.5 with major axis on y
        ellipsis.append([(50.0 * 10**3, 0.0, 0.0), (20.0 * 10**3, 0.0, 0.0),
                         0.5])  # Ellipse with ratio 0.5 with major axis on x

        # Check if each predetermined value has an associated imported value
        verified_geometries: int = 0
        for geometry in geometries:
            for ellipse in ellipsis:
                geometry_values = geometry[1]
                if within_a_percent_tuple(
                        ellipse[0],
                        geometry_values[0]) and within_a_percent_tuple(
                            ellipse[1],
                            geometry_values[1]) and within_a_percent(
                                ellipse[2], geometry_values[2][0]):
                    verified_geometries += 1
        self.assertEqual(verified_geometries, 6)
コード例 #2
0
    def test_basic_lwpolyline(self):
        '''
        Basic LWPolyline - only one line in 2D
        '''
        # Import 'Basic LWPolyline.dxf'
        geometries = importer.import_dxf_file(
            "Test Files/Basic LWPolyline.dxf")

        # Check if equal to predetermined values
        lwpolyline = geometries[0][1]
        self.assertTrue(
            within_a_percent_tuple(
                lwpolyline[0],
                (25.0 * 10**3, 0.0, 0.0, 0.0, 0.0)))  # First point (25,0,0)mm
        self.assertTrue(
            within_a_percent_tuple(
                lwpolyline[1],
                (0.0, 0.0, 0.0, 0.0, 0.0)))  # First point (25,0,0)mm
        self.assertTrue(
            within_a_percent_tuple(
                lwpolyline[2],
                (0.0, 25.0 * 10**3, 0.0, 0.0, 0.0)))  # First point (25,0,0)mm
        self.assertTrue(
            within_a_percent_tuple(lwpolyline[3],
                                   (25.0 * 10**3, 25.0 * 10**3, 0.0, 0.0,
                                    0.0)))  # First point (25,0,0)mm
        self.assertTrue(lwpolyline[4])  # Closed true
コード例 #3
0
    def test_basic_point(self):
        '''
        Basic Point - only one point in 2D
        '''
        # Import 'Basic Point.dxf'
        geometries = importer.import_dxf_file("Test Files/Basic Point.dxf")

        # Check if equal to predetermined values
        point = geometries[0][1][
            0]  # [0] - First geometry, [1] - Point's values/tuples, [0] - First value/tuple
        self.assertEqual(point, (0.0, 0.0, 0.0))  # Check point
コード例 #4
0
    def test_basic_circles(self):
        '''
        Basic Circle - only one circle in 2D
        '''
        # Import 'Basic Circle.dxf'
        geometries = importer.import_dxf_file("Test Files/Basic Circle.dxf")

        # Check if equal to predetermined values
        circle = geometries[0]
        self.assertEqual(circle[1][0], (0.0, 0.0, 0.0))  # Check center
        self.assertTrue(
            circle[1][1],
            (15000.0, 0.0, 360.0))  # Check radius, start angle, end angle
コード例 #5
0
    def test_basic_spline(self):
        '''
        Basic Spline - only one line in 2D
        '''
        # Import 'Basic Spline.dxf'
        geometries = importer.import_dxf_file("Test Files/Basic Spline.dxf")

        # Check if equal to predetermined values
        spline = geometries[0][1]
        self.assertTrue(spline[0][0], 5)  # Degree 5
        self.assertTrue(spline[0][1], 1)  # Closed true
        self.assertTrue(spline[0][2], 15)  # # Control Points
        self.assertTrue(spline[0 + spline[0][1]], 21)  # # Knots
        self.assertTrue(spline[1 + spline[0][1]], 15)  # # Weights
コード例 #6
0
    def test_basic_arc(self):
        '''
        Basic Arc - only one arc in 2D
        '''
        # Import 'Basic Arc.dxf'
        geometries = importer.import_dxf_file("Test Files/Basic Arc.dxf")

        # Check if equal to predetermined values
        arc = geometries[0][1]
        self.assertTrue(arc[0], (0.0, 0.0, 0.0))  # Check center
        self.assertTrue(
            within_a_percent_tuple(
                arc[1], (10.0 * 10**3, 0.0,
                         180.0)))  # Check radius, start angle, end angle
コード例 #7
0
    def test_basic_ellipse(self):
        '''
        Basic Ellipse - only one ellipse in 2D
        '''
        # Import 'Basic Ellipse.dxf'
        geometries = importer.import_dxf_file("Test Files/Basic Ellipse.dxf")

        # Check if equal to predetermined values
        ellipse = geometries[0][1]
        self.assertTrue(ellipse[0], (0.0, 0.0, 0.0))  # Check center
        self.assertTrue(
            within_a_percent_tuple(
                ellipse[1], (25.0 * 10**3, 0.0, 0.0)))  # Length of Major Axis
        self.assertTrue(within_a_percent(ellipse[2][0],
                                         0.6))  # Ratio of Minor to Major Axis
コード例 #8
0
    def test_complex_circles(self):
        '''
        Complex circles - multiple circles in 3D with various angles and positions
        '''
        # Import 'Complex Circles.dxf'
        geometries = importer.import_dxf_file("Test Files/Complex Circles.dxf")

        # Generate predetermined values
        circles: List[Tuple[float, ...]] = []
        circles.append([(0.0, 0.0, 0.0), (25 * 10**3, 0.0, 360.0)
                        ])  # Circle at 0,0,0 with radius 25mm
        circles.append([(50.0 * 10**3, 0.0, 0.0), (20 * 10**3, 0.0, 360.0)
                        ])  # Circle at 50,0,0 with radius 20mm
        circles.append([(100.0 * 10**3, 0.0, 0.0), (15 * 10**3, 0.0, 360.0)
                        ])  # Circle at 100,0,0 with radius 15mm
        circles.append([(150.0 * 10**3, 0.0, 0.0), (10 * 10**3, 0.0, 360.0)
                        ])  # Circle at 150,0,0 with radius 10mm
        circles.append([(200.0 * 10**3, 0.0, 0.0), (5 * 10**3, 0.0, 360.0)
                        ])  # Circle at 200,0,0 with radius 5mm
        circles.append([(0.0, 50.0 * 10**3, 50.0 * 10**3),
                        (25 * 10**3, 0.0, 360.0)
                        ])  # Circle at 0,50,50 with radius 25mm
        circles.append([(50.0 * 10**3, 50.0 * 10**3, 50.0 * 10**3),
                        (20 * 10**3, 0.0, 360.0)
                        ])  # Circle at 50,50,50 with radius 20mm
        circles.append([(100.0 * 10**3, 50.0 * 10**3, 50.0 * 10**3),
                        (15 * 10**3, 0.0, 360.0)
                        ])  # Circle at 100,50,50 with radius 15mm
        circles.append([(150.0 * 10**3, 50.0 * 10**3, 50.0 * 10**3),
                        (10 * 10**3, 0.0, 360.0)
                        ])  # Circle at 150,50,50 with radius 10mm
        circles.append([(200.0 * 10**3, 50.0 * 10**3, 50.0 * 10**3),
                        (5 * 10**3, 0.0, 360.0)
                        ])  # Circle at 200,50,50 with radius 5mm

        # Check if each predetermined value has an associated imported value
        verified_geometries: int = 0
        for geometry in geometries:
            for circle in circles:
                geometry_values = geometry[1]
                if within_a_percent_tuple(
                        circle[0],
                        geometry_values[0]) and within_a_percent_tuple(
                            circle[1], geometry_values[1]):
                    verified_geometries += 1
        self.assertEqual(verified_geometries, len(circles))
コード例 #9
0
    def test_complex_arcs(self):
        '''
        Complex Arcs - multiple Arcs in 3D
        '''
        # Import 'Complex Arcs.dxf'
        geometries = importer.import_dxf_file("Test Files/Complex Arcs.dxf")

        # Generate predetermined values
        arcs: List[Tuple[float, ...]] = []
        arcs.append([(0.0, 0.0, 0.0), (20.0 * 10**3, -90.0, 90.0)])
        arcs.append([(0.0, -75.0 * 10**3, 0.0), (25.0 * 10**3, -90.0, 180.0)])
        arcs.append([(0.0, -75.0 * 10**3, 0.0), (20.0 * 10**3, -90.0, 180.0)])

        # Check if each predetermined value has an associated imported value
        verified_geometries: int = 0
        for geometry in geometries:
            for arc in arcs:
                geometry_values = geometry[1]
                if within_a_percent_tuple(
                        arc[1], geometry_values[1]) and within_a_percent_tuple(
                            arc[0], geometry_values[0]):
                    verified_geometries += 1
        self.assertEqual(verified_geometries, len(arcs))
コード例 #10
0
 def test_no_file_found(self):
     '''
     No file found import_dxf_file throws error
     '''
     self.assertRaises(Exception, lambda: importer.import_dxf_file(""))