mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-03 04:18:25 +08:00
This PR changes the signature of the closeToVector() helper function:
Old: closeToVector(num x, num y, {double epsilon = 1e-15})
New: closeToVector(Vector2 vector, [double epsilon = 1e-15])
43 lines
1.4 KiB
Dart
43 lines
1.4 KiB
Dart
import 'package:flame_test/src/close_to_vector.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:vector_math/vector_math_64.dart';
|
|
|
|
void main() {
|
|
group('closeToVector', () {
|
|
test('matches normally', () {
|
|
expect(Vector2.zero(), closeToVector(Vector2(0, 0)));
|
|
expect(Vector2(-14, 99), closeToVector(Vector2(-14, 99)));
|
|
expect(Vector2(1e-20, -1e-16), closeToVector(Vector2(0, 0)));
|
|
|
|
expect(Vector2(1.0001, 2.0), closeToVector(Vector2(1, 2), 0.01));
|
|
expect(Vector2(13, 14), closeToVector(Vector2(10, 10), 5));
|
|
});
|
|
|
|
test('fails on type mismatch', () {
|
|
try {
|
|
expect(3.14, closeToVector(Vector2.zero()));
|
|
} on TestFailure catch (e) {
|
|
expect(
|
|
e.message,
|
|
contains('Expected: a Vector2 object within 1e-15 of (0.0, 0.0)'),
|
|
);
|
|
expect(e.message, contains('Actual: <3.14>'));
|
|
expect(e.message, contains('Which: is not an instance of Vector2'));
|
|
}
|
|
});
|
|
|
|
test('fails on value mismatch', () {
|
|
try {
|
|
expect(Vector2(101, 217), closeToVector(Vector2(100, 220)));
|
|
} on TestFailure catch (e) {
|
|
expect(
|
|
e.message,
|
|
contains('Expected: a Vector2 object within 1e-15 of (100.0, 220.0)'),
|
|
);
|
|
expect(e.message, contains('Actual: Vector2:<[101.0,217.0]>'));
|
|
expect(e.message, contains('Which: is at distance 3.16227766'));
|
|
}
|
|
});
|
|
});
|
|
}
|