@@ -54,3 +54,69 @@ func TestUnionMonoid(t *testing.T) {
5454
5555	assert .Equal (t , res , m .Concat (x , y ))
5656}
57+ 
58+ func  TestUnionFirstMonoid (t  * testing.T ) {
59+ 	m  :=  UnionFirstMonoid [string , string ]()
60+ 
61+ 	e  :=  Empty [string , string ]()
62+ 
63+ 	x  :=  map [string ]string {
64+ 		"a" : "a1" ,
65+ 		"b" : "b1" ,
66+ 		"c" : "c1" ,
67+ 	}
68+ 
69+ 	y  :=  map [string ]string {
70+ 		"b" : "b2" ,
71+ 		"c" : "c2" ,
72+ 		"d" : "d2" ,
73+ 	}
74+ 
75+ 	res  :=  map [string ]string {
76+ 		"a" : "a1" ,
77+ 		"b" : "b1" ,
78+ 		"c" : "c1" ,
79+ 		"d" : "d2" ,
80+ 	}
81+ 
82+ 	assert .Equal (t , x , m .Concat (x , m .Empty ()))
83+ 	assert .Equal (t , x , m .Concat (m .Empty (), x ))
84+ 
85+ 	assert .Equal (t , x , m .Concat (x , e ))
86+ 	assert .Equal (t , x , m .Concat (e , x ))
87+ 
88+ 	assert .Equal (t , res , m .Concat (x , y ))
89+ }
90+ 
91+ func  TestUnionLastMonoid (t  * testing.T ) {
92+ 	m  :=  UnionLastMonoid [string , string ]()
93+ 
94+ 	e  :=  Empty [string , string ]()
95+ 
96+ 	x  :=  map [string ]string {
97+ 		"a" : "a1" ,
98+ 		"b" : "b1" ,
99+ 		"c" : "c1" ,
100+ 	}
101+ 
102+ 	y  :=  map [string ]string {
103+ 		"b" : "b2" ,
104+ 		"c" : "c2" ,
105+ 		"d" : "d2" ,
106+ 	}
107+ 
108+ 	res  :=  map [string ]string {
109+ 		"a" : "a1" ,
110+ 		"b" : "b2" ,
111+ 		"c" : "c2" ,
112+ 		"d" : "d2" ,
113+ 	}
114+ 
115+ 	assert .Equal (t , x , m .Concat (x , m .Empty ()))
116+ 	assert .Equal (t , x , m .Concat (m .Empty (), x ))
117+ 
118+ 	assert .Equal (t , x , m .Concat (x , e ))
119+ 	assert .Equal (t , x , m .Concat (e , x ))
120+ 
121+ 	assert .Equal (t , res , m .Concat (x , y ))
122+ }
0 commit comments