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)
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
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
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
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
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
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
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))
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))
def test_no_file_found(self): ''' No file found import_dxf_file throws error ''' self.assertRaises(Exception, lambda: importer.import_dxf_file(""))