@@ -42,12 +42,12 @@ def test_setup_event_handling_default_values(event_window):
4242 """Test setup_event_handling with default parameters"""
4343 assert event_window .rotate is False
4444 assert event_window .translate is False
45- assert event_window .spin_x_face == 0
46- assert event_window .spin_y_face == 0
47- assert event_window .original_x_rotation == 0.0
48- assert event_window .original_y_rotation == 0.0
49- assert event_window .original_x_pos == 0.0
50- assert event_window .original_y_pos == 0.0
45+ assert event_window .spin_x_face == pytest . approx ( 0.0 )
46+ assert event_window .spin_y_face == pytest . approx ( 0.0 )
47+ assert event_window .original_x_rotation == pytest . approx ( 0.0 )
48+ assert event_window .original_y_rotation == pytest . approx ( 0.0 )
49+ assert event_window .original_x_pos == pytest . approx ( 0.0 )
50+ assert event_window .original_y_pos == pytest . approx ( 0.0 )
5151 assert event_window .model_position == Vec3 (0 , 0 , 0 )
5252 assert event_window .rotation_sensitivity == PySideEventHandlingMixin .DEFAULT_ROTATION_SENSITIVITY
5353 assert event_window .translation_sensitivity == PySideEventHandlingMixin .DEFAULT_TRANSLATION_SENSITIVITY
@@ -62,14 +62,14 @@ def test_setup_event_handling_custom_values():
6262 rotation_sensitivity = 0.8 , translation_sensitivity = 0.02 , zoom_sensitivity = 0.2 , initial_position = initial_pos
6363 )
6464
65- assert window .rotation_sensitivity == 0.8
66- assert window .translation_sensitivity == 0.02
67- assert window .zoom_sensitivity == 0.2
68- assert window .model_position .x == 1
69- assert window .model_position .y == 2
70- assert window .model_position .z == 3
71- assert window .INCREMENT == 0.02
72- assert window .ZOOM == 0.2
65+ assert window .rotation_sensitivity == pytest . approx ( 0.8 )
66+ assert window .translation_sensitivity == pytest . approx ( 0.02 )
67+ assert window .zoom_sensitivity == pytest . approx ( 0.2 )
68+ assert window .model_position .x == pytest . approx ( 1.0 )
69+ assert window .model_position .y == pytest . approx ( 2.0 )
70+ assert window .model_position .z == pytest . approx ( 3.0 )
71+ assert window .INCREMENT == pytest . approx ( 0.02 )
72+ assert window .ZOOM == pytest . approx ( 0.2 )
7373
7474
7575def test_reset_camera (event_window ):
@@ -83,11 +83,11 @@ def test_reset_camera(event_window):
8383 event_window .reset_camera ()
8484
8585 # Check values are reset
86- assert event_window .spin_x_face == 0
87- assert event_window .spin_y_face == 0
88- assert event_window .model_position .x == 0
89- assert event_window .model_position .y == 0
90- assert event_window .model_position .z == 0
86+ assert event_window .spin_x_face == pytest . approx ( 0 )
87+ assert event_window .spin_y_face == pytest . approx ( 0 )
88+ assert event_window .model_position .x == pytest . approx ( 0 )
89+ assert event_window .model_position .y == pytest . approx ( 0 )
90+ assert event_window .model_position .z == pytest . approx ( 0 )
9191
9292
9393def test_keyPressEvent_escape (event_window ):
@@ -137,8 +137,10 @@ def test_keyPressEvent_space_reset(event_window):
137137
138138 event_window .keyPressEvent (event )
139139
140- assert event_window .spin_x_face == 0
141- assert event_window .model_position .x == 0
140+ assert event_window .spin_x_face == pytest .approx (0 )
141+ assert event_window .model_position .x == pytest .approx (0 )
142+ assert event_window .model_position .y == pytest .approx (0 )
143+ assert event_window .model_position .z == pytest .approx (0 )
142144 assert event_window .update_called is True
143145
144146
@@ -213,7 +215,7 @@ def test_mouseMoveEvent_rotation(event_window):
213215 event_window .rotate = True
214216 event_window .original_x_rotation = 100
215217 event_window .original_y_rotation = 200
216- event_window .rotation_sensitivity = 1.0
218+ event_window .rotation_sensitivity = 1
217219
218220 event = Mock ()
219221 event .buttons .return_value = Qt .LeftButton
@@ -244,8 +246,8 @@ def test_mouseMoveEvent_translation(event_window):
244246 event_window .mouseMoveEvent (event )
245247
246248 # Check translation values updated
247- assert event_window .model_position .x == 1.0 # 0.1 * (110 - 100)
248- assert event_window .model_position .y == 1.0 # -0.1 * (190 - 200)
249+ assert event_window .model_position .x == pytest . approx ( 1.0 ) # 0.1 * (110 - 100)
250+ assert event_window .model_position .y == pytest . approx ( 1.0 ) # -0.1 * (190 - 200)
249251 assert event_window .original_x_pos == 110
250252 assert event_window .original_y_pos == 190
251253 assert event_window .update_called is True
@@ -278,7 +280,7 @@ def test_wheelEvent_positive_delta(event_window):
278280
279281 event_window .wheelEvent (event )
280282
281- assert event_window .model_position .z == initial_z + 0.5
283+ assert event_window .model_position .z == pytest . approx ( initial_z + 0.5 )
282284 assert event_window .update_called is True
283285
284286
@@ -295,7 +297,7 @@ def test_wheelEvent_negative_delta(event_window):
295297
296298 event_window .wheelEvent (event )
297299
298- assert event_window .model_position .z == initial_z - 0.5
300+ assert event_window .model_position .z == pytest . approx ( initial_z - 0.5 )
299301 assert event_window .update_called is True
300302
301303
@@ -312,7 +314,7 @@ def test_wheelEvent_x_axis_delta(event_window):
312314
313315 event_window .wheelEvent (event )
314316
315- assert event_window .model_position .z == initial_z + 0.3
317+ assert event_window .model_position .z == pytest . approx ( initial_z + 0.3 )
316318 assert event_window .update_called is True
317319
318320
@@ -339,19 +341,19 @@ def test_get_camera_state(event_window):
339341 event_window .spin_x_face = 45
340342 event_window .spin_y_face = 90
341343 event_window .model_position .set (1 , 2 , 3 )
342- event_window .rotation_sensitivity = 0.8
343- event_window .translation_sensitivity = 0.02
344- event_window .zoom_sensitivity = 0.15
344+ event_window .rotation_sensitivity = pytest . approx ( 0.8 )
345+ event_window .translation_sensitivity = pytest . approx ( 0.02 )
346+ event_window .zoom_sensitivity = pytest . approx ( 0.15 )
345347
346348 state = event_window .get_camera_state ()
347349
348350 expected = {
349351 "spin_x_face" : 45 ,
350352 "spin_y_face" : 90 ,
351353 "model_position" : [1 , 2 , 3 ],
352- "rotation_sensitivity" : 0.8 ,
353- "translation_sensitivity" : 0.02 ,
354- "zoom_sensitivity" : 0.15 ,
354+ "rotation_sensitivity" : pytest . approx ( 0.8 ) ,
355+ "translation_sensitivity" : pytest . approx ( 0.02 ) ,
356+ "zoom_sensitivity" : pytest . approx ( 0.15 ) ,
355357 }
356358
357359 assert state == expected
@@ -375,9 +377,9 @@ def test_set_camera_state(event_window):
375377 assert event_window .model_position .x == 5
376378 assert event_window .model_position .y == 10
377379 assert event_window .model_position .z == 15
378- assert event_window .rotation_sensitivity == 0.75
379- assert event_window .translation_sensitivity == 0.05
380- assert event_window .zoom_sensitivity == 0.25
380+ assert event_window .rotation_sensitivity == pytest . approx ( 0.75 )
381+ assert event_window .translation_sensitivity == pytest . approx ( 0.05 )
382+ assert event_window .zoom_sensitivity == pytest . approx ( 0.25 )
381383
382384
383385def test_set_camera_state_partial (event_window ):
@@ -420,16 +422,16 @@ def test_camera_state_round_trip(event_window):
420422 event_window .spin_x_face = 25
421423 event_window .spin_y_face = 50
422424 event_window .model_position .set (3 , 6 , 9 )
423- event_window .rotation_sensitivity = 0.6
424- event_window .translation_sensitivity = 0.03
425- event_window .zoom_sensitivity = 0.12
425+ event_window .rotation_sensitivity = pytest . approx ( 0.6 )
426+ event_window .translation_sensitivity = pytest . approx ( 0.03 )
427+ event_window .zoom_sensitivity = pytest . approx ( 0.12 )
426428
427429 # Save state
428430 state = event_window .get_camera_state ()
429431
430432 # Change values
431433 event_window .reset_camera ()
432- event_window .rotation_sensitivity = 1.0
434+ event_window .rotation_sensitivity = pytest . approx ( 1.0 )
433435
434436 # Restore state
435437 event_window .set_camera_state (state )
@@ -440,16 +442,16 @@ def test_camera_state_round_trip(event_window):
440442 assert event_window .model_position .x == 3
441443 assert event_window .model_position .y == 6
442444 assert event_window .model_position .z == 9
443- assert event_window .rotation_sensitivity == 0.6
444- assert event_window .translation_sensitivity == 0.03
445- assert event_window .zoom_sensitivity == 0.12
445+ assert event_window .rotation_sensitivity == pytest . approx ( 0.6 )
446+ assert event_window .translation_sensitivity == pytest . approx ( 0.03 )
447+ assert event_window .zoom_sensitivity == pytest . approx ( 0.12 )
446448
447449
448450def test_constants ():
449451 """Test default sensitivity constants"""
450- assert PySideEventHandlingMixin .DEFAULT_ROTATION_SENSITIVITY == 0.5
451- assert PySideEventHandlingMixin .DEFAULT_TRANSLATION_SENSITIVITY == 0.01
452- assert PySideEventHandlingMixin .DEFAULT_ZOOM_SENSITIVITY == 0.1
452+ assert PySideEventHandlingMixin .DEFAULT_ROTATION_SENSITIVITY == pytest . approx ( 0.5 )
453+ assert PySideEventHandlingMixin .DEFAULT_TRANSLATION_SENSITIVITY == pytest . approx ( 0.01 )
454+ assert PySideEventHandlingMixin .DEFAULT_ZOOM_SENSITIVITY == pytest . approx ( 0.1 )
453455
454456
455457def test_mouse_movement_rotation_with_different_sensitivity ():
@@ -492,8 +494,8 @@ def test_mouse_movement_translation_with_different_sensitivity():
492494
493495 # With sensitivity 0.5: diff_x = 120-100 = 20, so x += 0.5 * 20 = 10
494496 # diff_y = 80-100 = -20, so y -= 0.5 * -20 = 10
495- assert window .model_position .x == 10.0
496- assert window .model_position .y == 10.0
497+ assert window .model_position .x == pytest . approx ( 10.0 )
498+ assert window .model_position .y == pytest . approx ( 10.0 )
497499
498500
499501def test_event_handling_target_protocol ():
0 commit comments