slice_test.go 720 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package ctn
  2. import (
  3. "testing"
  4. "sort"
  5. )
  6. func TestMapFilterReduce(t *testing.T) {
  7. a := [] int { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
  8. a = MapEach(a, func(i int) int {
  9. return i*10
  10. })
  11. a = Filter(a, func(i int) bool {
  12. return (i <= 40)
  13. })
  14. { a := Reduce(a, int(1), func(sum int, i int) int {
  15. return (sum + i)
  16. })
  17. if a != 101 {
  18. t.Fatalf("wrong result: %d", a)
  19. } }
  20. }
  21. func TestStableSort(t *testing.T) {
  22. u := [] int { 50, 55, 60, 65, 20, 30, 35, 80, 85, 90, 10, 12, 18, 70, 40 }
  23. v, _ := (StableSort(u, func(a int, b int) bool {
  24. return ((a / 10) < (b / 10))
  25. }))
  26. sort.Slice(u, func(i, j int) bool {
  27. return (u[i] < u[j])
  28. })
  29. for i := range u {
  30. if u[i] != v[i] {
  31. t.Fatalf("wrong result: %+v", v)
  32. }
  33. }
  34. }