superinstance_ffi/
laman.rs1#[no_mangle]
3pub extern "C" fn si_laman_edges(v: i32) -> i32 {
4 2 * v - 3
5}
6
7#[no_mangle]
9pub extern "C" fn si_is_rigid(v: i32, e: i32) -> bool {
10 e >= 2 * v - 3
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16
17 #[test]
18 fn test_laman_edges_min() {
19 assert_eq!(si_laman_edges(2), 1);
20 }
21
22 #[test]
23 fn test_laman_edges_triangle() {
24 assert_eq!(si_laman_edges(3), 3);
25 }
26
27 #[test]
28 fn test_is_rigid_true() {
29 assert!(si_is_rigid(4, 5)); }
31
32 #[test]
33 fn test_is_rigid_false() {
34 assert!(!si_is_rigid(4, 4)); }
36
37 #[test]
38 fn test_is_rigid_exactly() {
39 assert!(si_is_rigid(5, 7)); }
41}