diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index 2a404ff892..8a1b9a1c98 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -21,3 +21,10 @@ IN: sequences.extras.tests [ "abcd" ] [ "abcd" "abcde" longest-subseq ] unit-test [ "foo" ] [ "foo" "foobar" longest-subseq ] unit-test [ "foo" ] [ "foobar" "foo" longest-subseq ] unit-test + +[ "" "" ] [ "" "" CHAR: ? pad-longest ] unit-test +[ "abc" "def" ] [ "abc" "def" CHAR: ? pad-longest ] unit-test +[ " " "abc" ] [ "" "abc" CHAR: \s pad-longest ] unit-test +[ "abc" " " ] [ "abc" "" CHAR: \s pad-longest ] unit-test +[ "abc..." "foobar" ] [ "abc" "foobar" CHAR: . pad-longest ] unit-test + diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index ccf41154fa..200a82f8f8 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -66,3 +66,5 @@ IN: sequences.extras ] each ] each end n - end seq1 subseq ; +: pad-longest ( seq1 seq2 elt -- seq1 seq2 ) + [ 2dup max-length ] dip [ pad-tail ] 2curry bi@ ;