// 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)); }); }