Skip to content

Commit 3007caa

Browse files
committed
add more tests
1 parent 9bd6b25 commit 3007caa

File tree

1 file changed

+75
-0
lines changed
  • cellular_raza-examples/tissue/src

1 file changed

+75
-0
lines changed

cellular_raza-examples/tissue/src/lib.rs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,3 +1147,78 @@ fn test_get_total_intersection_area() {
11471147
approx::assert_abs_diff_eq!(a1, a2, epsilon = 1e-3);
11481148
}
11491149
}
1150+
1151+
#[test]
1152+
fn test_min_dist_to_segment_1() {
1153+
let m = nalgebra::matrix![0.0, 0.0];
1154+
let v1 = nalgebra::matrix![1.0, 0.0];
1155+
let v2 = nalgebra::matrix![0.0, 1.0];
1156+
let dist = minimum_dist_to_segment(
1157+
&m.transpose(),
1158+
v1.transpose().as_view(),
1159+
v2.transpose().as_view(),
1160+
);
1161+
approx::assert_abs_diff_eq!(dist, 1.0 / 2f64.sqrt());
1162+
}
1163+
1164+
#[test]
1165+
fn test_min_dist_to_segment_2() {
1166+
let m = nalgebra::matrix![0.0, 0.0];
1167+
let v1 = nalgebra::matrix![-1.0, 1.0];
1168+
let v2 = nalgebra::matrix![1.0, 1.0];
1169+
let dist = minimum_dist_to_segment(
1170+
&m.transpose(),
1171+
v1.transpose().as_view(),
1172+
v2.transpose().as_view(),
1173+
);
1174+
approx::assert_abs_diff_eq!(dist, 1.0);
1175+
}
1176+
1177+
#[test]
1178+
fn test_min_dist_to_segment_3() {
1179+
let m = nalgebra::matrix![0.0, 0.0];
1180+
let v1 = nalgebra::matrix![0.0, 2.0];
1181+
let v2 = nalgebra::matrix![1.0, 0.0];
1182+
let dist = minimum_dist_to_segment(
1183+
&m.transpose(),
1184+
v1.transpose().as_view(),
1185+
v2.transpose().as_view(),
1186+
);
1187+
let h = 2.0 / 5f64.sqrt();
1188+
approx::assert_abs_diff_eq!(dist, h);
1189+
}
1190+
1191+
#[test]
1192+
fn test_min_dist_to_segment_4() {
1193+
let m = nalgebra::matrix![0.0, 0.0];
1194+
let v1 = nalgebra::matrix![-1.0, 5.0];
1195+
let v2 = nalgebra::matrix![0.0, 2.0];
1196+
let dist = minimum_dist_to_segment(
1197+
&m.transpose(),
1198+
v1.transpose().as_view(),
1199+
v2.transpose().as_view(),
1200+
);
1201+
approx::assert_abs_diff_eq!(dist, 2.0);
1202+
}
1203+
1204+
#[test]
1205+
fn test_get_total_intersection_area_ascending() {
1206+
let middle = Vector2::from([13.230383286359404, 57.91674149353457]);
1207+
let vertices = nalgebra::Matrix2xX::from_columns(&[
1208+
nalgebra::matrix![13.4537632521754, 63.48028248275224].transpose(),
1209+
nalgebra::matrix![15.117122610606705, 57.68800580249031].transpose(),
1210+
nalgebra::matrix![11.317138703572038, 56.705824689224265].transpose(),
1211+
nalgebra::matrix![0.0, 66.38051863220002].transpose(),
1212+
nalgebra::matrix![0.0, 72.0976802526207].transpose(),
1213+
nalgebra::matrix![4.57818363090394, 69.66127890644572].transpose(),
1214+
]);
1215+
1216+
let dr = 0.3;
1217+
let mut area = 0.0;
1218+
for n in 0..100 {
1219+
let radius = n as f64 * dr;
1220+
let area_new = get_total_intersection_area(&middle, &vertices, radius);
1221+
assert!(area_new >= area);
1222+
area = area_new;
1223+
}
1224+
}

0 commit comments

Comments
 (0)