From 2b952a257707635fc76d1df9f94ca17f6622c064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= Date: Sat, 14 Mar 2015 22:58:26 +0100 Subject: [PATCH] Add tests for inverted rotations --- tests/rotation.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/rotation.rs diff --git a/tests/rotation.rs b/tests/rotation.rs new file mode 100644 index 0000000..c44df49 --- /dev/null +++ b/tests/rotation.rs @@ -0,0 +1,43 @@ +// Copyright 2015 The CGMath Developers. For a full listing of the authors, +// refer to the Cargo.toml file at the top-level directory of this distribution. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +extern crate cgmath; + +use cgmath::*; + +mod rotation { + use super::cgmath::*; + + pub fn a2>() -> R { + Rotation2::from_angle(deg(30.0).to_rad()) + } + + pub fn a3>() -> R { + let axis = Vector3::new(1.0, 1.0, 0.0).normalize(); + Rotation3::from_axis_angle(&axis, deg(30.0).to_rad()) + } +} + +#[test] +fn test_invert_basis2() { + let a: Basis2<_> = rotation::a2(); + assert!(a.concat(&a.invert()).as_matrix2().is_identity()); +} + +#[test] +fn test_invert_basis3() { + let a: Basis3<_> = rotation::a3(); + assert!(a.concat(&a.invert()).as_matrix3().is_identity()); +}