test: moving a point
[?]
Jun 15, 2022, 4:08 AM
L6XA5EY2FVDQFRGCBFSCOM6O4GYN74K3YTZKGFUOPXIUYA3YT5JQCDependencies
- [2]
6LIPEQ5Imore robust transitions to temporary modes - [3]
42LVB4DEtest: naming a point - [4]
BYG5CEMVsupport for naming points - [5]
YCDYGEZUinclude drawing index in a few places - [6]
SRVDX4I5local var - [7]
JAXPXLEBset current_drawing_index with current_drawing - [8]
JFFUF5ALoverride mouse state lookups in tests - [9]
BJ2C6F2Bignore 'name' mode in a few places - [10]
SVJZZDC3snapshot - no, that's all wrong - [11]
7SFHSB47rename - [12]
WTDKUACNrectangle and square shapes - [13]
CPZGQT72go through and fix similar issues - [14]
FEEGTRGQbugfix: duplicate character on enter - [15]
UZVWYRTYmissing temporary modes in a couple more places - [16]
MGT5FTJ3first stab at supporting wrapping in cursor up - [17]
DSLD74DKlots more tests - [18]
CRYGI3LRmore drawing tests - [19]
2XLZCWZCbugfix: rectangles and squares are now saved - [20]
SBJRWFSPone less manual test - [21]
XNFTJHC4split keyboard handling between Text and Drawing - [22]
6DE7RBZ6move mouse_released events to Drawing - [23]
DRFE3B3Zmouse buttons are integers, not strings - [24]
BJ5X5O4Alet's prevent the text cursor from ever getting on a drawing - [25]
F63Q4OV7several bugfixes - [*]
K2X6G75Zstart writing some tests for drawings - [*]
BLWAYPKVextract a module
Change contents
- edit in drawing_tests.lua at line 358
endfunction test_move_point()io.write('\ntest_move_point')-- create a drawing with a lineApp.screen.init{width=Margin_left+300, height=300}Lines = load_array{'```lines', '```', ''}Line_width = 256 -- drawing coordinates 1:1 with pixelsCurrent_drawing_mode = 'line'App.draw()-- draw a lineApp.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1)App.run_after_mouse_release(Margin_left+35, Margin_top+Drawing_padding_top+36, 1)local drawing = Lines[1]check_eq(#drawing.shapes, 1, 'F - test_move_point/baseline/#shapes')check_eq(#drawing.points, 2, 'F - test_move_point/baseline/#points')check_eq(drawing.shapes[1].mode, 'line', 'F - test_move_point/baseline/shape:1')local p1 = drawing.points[drawing.shapes[1].p1]local p2 = drawing.points[drawing.shapes[1].p2]check_eq(p1.x, 5, 'F - test_move_point/baseline/p1:x')check_eq(p1.y, 6, 'F - test_move_point/baseline/p1:y')check_eq(p2.x, 35, 'F - test_move_point/baseline/p2:x')check_eq(p2.y, 36, 'F - test_move_point/baseline/p2:y')check_nil(p2.name, 'F - test_move_point/baseline/p2:name')-- enter 'move' mode without moving the mouseApp.run_after_keychord('C-u')check_eq(Current_drawing_mode, 'move', 'F - test_move_point/mode:1')-- point is liftedcheck_eq(drawing.pending.mode, 'move', 'F - test_move_point/mode:2')check_eq(drawing.pending.target_point, p2, 'F - test_move_point/target')-- move pointApp.mouse_move(Margin_left+26, Margin_top+Drawing_padding_top+44)App.update(0.05)local p2 = drawing.points[drawing.shapes[1].p2]check_eq(p2.x, 26, 'F - test_move_point/x')check_eq(p2.y, 44, 'F - test_move_point/y')-- exit 'move' modeApp.run_after_mouse_click(Margin_left+26, Margin_top+Drawing_padding_top+44, 1)check_eq(Current_drawing_mode, 'line', 'F - test_move_point/mode:3')check_eq(drawing.pending, {}, 'F - test_move_point/pending') - edit in drawing.lua at line 263
if Lines.current_drawing thenLines.current_drawing.pending = {}Lines.current_drawing = nilend - edit in drawing.lua at line 343
elseif drawing.pending.mode == 'move' then-- drop it - edit in drawing.lua at line 491[4.10365]→[4.2666:2715](∅→∅),[4.2715]→[4.138:208](∅→∅),[4.3891]→[4.138:208](∅→∅),[4.10419]→[4.138:208](∅→∅),[4.208]→[4.10475:10495](∅→∅),[4.476]→[4.10475:10495](∅→∅),[4.10475]→[4.10475:10495](∅→∅),[4.10495]→[2.118:224](∅→∅),[2.224]→[4.10546:10650](∅→∅),[4.10546]→[4.10546:10650](∅→∅),[4.10650]→[4.209:259](∅→∅),[4.259]→[4.420:458](∅→∅),[4.10650]→[4.420:458](∅→∅),[4.458]→[4.1818:1826](∅→∅),[4.1818]→[4.1818:1826](∅→∅)
elseif App.mouse_down(1) and chord == 'v' thenlocal drawing_index,drawing,_,p = Drawing.select_point_at_mouse()if drawing thenif Previous_drawing_mode == nil thenPrevious_drawing_mode = Current_drawing_modeendCurrent_drawing_mode = 'move'drawing.pending = {mode=Current_drawing_mode, target_point=p}Lines.current_drawing_index = drawing_indexLines.current_drawing = drawingend - edit in Manual_tests.md at line 15
drawingselect a point and move it