Skip to content

Commit

Permalink
[ derive ] Use the leftmost candidate instead of the rightmost
Browse files Browse the repository at this point in the history
  • Loading branch information
buzden committed Oct 2, 2024
1 parent 96ad202 commit aa16dbe
Show file tree
Hide file tree
Showing 36 changed files with 609 additions and 760 deletions.
271 changes: 61 additions & 210 deletions examples/sorted-list/tests/gens/print/expected

Large diffs are not rendered by default.

32 changes: 16 additions & 16 deletions examples/sorted-tree-indexed/tests/gens/sorted/expected
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
--------------
min: 0, max: 1, length: 2
as list: [0, 1]
min: 1, max: 4, length: 2
as list: [1, 4]
sorted: True
--------------
min: 1, max: 3, length: 3
as list: [1, 2, 3]
min: 0, max: 4, length: 5
as list: [0, 1, 2, 3, 4]
sorted: True
--------------
min: 0, max: 4, length: 5
as list: [0, 1, 2, 3, 4]
sorted: True
--------------
min: 0, max: 1, length: 2
as list: [0, 1]
min: 4, max: 4, length: 1
as list: [4]
sorted: True
--------------
min: 2, max: 2, length: 1
as list: [2]
min: 2, max: 4, length: 3
as list: [2, 3, 4]
sorted: True
--------------
min: 0, max: 4, length: 5
as list: [0, 1, 2, 3, 4]
sorted: True
--------------
min: 3, max: 3, length: 1
as list: [3]
min: 0, max: 4, length: 4
as list: [0, 2, 3, 4]
sorted: True
--------------
min: 4, max: 4, length: 1
as list: [4]
min: 2, max: 4, length: 3
as list: [2, 3, 4]
sorted: True
--------------
min: 0, max: 4, length: 5
as list: [0, 1, 2, 3, 4]
min: 2, max: 4, length: 3
as list: [2, 3, 4]
sorted: True
--------------
min: 0, max: 3, length: 4
as list: [0, 1, 2, 3]
min: 2, max: 2, length: 1
as list: [2]
sorted: True
16 changes: 8 additions & 8 deletions examples/uniq-list/tests/gens/uniq-list/expected
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,26 @@ uniq: True
list: ["g"]
uniq: True
-----------
list: ["g", "b", "f"]
list: ["b", "f", "g"]
uniq: True
-----------
list: ["f", "g", "a", "d"]
list: ["g", "a", "d", "f"]
uniq: True
-----------
list: ["h", "c", "g"]
list: ["c", "g", "h"]
uniq: True
-----------
list: ["h", "g", "b", "d", "c"]
list: ["g", "b", "d", "c", "h"]
uniq: True
-----------
list: ["c", "b"]
list: ["b", "c"]
uniq: True
-----------
list: ["d", "a", "h"]
list: ["a", "h", "d"]
uniq: True
-----------
list: ["g", "a", "h", "c", "d", "b", "f"]
list: ["a", "h", "c", "d", "b", "f", "g"]
uniq: True
-----------
list: ["g", "c", "b", "h", "d", "f", "a"]
list: ["c", "b", "h", "d", "f", "a", "g"]
uniq: True
20 changes: 10 additions & 10 deletions examples/uniq-list/tests/gens/uniq-vect-spare/expected
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
prenty of spare strings to generate from (7 for vects of length 4)
-----------
vect: ["g", "c", "a", "b"]
vect: ["c", "a", "b", "g"]
uniq: True
-----------
vect: ["b", "c", "g", "a"]
vect: ["c", "g", "a", "b"]
uniq: True
-----------
vect: ["b", "c", "d", "h"]
vect: ["c", "d", "h", "b"]
uniq: True
-----------
vect: ["h", "g", "d", "c"]
vect: ["g", "d", "c", "h"]
uniq: True
-----------
vect: ["a", "b", "g", "c"]
vect: ["b", "g", "c", "a"]
uniq: True
-----------
vect: ["f", "b", "h", "g"]
vect: ["b", "h", "g", "f"]
uniq: True
-----------
vect: ["g", "f", "c", "a"]
vect: ["f", "c", "a", "g"]
uniq: True
-----------
vect: ["a", "h", "d", "g"]
vect: ["h", "d", "g", "a"]
uniq: True
-----------
vect: ["a", "c", "d", "f"]
vect: ["c", "d", "f", "a"]
uniq: True
-----------
vect: ["c", "d", "f", "a"]
vect: ["d", "f", "a", "c"]
uniq: True
20 changes: 10 additions & 10 deletions examples/uniq-list/tests/gens/uniq-vect-tight/expected
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
no spare strings to generate from (4 for vects of length 4)
-----------
vect: ["b", "d", "a", "c"]
vect: ["d", "a", "c", "b"]
uniq: True
-----------
vect: ["d", "c", "a", "b"]
vect: ["c", "a", "b", "d"]
uniq: True
-----------
vect: ["d", "c", "a", "b"]
vect: ["c", "a", "b", "d"]
uniq: True
-----------
vect: ["c", "b", "a", "d"]
vect: ["b", "a", "d", "c"]
uniq: True
-----------
vect: ["d", "c", "b", "a"]
vect: ["c", "b", "a", "d"]
uniq: True
-----------
vect: ["a", "b", "d", "c"]
vect: ["b", "d", "c", "a"]
uniq: True
-----------
vect: ["b", "d", "c", "a"]
vect: ["d", "c", "a", "b"]
uniq: True
-----------
vect: ["a", "b", "c", "d"]
vect: ["b", "c", "d", "a"]
uniq: True
-----------
vect: ["b", "c", "a", "d"]
vect: ["c", "a", "d", "b"]
uniq: True
-----------
vect: ["c", "b", "a", "d"]
vect: ["b", "a", "d", "c"]
uniq: True
2 changes: 1 addition & 1 deletion src/Deriving/DepTyCheck/Gen/Core/ConsDerive.idr
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ searchOrder determinable left = do
-- It's important to do so, since after discharging one of the selected variable, set of available variants can extend
-- (e.g. because of discharging of strong determination), and new alternative have more priority than current ones.
-- TODO to determine the best among current variants taking into account which indices are more complex (transitively!)
let Just (curr, currDet) = last' notDetermined
let Just (curr, currDet) = head' notDetermined
| Nothing => []

-- remove information about all currently chosen args
Expand Down
20 changes: 10 additions & 10 deletions tests/derivation/core/big record 11/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX 15 8 11 12 4 5 17 10 10 17 4 16
MkX 16 4 17 10 10 17 5 4 12 11 8 15
-----
MkX 17 13 17 0 20 15 1 10 4 7 14 4
MkX 4 14 7 4 10 1 15 20 0 17 13 17
-----
MkX 3 1 11 16 16 14 10 13 18 2 12 17
MkX 17 12 2 18 13 10 14 16 16 11 1 3
-----
MkX 2 18 12 6 16 3 7 19 17 12 10 3
MkX 3 10 12 17 19 7 3 16 6 12 18 2
-----
MkX 19 3 19 15 5 0 7 1 15 18 1 8
MkX 8 1 18 15 1 7 0 5 15 19 3 19
-----
MkX 13 1 3 20 5 19 13 3 0 4 6 9
MkX 9 6 4 0 3 13 19 5 20 3 1 13
-----
MkX 5 4 6 3 16 6 7 4 7 0 5 9
MkX 9 5 0 7 4 7 6 16 3 6 4 5
-----
MkX 18 10 7 5 15 19 13 12 11 2 11 10
MkX 10 11 2 11 12 13 19 15 5 7 10 18
-----
MkX 20 6 7 17 10 3 13 20 7 9 14 2
MkX 2 14 9 7 20 13 3 10 17 7 6 20
-----
MkX 14 20 12 2 17 19 12 20 1 5 13 19
MkX 19 13 5 1 20 12 19 17 2 12 20 14
20 changes: 10 additions & 10 deletions tests/derivation/core/big record 4/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX 10 17 4 16
MkX 16 4 17 10
-----
MkX 4 5 17 10
MkX 10 17 5 4
-----
MkX 15 8 11 12
MkX 12 11 8 15
-----
MkX 4 7 14 4
MkX 4 14 7 4
-----
MkX 20 15 1 10
MkX 10 1 15 20
-----
MkX 17 13 17 0
MkX 0 17 13 17
-----
MkX 18 2 12 17
MkX 17 12 2 18
-----
MkX 16 14 10 13
MkX 13 10 14 16
-----
MkX 3 1 11 16
MkX 16 11 1 3
-----
MkX 17 12 10 3
MkX 3 10 12 17
20 changes: 10 additions & 10 deletions tests/derivation/core/big record 5/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX 10 10 17 4 16
MkX 16 4 17 10 10
-----
MkX 11 12 4 5 17
MkX 17 5 4 12 11
-----
MkX 7 14 4 15 8
MkX 8 15 4 14 7
-----
MkX 20 15 1 10 4
MkX 4 10 1 15 20
-----
MkX 17 17 13 17 0
MkX 0 17 13 17 17
-----
MkX 10 13 18 2 12
MkX 12 2 18 13 10
-----
MkX 1 11 16 16 14
MkX 14 16 16 11 1
-----
MkX 17 12 10 3 3
MkX 3 3 10 12 17
-----
MkX 6 16 3 7 19
MkX 19 7 3 16 6
-----
MkX 1 8 2 18 12
MkX 12 18 2 8 1
20 changes: 10 additions & 10 deletions tests/derivation/core/big record 8/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX 4 5 17 10 10 17 4 16
MkX 16 4 17 10 10 17 5 4
-----
MkX 4 7 14 4 15 8 11 12
MkX 12 11 8 15 4 14 7 4
-----
MkX 17 13 17 0 20 15 1 10
MkX 10 1 15 20 0 17 13 17
-----
MkX 16 14 10 13 18 2 12 17
MkX 17 12 2 18 13 10 14 16
-----
MkX 17 12 10 3 3 1 11 16
MkX 16 11 1 3 3 10 12 17
-----
MkX 2 18 12 6 16 3 7 19
MkX 19 7 3 16 6 12 18 2
-----
MkX 5 0 7 1 15 18 1 8
MkX 8 1 18 15 1 7 0 5
-----
MkX 0 4 6 9 19 3 19 15
MkX 15 19 3 19 9 6 4 0
-----
MkX 13 1 3 20 5 19 13 3
MkX 3 13 19 5 20 3 1 13
-----
MkX 16 6 7 4 7 0 5 9
MkX 9 5 0 7 4 7 6 16
2 changes: 1 addition & 1 deletion tests/derivation/core/norec nodep noext 002/expected
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ X0
-----
X1 True
-----
X2 True False
X2 False True
-----
X0
12 changes: 6 additions & 6 deletions tests/derivation/core/norec nodep w_ext 002/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX "" "a"
MkX "a" ""
-----
MkX "" ""
-----
MkX "a" ""
MkX "" "a"
-----
MkX "a" "a"
-----
MkX "a" ""
MkX "" "a"
-----
MkX "bc" "a"
MkX "a" "bc"
-----
MkX "" ""
-----
MkX "a" "bc"
MkX "bc" "a"
-----
MkX "a" "a"
-----
MkX "" "a"
MkX "a" ""
12 changes: 6 additions & 6 deletions tests/derivation/core/norec nodep w_ext 003/expected
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
Generated values:
-----
-----
MkX "" 10
MkX "a" 0
-----
MkX "" 0
-----
MkX "a" 0
MkX "" 10
-----
MkX "a" 10
-----
MkX "" 10
-----
MkX "a" 10
-----
MkX "" 0
MkX "a" 0
-----
MkX "" 10
-----
MkX "a" 0
MkX "" 0
-----
MkX "a" 10
-----
MkX "a" 10
2 changes: 1 addition & 1 deletion tests/derivation/core/norec nodep w_ext 004/expected
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ X1 "a" 10
-----
X3 ""
-----
X1 "a" 0
X1 "bc" 10
-----
X2 10
-----
Expand Down
Loading

0 comments on commit aa16dbe

Please sign in to comment.