|
7 | 7 |
|
8 | 8 | use crate::framework::itest;
|
9 | 9 |
|
| 10 | +use crate::builtin_tests::common::assert_evaluate_approx_eq; |
10 | 11 | use godot::builtin::inner::InnerTransform2D;
|
11 | 12 | use godot::builtin::{real, RealConv, Rect2, Transform2D, VariantOperator, Vector2, XformInv};
|
12 |
| -use godot::meta::ToGodot; |
13 | 13 | use godot::private::class_macros::assert_eq_approx;
|
14 | 14 |
|
15 | 15 | const TEST_TRANSFORM: Transform2D = Transform2D::from_cols(
|
@@ -79,81 +79,62 @@ fn transform2d_determinant() {
|
79 | 79 | fn transform2d_xform_equiv() {
|
80 | 80 | let vec = Vector2::new(1.0, 2.0);
|
81 | 81 |
|
82 |
| - assert_eq_approx!( |
| 82 | + // operator: Transform2D * Vector2 |
| 83 | + assert_evaluate_approx_eq( |
| 84 | + TEST_TRANSFORM, |
| 85 | + vec, |
| 86 | + VariantOperator::MULTIPLY, |
83 | 87 | TEST_TRANSFORM * vec,
|
84 |
| - TEST_TRANSFORM |
85 |
| - .to_variant() |
86 |
| - .evaluate(&vec.to_variant(), VariantOperator::MULTIPLY) |
87 |
| - .unwrap() |
88 |
| - .to::<Vector2>(), |
89 |
| - "operator: Transform2D * Vector2" |
90 | 88 | );
|
91 | 89 |
|
92 | 90 | let rect_2 = Rect2::new(Vector2::new(1.0, 2.0), Vector2::new(3.0, 4.0));
|
93 | 91 |
|
94 |
| - assert_eq_approx!( |
| 92 | + // operator: Transform2D * Rect2 (1) |
| 93 | + assert_evaluate_approx_eq( |
| 94 | + TEST_TRANSFORM, |
| 95 | + rect_2, |
| 96 | + VariantOperator::MULTIPLY, |
95 | 97 | TEST_TRANSFORM * rect_2,
|
96 |
| - TEST_TRANSFORM |
97 |
| - .to_variant() |
98 |
| - .evaluate(&rect_2.to_variant(), VariantOperator::MULTIPLY) |
99 |
| - .unwrap() |
100 |
| - .to::<Rect2>(), |
101 |
| - "operator: Transform2D * Rect2 (1)" |
102 | 98 | );
|
103 | 99 |
|
104 |
| - assert_eq_approx!( |
105 |
| - TEST_TRANSFORM.rotated(0.8) * rect_2, |
106 |
| - TEST_TRANSFORM |
107 |
| - .rotated(0.8) |
108 |
| - .to_variant() |
109 |
| - .evaluate(&rect_2.to_variant(), VariantOperator::MULTIPLY) |
110 |
| - .unwrap() |
111 |
| - .to::<Rect2>(), |
112 |
| - "operator: Transform2D * Rect2 (2)" |
| 100 | + // "operator: Transform2D * Rect2 (2)" |
| 101 | + let transform_rotated = TEST_TRANSFORM_ORTHONORMAL.rotated(0.8); |
| 102 | + assert_evaluate_approx_eq( |
| 103 | + transform_rotated, |
| 104 | + rect_2, |
| 105 | + VariantOperator::MULTIPLY, |
| 106 | + transform_rotated * rect_2, |
113 | 107 | );
|
114 | 108 | }
|
115 | 109 |
|
116 | 110 | #[itest]
|
117 | 111 | fn transform2d_xform_inv_equiv() {
|
118 | 112 | let vec = Vector2::new(1.0, 2.0);
|
119 | 113 |
|
120 |
| - assert_eq_approx!( |
| 114 | + // operator: Vector2 * Transform2D |
| 115 | + assert_evaluate_approx_eq( |
| 116 | + vec, |
| 117 | + TEST_TRANSFORM_ORTHONORMAL, |
| 118 | + VariantOperator::MULTIPLY, |
121 | 119 | TEST_TRANSFORM_ORTHONORMAL.xform_inv(vec),
|
122 |
| - vec.to_variant() |
123 |
| - .evaluate( |
124 |
| - &TEST_TRANSFORM_ORTHONORMAL.to_variant(), |
125 |
| - VariantOperator::MULTIPLY |
126 |
| - ) |
127 |
| - .unwrap() |
128 |
| - .to::<Vector2>(), |
129 |
| - "operator: Transform2D * Vector2" |
130 | 120 | );
|
131 | 121 |
|
132 | 122 | let rect_2 = Rect2::new(Vector2::new(1.0, 2.0), Vector2::new(3.0, 4.0));
|
133 | 123 |
|
134 |
| - assert_eq_approx!( |
| 124 | + // operator: Rect2 * Transform2D (1) |
| 125 | + assert_evaluate_approx_eq( |
| 126 | + rect_2, |
| 127 | + TEST_TRANSFORM_ORTHONORMAL, |
| 128 | + VariantOperator::MULTIPLY, |
135 | 129 | TEST_TRANSFORM_ORTHONORMAL.xform_inv(rect_2),
|
136 |
| - rect_2 |
137 |
| - .to_variant() |
138 |
| - .evaluate( |
139 |
| - &TEST_TRANSFORM_ORTHONORMAL.to_variant(), |
140 |
| - VariantOperator::MULTIPLY |
141 |
| - ) |
142 |
| - .unwrap() |
143 |
| - .to::<Rect2>(), |
144 |
| - "operator: Transform2D * Rect2 (1)" |
145 | 130 | );
|
146 | 131 |
|
147 |
| - assert_eq_approx!( |
148 |
| - TEST_TRANSFORM_ORTHONORMAL.rotated(0.8).xform_inv(rect_2), |
149 |
| - rect_2 |
150 |
| - .to_variant() |
151 |
| - .evaluate( |
152 |
| - &TEST_TRANSFORM_ORTHONORMAL.rotated(0.8).to_variant(), |
153 |
| - VariantOperator::MULTIPLY |
154 |
| - ) |
155 |
| - .unwrap() |
156 |
| - .to::<Rect2>(), |
157 |
| - "operator: Transform2D * Rect2 (2)" |
| 132 | + // operator: Rect2 * Transform2D (2) |
| 133 | + let transform_rotated = TEST_TRANSFORM_ORTHONORMAL.rotated(0.8); |
| 134 | + assert_evaluate_approx_eq( |
| 135 | + rect_2, |
| 136 | + transform_rotated, |
| 137 | + VariantOperator::MULTIPLY, |
| 138 | + transform_rotated.xform_inv(rect_2), |
158 | 139 | );
|
159 | 140 | }
|
0 commit comments