// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details. // All rights reserved. Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. import 'package:test/test.dart'; import 'package:vector_math/vector_math.dart'; import 'test_utils.dart'; void testQuadCopy() { final quad = Quad.points(Vector3(1.0, 0.0, 1.0), Vector3(0.0, 2.0, 1.0), Vector3(1.0, 0.0, 0.0), Vector3(0.0, 2.0, 0.0)); final quadCopy = Quad.copy(quad); relativeTest(quadCopy.point0, quad.point0); relativeTest(quadCopy.point1, quad.point1); relativeTest(quadCopy.point2, quad.point2); relativeTest(quadCopy.point3, quad.point3); } void testQuadCopyNormalInto() { final quad = Quad.points(Vector3(1.0, 0.0, 1.0), Vector3(0.0, 2.0, 1.0), Vector3(1.0, 0.0, 0.0), Vector3(0.0, 2.0, 0.0)); final normal = Vector3.zero(); quad.copyNormalInto(normal); relativeTest(normal, Vector3(-0.8944271802902222, -0.4472135901451111, 0.0)); } void testQuadCopyTriangles() { final quad = Quad.points(Vector3(1.0, 0.0, 1.0), Vector3(0.0, 2.0, 1.0), Vector3(1.0, 0.0, 0.0), Vector3(0.0, 2.0, 0.0)); final t1 = Triangle(); final t2 = Triangle(); final normal = Vector3.zero(); final t1Normal = Vector3.zero(); final t2Normal = Vector3.zero(); quad.copyNormalInto(normal); quad.copyTriangles(t1, t2); t1.copyNormalInto(t1Normal); t2.copyNormalInto(t2Normal); relativeTest(t1Normal, normal); relativeTest(t2Normal, normal); } void testQuadEquals() { final v1 = Vector3(1.0, 0.0, 1.0); final v2 = Vector3(0.0, 2.0, 1.0); final v3 = Vector3(1.0, 0.0, 0.0); final v4 = Vector3(0.0, 2.0, 0.0); final quad = Quad.points(v1, v2, v3, v4); expect(quad, Quad.points(v1, v2, v3, v4)); expect(quad, isNot(Quad.points(Vector3.zero(), v2, v3, v4))); expect(quad, isNot(Quad.points(v1, Vector3.zero(), v3, v4))); expect(quad, isNot(Quad.points(v1, v2, Vector3.zero(), v4))); expect(quad, isNot(Quad.points(v1, v2, v3, Vector3.zero()))); expect(Quad.points(v1, v2, v3, v4).hashCode, equals(Quad.points(v1, v2, v3, v4).hashCode)); } void main() { group('Quad', () { test('Copy', testQuadCopy); test('CopyNormalInto', testQuadCopyNormalInto); test('CopyTriangles', testQuadCopyTriangles); test('equals', testQuadEquals); }); }