vector-traits 0.6.2

Rust traits for 2D and 3D vector types.
Documentation
// SPDX-License-Identifier: MIT OR Apache-2.0
// Copyright (c) 2023, 2025 lacklustr@protonmail.com https://github.com/eadf

// This file is part of vector-traits.

#[test]
fn test_cgmath_xy() {
    crate::tests::vector_2d::test_xy::<cgmath::Vector2<f32>>(1.0, 2.0);
    crate::tests::vector_2d::test_xy::<cgmath::Vector2<f64>>(1.0, 2.0);
    crate::tests::vector_2d::test_xy::<cgmath::Vector3<f32>>(1.0, 2.0);
    crate::tests::vector_2d::test_xy::<cgmath::Vector3<f64>>(1.0, 2.0);
}

#[test]
fn test_cgmath_xyz() {
    crate::tests::vector_3d::test_xyz::<cgmath::Vector3<f32>>(1.0, 2.0, 3.0);
    crate::tests::vector_3d::test_xyz::<cgmath::Vector3<f64>>(1.0, 2.0, 3.0);
}

#[test]
fn test_cgmath_gxy() {
    crate::tests::vector_2d::test_gxy::<cgmath::Vector2<f32>>(1.0, 2.0, 3.0);
    crate::tests::vector_2d::test_gxy::<cgmath::Vector2<f64>>(1.0, 2.0, 3.0);
    crate::tests::vector_2d::test_generic_xy::<cgmath::Vector2<f32>>(1.0, 2.0, 3.0, 0.00000001);
    crate::tests::vector_2d::test_generic_xy::<cgmath::Vector2<f64>>(
        1.0,
        2.0,
        3.0,
        0.0000000000001,
    );
}

#[test]
fn test_cgmath_gxyz() {
    crate::tests::vector_3d::test_gxyz::<cgmath::Vector3<f32>>(1.0, 2.0, 3.0);
    crate::tests::vector_3d::test_gxyz::<cgmath::Vector3<f64>>(1.0, 2.0, 3.0);
    crate::tests::vector_3d::test_generic_xyz::<cgmath::Vector3<f32>>(1.0, 2.0, 3.0, 4.0, 0.0001);
    crate::tests::vector_3d::test_generic_xyz::<cgmath::Vector3<f64>>(
        1.0,
        2.0,
        3.0,
        4.0,
        0.0000000000001,
    );
}

#[test]
fn test_cgmath_matrix() {
    crate::tests::affine::test_affine2d_v1::<cgmath::Vector2<f32>>();
    crate::tests::affine::test_affine2d_v1::<cgmath::Vector2<f64>>();
    crate::tests::affine::test_affine2d_v2::<cgmath::Vector2<f32>>();
    crate::tests::affine::test_affine2d_v2::<cgmath::Vector2<f64>>();
    crate::tests::affine::test_affine3d_v1::<cgmath::Vector3<f32>>("cgmath32");
    crate::tests::affine::test_affine3d_v1::<cgmath::Vector3<f64>>("cgmath64");
}

#[test]
fn test_cgmath_aabb2_f32() {
    crate::tests::aabb_2d::test_aabb2_comprehensive::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_from_corners::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_from_center_and_half_extents::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_from_center_and_size::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_from_points::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_pad::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_fast_pad::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_is_empty::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_from_point::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_extend_with::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_extend::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_aabb2_contains_point_inclusive::<cgmath::Vector2<f32>>();
    crate::tests::aabb_2d::test_extents::<cgmath::Vector2<f32>>();
}

#[test]
fn test_cgmath_aabb2_f64() {
    crate::tests::aabb_2d::test_aabb2_comprehensive::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_from_corners::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_from_center_and_half_extents::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_from_center_and_size::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_from_points::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_pad::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_fast_pad::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_is_empty::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_from_point::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_extend_with::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_extend::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_aabb2_contains_point_inclusive::<cgmath::Vector2<f64>>();
    crate::tests::aabb_2d::test_extents::<cgmath::Vector2<f64>>();
}

#[test]
fn test_cgmath_aabb3_f32() {
    crate::tests::aabb_3d::test_aabb3_comprehensive::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_from_corners::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_from_center_and_half_extents::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_from_center_and_size::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_from_points::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_pad::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_fast_pad::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_is_empty::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_from_point::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_extend_with::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_extend::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_aabb3_contains_point_inclusive::<cgmath::Vector3<f32>>();
    crate::tests::aabb_3d::test_extents::<cgmath::Vector3<f32>>();
}

#[test]
fn test_cgmath_aabb3_f64() {
    crate::tests::aabb_3d::test_aabb3_comprehensive::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_from_corners::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_from_center_and_half_extents::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_from_center_and_size::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_from_points::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_pad::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_fast_pad::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_is_empty::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_from_point::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_extend_with::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_extend::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_aabb3_contains_point_inclusive::<cgmath::Vector3<f64>>();
    crate::tests::aabb_3d::test_extents::<cgmath::Vector3<f64>>();
}

#[test]
fn test_cgmath_plane_f32() {
    crate::tests::plane::test_get_plane_xy::<cgmath::Vector3<f32>>();
    crate::tests::plane::test_get_plane_xz::<cgmath::Vector3<f32>>();
    crate::tests::plane::test_get_plane_yz::<cgmath::Vector3<f32>>();
    crate::tests::plane::test_get_bad_plane::<cgmath::Vector3<f32>>();
    crate::tests::plane::test_get_plane_relaxed::<cgmath::Vector3<f32>>();

    crate::tests::affine::test_affine3d_plane_xy::<cgmath::Vector3<f32>>();
    crate::tests::affine::test_affine3d_plane_xz::<cgmath::Vector3<f32>>();
    crate::tests::affine::test_affine3d_plane_yz::<cgmath::Vector3<f32>>();
}

#[test]
fn test_cgmath_plane_f64() {
    crate::tests::plane::test_get_plane_xy::<cgmath::Vector3<f64>>();
    crate::tests::plane::test_get_plane_xz::<cgmath::Vector3<f64>>();
    crate::tests::plane::test_get_plane_yz::<cgmath::Vector3<f64>>();
    crate::tests::plane::test_get_bad_plane::<cgmath::Vector3<f64>>();
    crate::tests::plane::test_get_plane_relaxed::<cgmath::Vector3<f64>>();

    crate::tests::affine::test_affine3d_plane_xy::<cgmath::Vector3<f64>>();
    crate::tests::affine::test_affine3d_plane_xz::<cgmath::Vector3<f64>>();
    crate::tests::affine::test_affine3d_plane_yz::<cgmath::Vector3<f64>>();
}

#[test]
fn test_cgmath_affine_f32() {
    crate::tests::affine::test_affine3d_scale_and_translation::<cgmath::Vector3<f32>>();
}

#[test]
fn test_cgmath_affine_f64() {
    crate::tests::affine::test_affine3d_scale_and_translation::<cgmath::Vector3<f64>>();
}