package consumer

import (
	"testing"

	. "github.com/pingcap/check"
)

func TestT(t *testing.T) {
	TestingT(t)
}

var _ = Suite(&consumerTestSutie{})

type consumerTestSutie struct{}

func (s *consumerTestSutie) TestDiff(c *C) {
	c.Assert((int32Slice)(nil).Diff(int32Slice{1, 3, 5}), IsNil)
	c.Assert(int32Slice{1, 3, 5}.Diff((int32Slice)(nil)), DeepEquals, []int32{1, 3, 5})
	c.Assert(int32Slice{1, 3, 5}.Diff(int32Slice{1, 3, 5}), IsNil)
	c.Assert(int32Slice{1, 3, 5}.Diff(int32Slice{1, 2, 3, 4, 5}), IsNil)
	c.Assert(int32Slice{1, 3, 5}.Diff(int32Slice{2, 3, 4}), DeepEquals, []int32{1, 5})
	c.Assert(int32Slice{1, 3, 5}.Diff(int32Slice{1, 4}), DeepEquals, []int32{3, 5})
	c.Assert(int32Slice{1, 3, 5}.Diff(int32Slice{2, 5}), DeepEquals, []int32{1, 3})
	c.Assert(int32Slice{1, 2, 3, 4, 5}.Diff(int32Slice{2, 3}), DeepEquals, []int32{1, 4, 5})
	c.Assert(int32Slice{1, 2, 3, 4, 5}.Diff(int32Slice{6, 7}), DeepEquals, []int32{1, 2, 3, 4, 5})
	c.Assert(int32Slice{1, 2, 3, 4, 5, 8, 9}.Diff(int32Slice{6, 7}), DeepEquals, []int32{1, 2, 3, 4, 5, 8, 9})
}
