File: equal_test.go

package info (click to toggle)
elvish 0.21.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,372 kB
  • sloc: javascript: 236; sh: 130; python: 104; makefile: 88; xml: 9
file content (61 lines) | stat: -rw-r--r-- 1,674 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package vals

import (
	"math/big"
	"os"
	"testing"

	"src.elv.sh/pkg/tt"
)

type customEqualer struct{ ret bool }

func (c customEqualer) Equal(any) bool { return c.ret }

type customStruct struct{ a, b string }

func TestEqual(t *testing.T) {
	tt.Test(t, Equal,
		Args(nil, nil).Rets(true),
		Args(nil, "").Rets(false),

		Args(true, true).Rets(true),
		Args(true, false).Rets(false),

		Args(1.0, 1.0).Rets(true),
		Args(1.0, 1.1).Rets(false),
		Args("1.0", 1.0).Rets(false),
		Args(1, 1.0).Rets(false),
		Args(1, 1).Rets(true),
		Args(bigInt(z), bigInt(z)).Rets(true),
		Args(bigInt(z), 1).Rets(false),
		Args(bigInt(z), bigInt(z1)).Rets(false),
		Args(big.NewRat(1, 2), big.NewRat(1, 2)).Rets(true),
		Args(big.NewRat(1, 2), 0.5).Rets(false),

		Args("lorem", "lorem").Rets(true),
		Args("lorem", "ipsum").Rets(false),

		Args(os.Stdin, os.Stdin).Rets(true),
		Args(os.Stdin, os.Stderr).Rets(false),
		Args(os.Stdin, "").Rets(false),
		Args(os.Stdin, 0).Rets(false),

		Args(MakeList("a", "b"), MakeList("a", "b")).Rets(true),
		Args(MakeList("a", "b"), MakeList("a")).Rets(false),
		Args(MakeList("a", "b"), MakeList("a", "c")).Rets(false),
		Args(MakeList("a", "b"), "").Rets(false),
		Args(MakeList("a", "b"), 1.0).Rets(false),

		Args(MakeMap("k", "v"), MakeMap("k", "v")).Rets(true),
		Args(MakeMap("k", "v"), MakeMap("k2", "v")).Rets(false),
		Args(MakeMap("k", "v", "k2", "v2"), MakeMap("k", "v")).Rets(false),
		Args(MakeMap("k", "v"), "").Rets(false),
		Args(MakeMap("k", "v"), 1.0).Rets(false),

		Args(customEqualer{true}, 2).Rets(true),
		Args(customEqualer{false}, 2).Rets(false),

		Args(&customStruct{"a", "b"}, &customStruct{"a", "b"}).Rets(true),
	)
}