mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-14 01:32:27 +08:00
feat: add Distinct
This commit is contained in:
@@ -15,7 +15,7 @@ func TestFromSlice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestFromRange(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestFromSlice")
|
||||
assert := internal.NewAssert(t, "TestFromRange")
|
||||
|
||||
s1 := FromRange(1, 5, 1)
|
||||
s2 := FromRange(1.1, 5.0, 1.0)
|
||||
@@ -23,3 +23,35 @@ func TestFromRange(t *testing.T) {
|
||||
assert.Equal([]int{1, 2, 3, 4, 5}, s1.ToSlice())
|
||||
assert.Equal([]float64{1.1, 2.1, 3.1, 4.1}, s2.ToSlice())
|
||||
}
|
||||
|
||||
func TestStream_Distinct(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestStream_Distinct")
|
||||
|
||||
nums := FromSlice([]int{1, 2, 2, 3, 3, 3})
|
||||
distinctNums := nums.Distinct()
|
||||
|
||||
assert.Equal([]int{1, 2, 2, 3, 3, 3}, nums.ToSlice())
|
||||
assert.Equal([]int{1, 2, 3}, distinctNums.ToSlice())
|
||||
|
||||
type Person struct {
|
||||
Id string
|
||||
Name string
|
||||
Age uint
|
||||
}
|
||||
|
||||
people := []Person{
|
||||
{Id: "001", Name: "Tom", Age: 10},
|
||||
{Id: "001", Name: "Tom", Age: 10},
|
||||
{Id: "002", Name: "Jim", Age: 20},
|
||||
{Id: "003", Name: "Mike", Age: 30},
|
||||
}
|
||||
|
||||
stream := FromSlice(people)
|
||||
distinctStream := stream.Distinct()
|
||||
|
||||
// {[{001 Tom 10} {001 Tom 10} {002 Jim 20} {003 Mike 30}]}
|
||||
t.Log(stream)
|
||||
|
||||
// {[{001 Tom 10} {002 Jim 20} {003 Mike 30}]}
|
||||
t.Log(distinctStream)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user