blob: 97de5cd40251697d1e66b82866835d43ab4d1a59 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:ui';
import 'package:flutter_sprites/flutter_sprites.dart';
import 'package:test/test.dart';
const double epsilon = 0.01;
void main() {
test("Constraints - ConstraintPositionToNode", () {
Node parent = new Node();
Node node0 = new Node();
Node node1 = new Node();
parent.addChild(node0);
parent.addChild(node1);
node1.constraints = <Constraint>[(new ConstraintPositionToNode(node0))];
node0.position = const Point(100.0, 50.0);
node1.applyConstraints(0.1);
expect(node1.position.x, closeTo(100.0, epsilon));
expect(node1.position.y, closeTo(50.0, epsilon));
});
test("Constraints - ConstraintRotationToNode", () {
Node parent = new Node();
Node node0 = new Node();
Node node1 = new Node()..position = const Point(0.0, 100.0);
parent.addChild(node0);
parent.addChild(node1);
node1.constraints = <Constraint>[(new ConstraintRotationToNode(node0))];
node1.applyConstraints(0.1);
expect(node1.rotation, closeTo(-90.0, epsilon));
});
test("Constraints - ConstraintRotationToNodeRotation", () {
Node parent = new Node();
Node node0 = new Node();
Node node1 = new Node();
parent.addChild(node0);
parent.addChild(node1);
node1.constraints = <Constraint>[(new ConstraintRotationToNodeRotation(node0, baseRotation: 10.0))];
node0.rotation = 90.0;
node1.applyConstraints(0.1);
expect(node1.rotation, closeTo(100.0, epsilon));
});
test("Constraints - ConstraintRotationToMovement", () {
Node parent = new Node();
Node node0 = new Node();
parent.addChild(node0);
Constraint constraint = new ConstraintRotationToMovement();
node0.constraints = <Constraint>[constraint];
node0.position = const Point(0.0, 0.0);
constraint.preUpdate(node0, 0.1);
node0.position = const Point(0.0, 100.0);
node0.applyConstraints(0.1);
expect(node0.rotation, closeTo(90.0, epsilon));
});
}