about summary refs log tree commit diff stats
path: root/drawing_tests.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-07-17 21:05:01 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-07-17 21:05:01 -0700
commit29dac6a6eccf5e5f09debe789fb4f314e460088b (patch)
treee9c7d252374c0c3b1ad6130a07875280d1f6d47e /drawing_tests.lua
parent64eed749809a4412a6663d149cd57a41431df91d (diff)
downloadview.love-29dac6a6eccf5e5f09debe789fb4f314e460088b.tar.gz
separate data structure for each line's cache data
I have no idea what the performance implications of this are..
Diffstat (limited to 'drawing_tests.lua')
-rw-r--r--drawing_tests.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/drawing_tests.lua b/drawing_tests.lua
index 4ea4b04..4c8c830 100644
--- a/drawing_tests.lua
+++ b/drawing_tests.lua
@@ -8,6 +8,7 @@ function test_creating_drawing_saves()
   Editor_state = edit.initialize_test_state()
   Editor_state.filename = 'foo'
   Editor_state.lines = load_array{}
+  Text.redraw_all(Editor_state)
   edit.draw(Editor_state)
   -- click on button to create drawing
   edit.run_after_mouse_click(Editor_state, 8,Editor_state.top+8, 1)
@@ -28,6 +29,7 @@ function test_draw_line()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_draw_line/baseline/#lines')
@@ -54,6 +56,7 @@ function test_draw_line()
   -- The format on disk isn't perfectly stable. Table fields can be reordered.
   -- So just reload from disk to verify.
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local drawing = Editor_state.lines[1]
   check_eq(#drawing.shapes, 1, 'F - test_draw_line/save/#shapes')
   check_eq(#drawing.points, 2, 'F - test_draw_line/save/#points')
@@ -72,6 +75,7 @@ function test_draw_horizontal_line()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'manhattan'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_draw_horizontal_line/baseline/#lines')
@@ -100,6 +104,7 @@ function test_draw_circle()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_draw_circle/baseline/#lines')
@@ -129,6 +134,7 @@ function test_cancel_stroke()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_cancel_stroke/baseline/#lines')
@@ -151,6 +157,7 @@ function test_keys_do_not_affect_shape_when_mouse_up()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   -- hover over drawing and press 'o' without holding mouse
@@ -167,6 +174,7 @@ function test_draw_circle_mid_stroke()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_draw_circle_mid_stroke/baseline/#lines')
@@ -195,6 +203,7 @@ function test_draw_arc()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'circle'
   edit.draw(Editor_state)
   check_eq(#Editor_state.lines, 2, 'F - test_draw_arc/baseline/#lines')
@@ -226,6 +235,7 @@ function test_draw_polygon()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   edit.draw(Editor_state)
   check_eq(Editor_state.current_drawing_mode, 'line', 'F - test_draw_polygon/baseline/drawing_mode')
   check_eq(#Editor_state.lines, 2, 'F - test_draw_polygon/baseline/#lines')
@@ -264,6 +274,7 @@ function test_draw_rectangle()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   edit.draw(Editor_state)
   check_eq(Editor_state.current_drawing_mode, 'line', 'F - test_draw_rectangle/baseline/drawing_mode')
   check_eq(#Editor_state.lines, 2, 'F - test_draw_rectangle/baseline/#lines')
@@ -308,6 +319,7 @@ function test_draw_rectangle_intermediate()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   edit.draw(Editor_state)
   check_eq(Editor_state.current_drawing_mode, 'line', 'F - test_draw_rectangle_intermediate/baseline/drawing_mode')
   check_eq(#Editor_state.lines, 2, 'F - test_draw_rectangle_intermediate/baseline/#lines')
@@ -344,6 +356,7 @@ function test_draw_square()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   edit.draw(Editor_state)
   check_eq(Editor_state.current_drawing_mode, 'line', 'F - test_draw_square/baseline/drawing_mode')
   check_eq(#Editor_state.lines, 2, 'F - test_draw_square/baseline/#lines')
@@ -388,6 +401,7 @@ function test_name_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   -- draw a line
@@ -420,6 +434,7 @@ function test_name_point()
   edit.update(Editor_state, 0)
   -- change is saved
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local p2 = Editor_state.lines[1].points[drawing.shapes[1].p2]
   check_eq(p2.name, 'A', 'F - test_name_point/save')
 end
@@ -431,6 +446,7 @@ function test_move_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -450,6 +466,7 @@ function test_move_point()
   edit.update(Editor_state, 0)
   -- line is saved to disk
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local drawing = Editor_state.lines[1]
   local p2 = Editor_state.lines[1].points[drawing.shapes[1].p2]
   check_eq(p2.x, 35, 'F - test_move_point/save/x')
@@ -476,6 +493,7 @@ function test_move_point()
   edit.update(Editor_state, 0)
   -- change is saved
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local p2 = Editor_state.lines[1].points[drawing.shapes[1].p2]
   check_eq(p2.x, 26, 'F - test_move_point/save/x')
   check_eq(p2.y, 44, 'F - test_move_point/save/y')
@@ -488,6 +506,7 @@ function test_move_point_on_manhattan_line()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'manhattan'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -514,6 +533,7 @@ function test_delete_lines_at_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -534,6 +554,7 @@ function test_delete_lines_at_point()
   edit.update(Editor_state, 0)
   -- deleted points disappear after file is reloaded
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   check_eq(#Editor_state.lines[1].shapes, 0, 'F - test_delete_lines_at_point/save')
 end
 
@@ -543,6 +564,7 @@ function test_delete_line_under_mouse_pointer()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -567,6 +589,7 @@ function test_delete_point_from_polygon()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   -- first point
@@ -598,6 +621,7 @@ function test_delete_point_from_polygon()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   -- first point
@@ -626,6 +650,7 @@ function test_undo_name_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   -- draw a line
@@ -663,6 +688,7 @@ function test_undo_name_point()
   edit.update(Editor_state, 0)
   -- undo is saved
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local p2 = Editor_state.lines[1].points[drawing.shapes[1].p2]
   check_eq(p2.name, '', 'F - test_undo_name_point/save')
 end
@@ -674,6 +700,7 @@ function test_undo_move_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -712,6 +739,7 @@ function test_undo_move_point()
   edit.update(Editor_state, 0)
   -- undo is saved
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   local p2 = Editor_state.lines[1].points[drawing.shapes[1].p2]
   check_eq(p2.x, 35, 'F - test_undo_move_point/save/x')
   check_eq(p2.y, 36, 'F - test_undo_move_point/save/y')
@@ -724,6 +752,7 @@ function test_undo_delete_point()
   App.screen.init{width=Test_margin_left+256, height=300}  -- drawing coordinates 1:1 with pixels
   Editor_state = edit.initialize_test_state()
   Editor_state.lines = load_array{'```lines', '```', ''}
+  Text.redraw_all(Editor_state)
   Editor_state.current_drawing_mode = 'line'
   edit.draw(Editor_state)
   edit.run_after_mouse_press(Editor_state, Editor_state.left+5, Editor_state.top+Drawing_padding_top+6, 1)
@@ -751,5 +780,6 @@ function test_undo_delete_point()
   edit.update(Editor_state, 0)
   -- undo is saved
   Editor_state.lines = load_from_disk(Editor_state.filename)
+  Text.redraw_all(Editor_state)
   check_eq(#Editor_state.lines[1].shapes, 2, 'F - test_undo_delete_point/save')
 end