Repository navigation
Expand file tree
/
Copy pathjoin_test.go
More file actions
66 lines (59 loc) · 1.42 KB
/
Copy pathjoin_test.go
File metadata and controls
66 lines (59 loc) · 1.42 KB
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
62
63
64
65
66
package set
import "testing"
func TestDefFiniteJoinBroken(t *testing.T) {
if _, err := defFiniteJoin(infinitelt3, finite123); err == nil {
t.Error("No Error")
}
if _, err := defFiniteJoin(finite123, infinitegt3); err == nil {
t.Error("No Error")
}
if _, err := defFiniteJoin(infinitegt3, infinitelt3); err == nil {
t.Error("No Error")
}
}
func TestDefFiniteJoin(t *testing.T) {
set, err := defFiniteJoin(finite123, finite345)
if err != nil {
t.Fatal(err)
}
if !set.DefinitelyFinite() {
t.Fatal("Set should be definitely finite")
}
if number, err := set.Cardinality(); err != nil {
t.Fatal(err)
} else if number != 5 {
t.Error("Wrong number of elements")
}
for i := 1; i < 6; i++ {
if yes, err := set.Contains(i); err != nil {
t.Fatal(err)
} else if !yes {
t.Errorf("%v not in set", i)
}
}
}
func TestNotDefFiniteJoin(t *testing.T) {
set, err := notDefFiniteJoin(infinitegt3, finite123)
if err != nil {
t.Fatal(err)
}
for i := 1; i < 999; i++ {
if yes, err := set.Contains(i); err != nil {
t.Fatal(err)
} else if !yes {
t.Errorf("%v not in set", i)
}
}
}
func TestJoin(t *testing.T) {
if set, err := Join(finite123, finite123); err != nil {
t.Error(err)
} else if !set.DefinitelyFinite() {
t.Error("Set not definitely finite")
}
if set, err := Join(infinitegt3, infinitegt3); err != nil {
t.Error(err)
} else if set.DefinitelyFinite() {
t.Error("Set definitely finite")
}
}