File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -50,5 +50,9 @@ mergeSMoves [] = []
5050mergeSMoves (m1@ (SMove (LongLinDiff a1 d1)): m2@ (SMove (LongLinDiff a2 d2)): cmds)
5151 | (a1 /= a2) || (d1 + d2 < - 15 ) || (d1 + d2 > 15 )
5252 = m1 : (mergeSMoves (m2: cmds))
53- | otherwise = (SMove (LongLinDiff a1 (d1 + d2))) : cmds
53+ | otherwise =
54+ let d = d1 + d2
55+ in if d == 0
56+ then cmds
57+ else (SMove (LongLinDiff a1 d)) : cmds
5458mergeSMoves (cmd: cmds) = cmd : (mergeSMoves cmds)
Original file line number Diff line number Diff line change @@ -64,6 +64,11 @@ testMergeSMoves = testGroup "mergeSMoves"
6464 m2 = SMove (LongLinDiff Z (- 4 ))
6565 result = SMove (LongLinDiff Z (- 15 ))
6666 in mergeSMoves [m1, m2] @?= [result]
67+ , testCase " Unoptimal input.3" $
68+ let
69+ m1 = SMove (LongLinDiff Y (- 3 ))
70+ m2 = SMove (LongLinDiff Y 3 )
71+ in mergeSMoves [m1, m2] @?= []
6772
6873 , testCase " Only first occurrence is optimized" $
6974 let
You can’t perform that action at this time.
0 commit comments