-3 3 fix-left-chunk
] unit-test
+! TODO: add more tests for the recently discovered bugs in fix-left-chunk and fix-right-chunk
+
! fix-right-chunk: y coord = top limit
{
{ { 5 3 } { 6 0 } }
! single-element sequences, same x coord
{
{
- { { 0 0 } }
- { { 0 3 } }
+ { { 0 0 } { 0 3 } }
+ { { 0 3 } { 0 0 } }
}
} [
{ { 0 -2 } { 0 0 } { 0 5 } { 0 3 } { 0 -1 } } { 0 3 }
:: fix-left-chunk ( left right ymin ymax -- left' )
left last :> left-point
right first :> right-point
- left-point y { [ ymin = ] [ ymax = ] } 1|| [
+ left-point y right-point y {
+ [ { [ drop ymin = ] [ > ] } 2&& ]
+ [ { [ drop ymax = ] [ < ] } 2&& ]
+ } 2|| [
left
] [
left-point y right-point y > ymin ymax ? :> y-coord
:: fix-right-chunk ( left right ymin ymax -- right' )
left last :> left-point
right first :> right-point
- right-point y { [ ymin = ] [ ymax = ] } 1|| [
+ left-point y right-point y {
+ [ { [ ymin = nip ] [ < ] } 2&& ]
+ [ { [ ymax = nip ] [ > ] } 2&& ]
+ } 2|| [
right
] [
left-point y right-point y < ymin ymax ? :> y-coord