File: set_test.go

package info (click to toggle)
golang-github-badgerodon-collections 0.0~git20130729.604e922-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 172 kB
  • sloc: makefile: 5
file content (74 lines) | stat: -rw-r--r-- 1,241 bytes parent folder | download | duplicates (2)
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
67
68
69
70
71
72
73
74
package set

import (
	"testing"
)

func Test(t *testing.T) {
	s := New()
	
	s.Insert(5)
	
	if s.Len() != 1 {
		t.Errorf("Length should be 1")
	}
	
	if !s.Has(5) { 
		t.Errorf("Membership test failed")
	}
	
	s.Remove(5)
	
	if s.Len() != 0 {
		t.Errorf("Length should be 0")
	}
	
	if s.Has(5) {
		t.Errorf("The set should be empty")
	}
	
	// Difference
	s1 := New(1,2,3,4,5,6)
	s2 := New(4,5,6)
	s3 := s1.Difference(s2)
	
	if s3.Len() != 3 {
		t.Errorf("Length should be 3")
	}
	
	if !(s3.Has(1) && s3.Has(2) && s3.Has(3)) {
		t.Errorf("Set should only contain 1, 2, 3")
	}
	
	// Intersection
	s3 = s1.Intersection(s2)
	if s3.Len() != 3 {
		t.Errorf("Length should be 3 after intersection")
	}
	
	if !(s3.Has(4) && s3.Has(5) && s3.Has(6)) {
		t.Errorf("Set should contain 4, 5, 6")
	}
	
	// Union
	s4 := New(7,8,9)
	s3 = s2.Union(s4)
	
	if s3.Len() != 6 {
		t.Errorf("Length should be 6 after union")
	}
	
	if !(s3.Has(7)) {
		t.Errorf("Set should contain 4, 5, 6, 7, 8, 9")
	}
	
	// Subset
	if !s1.SubsetOf(s1) {
		t.Errorf("set should be a subset of itself")
	}
	// Proper Subset
	if s1.ProperSubsetOf(s1) {
		t.Errorf("set should not be a subset of itself")
	}
	
}