+++ /dev/null
-package main
-
-import (
- "gopkg.in/check.v1"
-)
-
-type lisSuite struct{}
-
-var _ = check.Suite(&lisSuite{})
-
-func (s *lisSuite) Test(c *check.C) {
- for _, trial := range []struct {
- in []int
- out []int
- }{
- {},
- {
- in: []int{},
- },
- {
- in: []int{0},
- out: []int{0},
- },
- {
- in: []int{1, 2, 3, 4},
- out: []int{0, 1, 2, 3},
- },
- {
- in: []int{1, 2, 2, 4},
- out: []int{0, 2, 3},
- },
- {
- in: []int{4, 3, 2, 1},
- out: []int{3},
- },
- {
- in: []int{1, 3, 2, 4},
- out: []int{0, 2, 3},
- },
- {
- in: []int{1, 0, 0, 0, 4},
- out: []int{3, 4},
- },
- {
- in: []int{0, 1, 2, 1, 4, 5},
- out: []int{0, 1, 2, 4, 5},
- },
- } {
- c.Logf("=== %v", trial)
- c.Check(longestIncreasingSubsequence(len(trial.in), func(i int) int { return trial.in[i] }), check.DeepEquals, trial.out)
- }
-}