mirror of
https://github.com/duke-git/lancet.git
synced 2025-10-05 15:36:52 +08:00
204 lines
4.4 KiB
Go
204 lines
4.4 KiB
Go
package compare
|
|
|
|
import (
|
|
"encoding/json"
|
|
"math/big"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/duke-git/lancet/v2/internal"
|
|
)
|
|
|
|
func TestEqual(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestEqual")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{1, 1, true},
|
|
{int64(1), int64(1), true},
|
|
{"a", "a", true},
|
|
{true, true, true},
|
|
{[]int{1, 2, 3}, []int{1, 2, 3}, true},
|
|
{map[int]string{1: "a", 2: "b"}, map[int]string{1: "a", 2: "b"}, true},
|
|
{1, 2, false},
|
|
{1, int64(1), false},
|
|
{"a", "b", false},
|
|
{true, false, false},
|
|
{[]int{1, 2}, []int{1, 2, 3}, false},
|
|
{map[int]string{1: "a", 2: "b"}, map[int]string{1: "a"}, false},
|
|
// {time.Now(), time.Now(), true},
|
|
// {time.Now(), time.Now().Add(time.Second), false},
|
|
{[]byte("hello"), []byte("hello"), true},
|
|
{[]byte("hello"), []byte("world"), false},
|
|
{json.Number("123"), json.Number("123"), true},
|
|
{json.Number("123"), json.Number("124"), false},
|
|
|
|
{big.NewInt(123), big.NewInt(123), true},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, Equal(tt.left, tt.right))
|
|
}
|
|
|
|
}
|
|
|
|
func TestEqualValue(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestEqualValue")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{1, 1, true},
|
|
{int64(1), int64(1), true},
|
|
{"a", "a", true},
|
|
{true, true, true},
|
|
{[]int{1, 2, 3}, []int{1, 2, 3}, true},
|
|
{map[int]string{1: "a", 2: "b"}, map[int]string{1: "a", 2: "b"}, true},
|
|
{1, 2, false},
|
|
{1, int64(1), true},
|
|
{"a", "b", false},
|
|
{true, false, false},
|
|
{[]int{1, 2}, []int{1, 2, 3}, false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, EqualValue(tt.left, tt.right))
|
|
}
|
|
}
|
|
|
|
func TestLessThan(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestLessThan")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{1, 2, true},
|
|
{1.1, 2.2, true},
|
|
{"a", "b", true},
|
|
{time.Now(), time.Now().Add(time.Second), true},
|
|
{[]byte("hello1"), []byte("hello2"), true},
|
|
{json.Number("123"), json.Number("124"), true},
|
|
{645680099112988673, 645680099112988675, true},
|
|
{1, 1, false},
|
|
{1, int64(1), false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, LessThan(tt.left, tt.right))
|
|
}
|
|
}
|
|
|
|
func TestGreaterThan(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestGreaterThan")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{2, 1, true},
|
|
{2.2, 1.1, true},
|
|
{"b", "a", true},
|
|
{time.Now().Add(time.Second), time.Now(), true},
|
|
{[]byte("hello2"), []byte("hello1"), true},
|
|
{json.Number("124"), json.Number("123"), true},
|
|
{645680099112988675, 645680099112988673, true},
|
|
{1, 1, false},
|
|
{1, int64(1), false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, GreaterThan(tt.left, tt.right))
|
|
}
|
|
|
|
}
|
|
|
|
func TestLessOrEqual(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestLessOrEqual")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{1, 2, true},
|
|
{1, 1, true},
|
|
{1.1, 2.2, true},
|
|
{"a", "b", true},
|
|
{time.Now(), time.Now().Add(time.Second), true},
|
|
{[]byte("hello1"), []byte("hello2"), true},
|
|
{json.Number("123"), json.Number("124"), true},
|
|
{645680099112988673, 645680099112988675, true},
|
|
{2, 1, false},
|
|
{1, int64(2), false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, LessOrEqual(tt.left, tt.right))
|
|
}
|
|
}
|
|
|
|
func TestGreaterOrEqual(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestGreaterThan")
|
|
|
|
tests := []struct {
|
|
left any
|
|
right any
|
|
want bool
|
|
}{
|
|
{2, 1, true},
|
|
{1, 1, true},
|
|
{2.2, 1.1, true},
|
|
{"b", "b", true},
|
|
{time.Now().Add(time.Second), time.Now(), true},
|
|
{[]byte("hello2"), []byte("hello1"), true},
|
|
{json.Number("124"), json.Number("123"), true},
|
|
{645680099112988675, 645680099112988673, true},
|
|
{1, 2, false},
|
|
{int64(2), 1, false},
|
|
{"b", "c", false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, GreaterOrEqual(tt.left, tt.right))
|
|
}
|
|
}
|
|
|
|
func TestInDelta(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestInDelta")
|
|
|
|
tests := []struct {
|
|
left float64
|
|
right float64
|
|
delta float64
|
|
want bool
|
|
}{
|
|
{1, 1, 0, true},
|
|
{1, 2, 0, false},
|
|
{2.0 / 3.0, 0.66667, 0.001, true},
|
|
{2.0 / 3.0, 0.0, 0.001, false},
|
|
{float64(74.96) - float64(20.48), 54.48, 0, false},
|
|
{float64(74.96) - float64(20.48), 54.48, 1e-14, true},
|
|
{float64(float32(80.45)), float64(80.45), 0, false},
|
|
{float64(float32(80.45)), float64(80.45), 1e-5, true},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
assert.Equal(tt.want, InDelta(tt.left, tt.right, tt.delta))
|
|
}
|
|
}
|