Coverage for tests/unit/lib/gl/test_stlmodel.py: 100%

38 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-03-20 05:56 +0000

1import numpy 

2 

3from tatlin.lib.gl.model import Model 

4from tatlin.lib.gl.scene import Scene 

5from tatlin.lib.gl.stlmodel import StlModel 

6 

7from tests.guitestcase import GUITestCase 

8 

9 

10class StlModelTest(GUITestCase): 

11 def setUp(self): 

12 super().setUp() 

13 

14 self.model = StlModel() 

15 self.model.load_data( 

16 [ 

17 [[0, 0.5, 0], [0.5, -0.5, 0], [-0.5, -0.5, 0]], 

18 [[0, 0, 1], [0, 0, 1], [0, 0, 1]], 

19 ] 

20 ) 

21 

22 def test_normal_data_empty(self): 

23 self.assertFalse(self.model.normal_data_empty()) 

24 

25 def test_calculate_normals(self): 

26 normals = self.model.calculate_normals() 

27 numpy.testing.assert_array_almost_equal( 

28 normals, 

29 numpy.array([[0, 0, -1], [0, 0, -1], [0, 0, -1]], dtype=numpy.float32), 

30 ) 

31 

32 def test_init(self): 

33 self.model.init() 

34 self.assertTrue(self.model.initialized) 

35 

36 def test_display(self): 

37 scene = Scene(self.frame) 

38 scene.add_model(self.model) 

39 self.add_to_frame(scene) 

40 

41 def test_scale(self): 

42 self.assertFalse(self.model.modified) 

43 self.model.scale(1.1) 

44 self.assertTrue(self.model.modified) 

45 

46 def test_translate(self): 

47 self.assertFalse(self.model.modified) 

48 self.model.translate(1, 2, 3) 

49 self.assertTrue(self.model.modified) 

50 

51 def test_rotate_rel(self): 

52 self.assertFalse(self.model.modified) 

53 self.model.rotate_rel(90, Model.AXIS_X) 

54 self.assertTrue(self.model.modified) 

55 

56 def test_rotate_abs(self): 

57 self.assertFalse(self.model.modified) 

58 self.model.rotate_abs(90, Model.AXIS_X) 

59 self.assertTrue(self.model.modified)