| 295 | } |
| 296 | |
| 297 | static void test_vector2() |
| 298 | { |
| 299 | { |
| 300 | const Vector2 a = { 1.2f, 4.2f }; |
| 301 | const Vector2 b = { 2.7f, -1.9f }; |
| 302 | const Vector2 c = a - b; |
| 303 | ENSURE(fequal(c.x, -1.5f, 0.0001f)); |
| 304 | ENSURE(fequal(c.y, 6.1f, 0.0001f)); |
| 305 | } |
| 306 | { |
| 307 | const Vector2 a = { 1.2f, 4.2f }; |
| 308 | const Vector2 b = { 2.7f, -1.9f }; |
| 309 | const Vector2 c = a + b; |
| 310 | ENSURE(fequal(c.x, 3.9f, 0.0001f)); |
| 311 | ENSURE(fequal(c.y, 2.3f, 0.0001f)); |
| 312 | } |
| 313 | { |
| 314 | const Vector2 a = { 1.2f, 4.2f }; |
| 315 | const Vector2 b = a * 2.0f; |
| 316 | ENSURE(fequal(b.x, 2.4f, 0.0001f)); |
| 317 | ENSURE(fequal(b.y, 8.4f, 0.0001f)); |
| 318 | } |
| 319 | { |
| 320 | const Vector2 a = { 1.2f, 4.2f }; |
| 321 | const Vector2 b = { 2.7f, -1.9f }; |
| 322 | const f32 c = dot(a, b); |
| 323 | ENSURE(fequal(c, -4.74f, 0.0001f)); |
| 324 | } |
| 325 | { |
| 326 | const Vector2 a = { 1.2f, 4.2f }; |
| 327 | const f32 c = length_squared(a); |
| 328 | ENSURE(fequal(c, 19.08f, 0.0001f)); |
| 329 | } |
| 330 | { |
| 331 | const Vector2 a = { 1.2f, 4.2f }; |
| 332 | const f32 c = length(a); |
| 333 | ENSURE(fequal(c, 4.36806f, 0.0001f)); |
| 334 | } |
| 335 | { |
| 336 | Vector2 a = { 1.2f, 4.2f }; |
| 337 | normalize(a); |
| 338 | ENSURE(fequal(length(a), 1.0f, 0.00001f)); |
| 339 | } |
| 340 | { |
| 341 | const Vector2 a = { 1.2f, 4.2f }; |
| 342 | const Vector2 b = { 2.7f, -1.9f }; |
| 343 | const float c = distance_squared(a, b); |
| 344 | ENSURE(fequal(c, 39.46f, 0.00001f)); |
| 345 | } |
| 346 | { |
| 347 | const Vector2 a = { 1.2f, 4.2f }; |
| 348 | const Vector2 b = { 2.7f, -1.9f }; |
| 349 | const float c = distance(a, b); |
| 350 | ENSURE(fequal(c, 6.28171f, 0.00001f)); |
| 351 | } |
| 352 | { |
| 353 | const Vector2 a = { 1.2f, 4.2f }; |
| 354 | const Vector2 b = { 2.7f, -1.9f }; |