]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: fix bug in infimum-by/supremum-by.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 23 Jul 2012 14:52:27 +0000 (07:52 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 23 Jul 2012 14:52:27 +0000 (07:52 -0700)
extra/sequences/extras/extras-tests.factor
extra/sequences/extras/extras.factor

index 81f1eec8793b75dcbac35102425795094c6dbe68..513278c3bb6d70848e2987a83c1306ee1a6088fb 100644 (file)
@@ -8,6 +8,22 @@ IN: sequences.extras.tests
 [ { "foo" } ] [ { { "foo" } { "bar" } } [ first ] supremum-by ] unit-test
 [ { "bar" } ] [ { { "foo" } { "bar" } } [ first ] infimum-by ] unit-test
 
+[ { 0 0 255 } ] [
+    {
+        { 0 0 0 }
+        { 95 255 95 }
+        { 215 95 95 }
+        { 95 135 255 }
+        { 135 95 135 }
+        { 135 255 255 }
+        { 0 0 255 }
+        { 0 95 95 }
+        { 0 255 215 }
+        { 135 0 95 }
+        { 255 0 175 }
+    } [ { 0 0 255 } distance ] infimum-by
+] unit-test
+
 { V{ 0 1 2 3 4 5 6 7 8 9 } } [
     V{ } clone
     10 iota >array randomize
index 2ac859bd1034bf03c45de6d20907c87c8cc612c5..9dd741f9fe96007d83c10a33c0374c42af898f38 100644 (file)
@@ -36,13 +36,13 @@ IN: sequences.extras
 : supremum-by ( seq quot: ( ... elt -- ... x ) -- elt )
     [ [ first dup ] dip call ] 2keep [
         dupd call pick dupd max over =
-        [ [ 2drop ] 2dip ] [ 2nip ] if
+        [ [ 2drop ] 2dip ] [ 2drop ] if
     ] curry 1 each-from drop ; inline
 
 : infimum-by ( seq quot: ( ... elt -- ... x ) -- elt )
     [ [ first dup ] dip call ] 2keep [
         dupd call pick dupd min over =
-        [ [ 2drop ] 2dip ] [ 2nip ] if
+        [ [ 2drop ] 2dip ] [ 2drop ] if
     ] curry 1 each-from drop ; inline
 
 : all-subseqs ( seq -- seqs )