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*/