Commit 608e971f authored by Kris Giesing's avatar Kris Giesing

Add another double-tap test

parent 219e189a
......@@ -3,8 +3,14 @@ import 'package:quiver/testing/async.dart';
import 'package:test/test.dart';
class TestGestureArenaMember extends GestureArenaMember {
void acceptGesture(Object key) {}
void rejectGesture(Object key) {}
void acceptGesture(Object key) {
accepted = true;
}
void rejectGesture(Object key) {
rejected = true;
}
bool accepted = false;
bool rejected = false;
}
void main() {
......@@ -354,6 +360,7 @@ void main() {
router.route(up1);
expect(doubleTapRecognized, isFalse);
entry.resolve(GestureDisposition.accepted);
expect(member.accepted, isTrue);
expect(doubleTapRecognized, isFalse);
GestureArena.instance.sweep(1);
expect(doubleTapRecognized, isFalse);
......@@ -395,6 +402,7 @@ void main() {
expect(doubleTapRecognized, isFalse);
entry.resolve(GestureDisposition.accepted);
expect(member.accepted, isTrue);
tap.addPointer(down2);
GestureArena.instance.close(2);
......@@ -439,6 +447,7 @@ void main() {
expect(doubleTapRecognized, isFalse);
entry.resolve(GestureDisposition.accepted);
expect(member.accepted, isTrue);
router.route(up2);
expect(doubleTapRecognized, isFalse);
......@@ -448,4 +457,37 @@ void main() {
tap.dispose();
});
test('Passive gesture should trigger on double tap cancel', () {
PointerRouter router = new PointerRouter();
DoubleTapGestureRecognizer tap = new DoubleTapGestureRecognizer(router: router);
bool doubleTapRecognized = false;
tap.onDoubleTap = () {
doubleTapRecognized = true;
};
new FakeAsync().run((FakeAsync async) {
tap.addPointer(down1);
TestGestureArenaMember member = new TestGestureArenaMember();
GestureArena.instance.add(1, member);
GestureArena.instance.close(1);
expect(doubleTapRecognized, isFalse);
router.route(down1);
expect(doubleTapRecognized, isFalse);
router.route(up1);
expect(doubleTapRecognized, isFalse);
GestureArena.instance.sweep(1);
expect(doubleTapRecognized, isFalse);
expect(member.accepted, isFalse);
async.elapse(new Duration(milliseconds: 5000));
expect(member.accepted, isTrue);
});
tap.dispose();
});
}
import 'package:flutter/gestures.dart';
import 'package:test/test.dart';
void main() {
void printFit(PolynomialFit fit) {
print("Confidence: " + fit.confidence.toString());
for (int i = 0; i < fit.coefficients.length; i++)
print(i.toString() + ": " + fit.coefficients[i].toString());
}
approx(double value, double expectation) {
const double eps = 1e-6;
return (value - expectation).abs() < eps;
}
test('Least-squares fit: linear polynomial to line', () {
List<double> x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
List<double> y = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
List<double> w = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
LeastSquaresSolver solver = new LeastSquaresSolver(x, y, w);
PolynomialFit fit = solver.solve(1);
expect(fit.coefficients.length, 2);
expect(approx(fit.coefficients[0], 1.0), isTrue);
expect(approx(fit.coefficients[1], 0.0), isTrue);
expect(approx(fit.confidence, 1.0), isTrue);
});
test('Least-squares fit: linear polynomial to sloped line', () {
List<double> x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
List<double> y = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0];
List<double> w = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
LeastSquaresSolver solver = new LeastSquaresSolver(x, y, w);
PolynomialFit fit = solver.solve(1);
expect(fit.coefficients.length, 2);
expect(approx(fit.coefficients[0], 1.0), isTrue);
expect(approx(fit.coefficients[1], 1.0), isTrue);
expect(approx(fit.confidence, 1.0), isTrue);
});
test('Least-squares fit: quadratic polynomial to line', () {
List<double> x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
List<double> y = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
List<double> w = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
LeastSquaresSolver solver = new LeastSquaresSolver(x, y, w);
PolynomialFit fit = solver.solve(2);
expect(fit.coefficients.length, 3);
expect(approx(fit.coefficients[0], 1.0), isTrue);
expect(approx(fit.coefficients[1], 0.0), isTrue);
expect(approx(fit.coefficients[2], 0.0), isTrue);
expect(approx(fit.confidence, 1.0), isTrue);
});
test('Least-squares fit: quadratic polynomial to sloped line', () {
List<double> x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
List<double> y = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0];
List<double> w = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0];
LeastSquaresSolver solver = new LeastSquaresSolver(x, y, w);
PolynomialFit fit = solver.solve(2);
expect(fit.coefficients.length, 3);
expect(approx(fit.coefficients[0], 1.0), isTrue);
expect(approx(fit.coefficients[1], 1.0), isTrue);
expect(approx(fit.coefficients[2], 0.0), isTrue);
expect(approx(fit.confidence, 1.0), isTrue);
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment