44
55from arcade import Window
66from arcade .camera import Camera2D
7- from arcade .camera .data_types import ZeroProjectionDimension
7+ from arcade .camera .data_types import ZeroProjectionDimension , OrthographicProjectionData
88
99
1010class Camera2DSub1 (Camera2D ):
@@ -33,8 +33,19 @@ def camera_class(request):
3333 (5. , 5. , 5. , 5. )
3434]
3535
36+ NEAR_FAR_VALUES = [- 50. ,0. ,50. ]
37+
38+
39+ @pytest .fixture (params = AT_LEAST_ONE_EQUAL_VIEWPORT_DIMENSION )
40+ def bad_projection (request ):
41+ return request .param
42+
43+
44+ @pytest .fixture (params = NEAR_FAR_VALUES )
45+ def same_near_far (request ):
46+ return request .param
47+
3648
37- @pytest .mark .parametrize ("bad_projection" , AT_LEAST_ONE_EQUAL_VIEWPORT_DIMENSION )
3849def test_camera2d_from_raw_data_projection_xy_pairs_equal_raises_zeroprojectiondimension (
3950 window : Window ,
4051 bad_projection : Tuple [float , float , float , float ], # Clarify type for PyCharm
@@ -44,18 +55,34 @@ def test_camera2d_from_raw_data_projection_xy_pairs_equal_raises_zeroprojectiond
4455 camera_class .from_raw_data (projection = bad_projection )
4556
4657
58+ def test_camera2d_init_xy_pairs_equal_raises_zeroprojectiondimension (
59+ window : Window ,
60+ bad_projection : Tuple [float , float , float , float ],
61+ camera_class
62+ ):
63+ data = OrthographicProjectionData (
64+ * bad_projection , - 100.0 , 100.0 ,
65+ viewport = (0 ,0 , 800 , 600 )
66+ )
67+
68+ with pytest .raises (ZeroProjectionDimension ):
69+ _ = Camera2D (projection_data = data )
70+
4771
4872def test_camera2d_from_raw_data_equal_near_far_raises_zeroprojectiondimension (
49- window : Window , camera_class
73+ window : Window ,
74+ same_near_far : float ,
75+ camera_class
5076):
5177 with pytest .raises (ZeroProjectionDimension ):
52- camera_class .from_raw_data (near = - 100 , far = - 100 )
78+ camera_class .from_raw_data (near = near_far , far = near_far )
5379
5480 with pytest .raises (ZeroProjectionDimension ):
55- camera_class .from_raw_data (near = 0 , far = 0 )
81+ camera_class .from_raw_data (near = near_far , far = near_far )
5682
5783 with pytest .raises (ZeroProjectionDimension ):
58- camera_class .from_raw_data (near = 100 , far = 100 )
84+ camera_class .from_raw_data (near = near_far , far = near_far )
85+
5986
6087
6188@pytest .mark .parametrize ("camera_class" , CAMERA2D_SUBS )
0 commit comments