/core/sorting/sorting-tests.factor

http://github.com/abeaumont/factor · Factor · 28 lines · 20 code · 7 blank · 1 comment · 2 complexity · 9d717f229777b012379c013f544d5e7c MD5 · raw file

  1. USING: sorting sequences kernel math math.order random
  2. tools.test vectors sets vocabs grouping ;
  3. IN: sorting.tests
  4. [ { } ] [ { } natural-sort ] unit-test
  5. [ { 270000000 270000001 } ]
  6. [ T{ slice f 270000000 270000002 T{ iota f 270000002 } } natural-sort ]
  7. unit-test
  8. [ t ] [
  9. 100 [
  10. drop
  11. 100 [ 20 random [ 1000 random ] replicate ] replicate
  12. dup natural-sort
  13. [ set= ] [ nip [ before=? ] monotonic? ] 2bi and
  14. ] all-integers?
  15. ] unit-test
  16. [ ] [ { 1 2 } [ 2drop 1 ] sort drop ] unit-test
  17. ! Is it a stable sort?
  18. [ t ] [ { { 1 "a" } { 1 "b" } { 1 "c" } } dup sort-keys = ] unit-test
  19. [ { { 1 "a" } { 1 "b" } { 1 "c" } { 1 "e" } { 2 "d" } } ]
  20. [ { { 1 "a" } { 1 "b" } { 1 "c" } { 2 "d" } { 1 "e" } } sort-keys ] unit-test
  21. [ ] [ all-words natural-sort drop ] unit-test