@@ -151,10 +151,61 @@ public void ResultWithDiagnosticHasExpectedEqualityBehaviour()
151151 }
152152
153153 [ Fact ]
154- public void EquatableArrayOverridenEqualsComparesAsExpected ( ) {
155- var instance = new EquatableArray < string > ( [ "A" ] ) ;
156- object comparand = new EquatableArray < string > ( [ "A" ] ) ;
154+ public void EquatableArray_PrimitiveComparison ( )
155+ {
156+ int [ ] val1 = [ 1 , 2 , 3 , 4 , 5 ] ;
157+ int [ ] val2 = [ 1 , 2 , 3 , 4 , 5 ] ;
158+
159+ var arr1 = new EquatableArray < int > ( val1 ) ;
160+ var arr2 = new EquatableArray < int > ( val2 ) ;
161+
162+ Assert . True ( arr1 . Equals ( arr2 ) ) ;
163+ }
164+
165+ [ Fact ]
166+ public void EquatableArray_RecordComparison ( )
167+ {
168+ Record [ ] val1 = [ new ( 1 ) , new ( 2 ) , new ( 3 ) , new ( 4 ) , new ( 5 ) ] ;
169+ Record [ ] val2 = [ new ( 1 ) , new ( 2 ) , new ( 3 ) , new ( 4 ) , new ( 5 ) ] ;
170+
171+ var arr1 = new EquatableArray < Record > ( val1 ) ;
172+ var arr2 = new EquatableArray < Record > ( val2 ) ;
173+
174+ Assert . True ( arr1 . Equals ( arr2 ) ) ;
175+ }
176+
177+ [ Fact ]
178+ public void EquatableArray_NestedEquatableArrayComparison ( )
179+ {
180+ EquatableArray < int > [ ] val1 = [ new ( [ 1 ] ) , new ( [ 2 ] ) , new ( [ 3 ] ) , new ( [ 4 ] ) , new ( [ 5 ] ) ] ;
181+ EquatableArray < int > [ ] val2 = [ new ( [ 1 ] ) , new ( [ 2 ] ) , new ( [ 3 ] ) , new ( [ 4 ] ) , new ( [ 5 ] ) ] ;
182+
183+ var arr1 = new EquatableArray < EquatableArray < int > > ( val1 ) ;
184+ var arr2 = new EquatableArray < EquatableArray < int > > ( val2 ) ;
185+
186+ Assert . True ( arr1 . Equals ( arr2 ) ) ;
187+ }
188+
189+ [ Fact ]
190+ public void EquatableArray_BoxedNestedEquatableArrayComparison ( )
191+ {
192+ EquatableArray < int > [ ] val1 = [ new ( [ 1 ] ) , new ( [ 2 ] ) , new ( [ 3 ] ) , new ( [ 4 ] ) , new ( [ 5 ] ) ] ;
193+ EquatableArray < int > [ ] val2 = [ new ( [ 1 ] ) , new ( [ 2 ] ) , new ( [ 3 ] ) , new ( [ 4 ] ) , new ( [ 5 ] ) ] ;
194+
195+ object arr1 = new EquatableArray < EquatableArray < int > > ( val1 ) ;
196+ var arr2 = new EquatableArray < EquatableArray < int > > ( val2 ) ;
197+
198+ Assert . True ( arr1 . Equals ( arr2 ) ) ;
199+ Assert . True ( arr2 . Equals ( arr1 ) ) ;
200+ }
201+
202+ public record Record
203+ {
204+ public Record ( int value )
205+ {
206+ Value = value ;
207+ }
157208
158- Assert . True ( instance . Equals ( comparand ) ) ;
209+ public int Value { get ; }
159210 }
160211}
0 commit comments