src/cube.rs

changeset 29
76f9ec073a83
parent 15
2f4af30af476
child 30
4fc8c93ed7e8
equal deleted inserted replaced
27:29859ffd0ac1 29:76f9ec073a83
330 } 330 }
331 331
332 #[cfg(test)] 332 #[cfg(test)]
333 mod tests { 333 mod tests {
334 use super::*; 334 use super::*;
335
336 #[test]
337 fn center_distance() {
338 let center = Loc([0.5, 0.5]);
339
340 for f1 in Face::all() {
341 let p1 = OnCube { face : f1, point : center.clone() };
342 for f2 in Face::all() {
343 let p2 = OnCube { face : f2, point : center.clone() };
344 if f1==f2 {
345 assert_eq!(p1.dist_to(&p2), 0.0);
346 } else if f1.opposing_face()==f2 {
347 assert_eq!(p1.dist_to(&p2), 2.0);
348 } else {
349 assert_eq!(p1.dist_to(&p2), 1.0);
350 }
351 }
352 }
353 }
354
355 #[test]
356 fn boundary_distance() {
357 let left = Loc([0.0, 0.5]);
358 let right = Loc([1.0, 0.5]);
359 let down = Loc([0.5, 0.0]);
360 let up = Loc([0.5, 1.0]);
361 let center = Loc([0.5, 0.5]);
362
363 for f1 in Face::all() {
364 let pl = OnCube { face : f1, point : left.clone() };
365 let pr = OnCube { face : f1, point : right.clone() };
366 let pd = OnCube { face : f1, point : down.clone() };
367 let pu = OnCube { face : f1, point : up.clone() };
368 let a = f1.adjacent_faces();
369 let al = OnCube { face : a[0], point : center.clone() };
370 let ar = OnCube { face : a[1], point : center.clone() };
371 let ad = OnCube { face : a[2], point : center.clone() };
372 let au = OnCube { face : a[3], point : center.clone() };
373 let ao = OnCube { face : f1.opposing_face(), point : center.clone() };
374
375 assert_eq!(pl.dist_to(&al), 0.5);
376 assert_eq!(pr.dist_to(&ar), 0.5);
377 assert_eq!(pd.dist_to(&ad), 0.5);
378 assert_eq!(pu.dist_to(&au), 0.5);
379 assert_eq!(pl.dist_to(&ao), 1.5);
380 assert_eq!(pr.dist_to(&ao), 1.5);
381 assert_eq!(pd.dist_to(&ao), 1.5);
382 assert_eq!(pu.dist_to(&ao), 1.5);
383 }
384 }
385
335 386
336 #[test] 387 #[test]
337 fn convert_adjacent() { 388 fn convert_adjacent() {
338 let point = Loc([0.4, 0.6]); 389 let point = Loc([0.4, 0.6]);
339 390

mercurial