diff options
Diffstat (limited to 'packages/svgbob/src/map/circle_map/test_circle_map.rs')
-rw-r--r-- | packages/svgbob/src/map/circle_map/test_circle_map.rs | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/packages/svgbob/src/map/circle_map/test_circle_map.rs b/packages/svgbob/src/map/circle_map/test_circle_map.rs new file mode 100644 index 0000000..f9f990a --- /dev/null +++ b/packages/svgbob/src/map/circle_map/test_circle_map.rs @@ -0,0 +1,167 @@ +use super::*; + +#[test] +fn test_circle1() { + let art = r#" + _.-'''''''-._ + ,' `. + / \ + . . + | | + | | + | | + \ / + `._ _.' + '-.......-' + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let groups = span1.get_contacts(&Settings::default()); + for (i, group) in groups.iter().enumerate() { + println!("group{}\n{}", i, group); + } + assert_eq!(11, groups.len()); +} + +#[test] +fn test_arc9_top_right() { + let art = r#" + __ + `. + \ + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 5.0); +} + +#[test] +fn test_arc5_top_right() { + let art = r#" + -. + ) + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 2.5); +} + +#[test] +fn test_arc5_top_left() { + let art = r#" + .- + ( + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 2.5); +} + +#[test] +fn test_arc5_bottom_left() { + let art = r#" + ( + `- + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 2.0); +} + +#[test] +fn test_arc5_bottom_right() { + let art = r#" + ) + -' + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 2.0); +} + +#[test] +fn test_arc20_top_right() { + let art = r#" + ''''-._ + `. + \ + . + | + | + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 10.5); //also matched the arc21 radius and since larger it will matched it instead of arc20 +} + +#[test] +fn test_arc20_top_left() { + let art = r#" + _.-'''' + ,' + / + . + | + | + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 10.5); //also matched the arc21 radius and since larger it will matched it instead of arc20 +} + +#[test] +fn test_arc20_bottom_left() { + let art = r#" + | + | + \ + `._ + '-.... + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 9.0); +} + +#[test] +fn test_arc20_bottom_right() { + let art = r#" + | + | + / + _.' + ....-' + "#; + let cell_buffer = CellBuffer::from(art); + let mut spans: Vec<Span> = cell_buffer.group_adjacents(); + assert_eq!(spans.len(), 1); + let span1 = spans.remove(0); + let (arc, _) = endorse_arc_span(&span1).unwrap(); + assert_eq!(arc.radius, 10.0); +} |