bezier_interpolation/lib.rs
1#![doc(html_root_url = "https://docs.rs/bezier-interpolation/0.3.0")]
2//! bezier interpolation for Rust
3//!
4//! link freetype.lib
5//!
6
7pub mod ncr;
8
9/*
10#[cfg(test)]
11mod tests {
12 use super::ncr::*;
13 use freetype as ft;
14
15 /// with [-- --nocapture] or with [-- --show-output]
16 #[test]
17 fn check_ncr_i32() {
18 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(2, 0), 1);
19 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(2, 1), 2);
20 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(2, 2), 1);
21 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(3, 0), 1);
22 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(3, 1), 3);
23 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(3, 2), 3);
24 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr(3, 3), 1);
25 }
26
27 #[test]
28 fn check_ncr_i64_skip() {
29// assert_eq!(<Itpl<i64> as Path2d<_>>::ncr(0, 0), 1);
30 }
31
32 #[test]
33 fn check_ncr_table_i32() {
34 assert_eq!(<Itpl<_> as Path2d<i32>>::ncr_table(-1), [1]);
35 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(-1), [1]);
36
37 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(0), [1]);
38 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(1), [1, 1]);
39 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(2), [1, 2, 1]);
40 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(3), [1, 3, 3, 1]);
41 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(4), [1, 4, 6, 4, 1]);
42 assert_eq!(<Itpl<i32> as Path2d<_>>::ncr_table(5), [1, 5, 10, 10, 5, 1]);
43 }
44
45 #[test]
46 fn check_ncr_table_i64_skip() {
47// assert_eq!(<Itpl<_> as Path2d<i64>>::ncr_table(-1), [1i32]);
48// assert_eq!(<Itpl<i64> as Path2d<_>>::ncr_table(-1), [1i32]);
49
50// assert_eq!(<Itpl<i64> as Path2d<_>>::ncr_table(5), [1, 5, 10, 10, 5, 1]);
51 }
52
53 #[test]
54 fn check_add2d_inv_i32() {
55 assert_eq!((0, 0).add2d((0, 0)), (0, 0));
56 assert_eq!((0, 0).inv(&ft::Vector{x: 0, y: 0}), (0, 0));
57 assert_eq!((1, 2).add2d((3, 4)), (4, 6));
58 assert_eq!((1, 2).inv(&ft::Vector{x: 3, y: 4}), (4, -6));
59
60 assert_eq!((0i32, 0i32).add2d((0, 0)), (0i32, 0i32));
61 assert_eq!((0i32, 0i32).inv(&ft::Vector{x: 0, y: 0}), (0i32, 0i32));
62 assert_eq!((1i32, 2i32).add2d((3, 4)), (4, 6));
63 assert_eq!((1i32, 2i32).inv(&ft::Vector{x: 3, y: 4}), (4, -6));
64 }
65
66 #[test]
67 fn check_add2d_inv_i64_skip() {
68// assert_eq!((0i64, 0i64).add2d((0, 0)), (0i64, 0i64));
69// assert_eq!((0i64, 0i64).inv(&ft::Vector{x: 0, y: 0}), (0i64, 0i64));
70// assert_eq!((1i64, 2i64).add2d((3, 4)), (4, 6));
71// assert_eq!((1i64, 2i64).inv(&ft::Vector{x: 3, y: 4}), (4, -6));
72 }
73
74 #[test]
75 fn check_diff2d_mul2df64_cross2d_i32() {
76 assert_eq!((0, 0).diff2d((0, 0)), (0, 0));
77 assert_eq!((1, 2).diff2d((3, 4)), (-2, -2));
78 assert_eq!((1, 2).diff2d((3i32, 4i32)), (-2, -2));
79 assert_eq!((1, 2).diff2d((3, 4)), (-2i32, -2i32));
80 assert_eq!((1i32, 2i32).diff2d((3i32, 4i32)), (-2i32, -2i32));
81 assert_eq!((4i32, 3i32).diff2d((2, 5)), (2i32, -2i32));
82
83 assert_eq!((0, 0).mul2df64(0.0), (0, 0));
84 assert_eq!((1, 2).mul2df64(3.6), (3, 7));
85 assert_eq!((1, 2).mul2df64(3.6), (3i32, 7i32));
86 assert_eq!((1i32, 2i32).mul2df64(3.6), (3i32, 7i32));
87 assert_eq!((4i32, 3i32).mul2df64(2.4), (9i32, 7i32));
88
89 assert_eq!((0, 0).cross2d((0, 0)), 0);
90 assert_eq!((1, 2).cross2d((3, 4)), -2);
91 assert_eq!((1, 2).cross2d((3i32, 4i32)), -2);
92 assert_eq!((1, 2).cross2d((3, 4)), -2i32);
93 assert_eq!((1i32, 2i32).cross2d((3i32, 4i32)), -2i32);
94 assert_eq!((4i32, 3i32).cross2d((2, 5)), 14);
95 }
96
97 #[test]
98 fn check_diff2d_mul2df64_cross2d_i64_skip() {
99 }
100}
101*/