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 |