MCPcopy Create free account
hub / github.com/benbjohnson/immutable / Validate

Method Validate

immutable_test.go:334–361  ·  view source on GitHub ↗

Validate returns an error if the slice and List are different.

()

Source from the content-addressed store, hash-verified

332
333// Validate returns an error if the slice and List are different.
334func (l *TList) Validate() error {
335 if got, exp := l.im.Len(), len(l.std); got != exp {
336 return fmt.Errorf("Len()=%v, expected %d", got, exp)
337 } else if got, exp := l.builder.Len(), len(l.std); got != exp {
338 return fmt.Errorf("Len()=%v, expected %d", got, exp)
339 }
340
341 for i := range l.std {
342 if got, exp := l.im.Get(i), l.std[i]; got != exp {
343 return fmt.Errorf("Get(%d)=%v, expected %v", i, got, exp)
344 } else if got, exp := l.builder.Get(i), l.std[i]; got != exp {
345 return fmt.Errorf("Builder.List/Get(%d)=%v, expected %v", i, got, exp)
346 }
347 }
348
349 if err := l.validateForwardIterator("basic", l.im.Iterator()); err != nil {
350 return err
351 } else if err := l.validateBackwardIterator("basic", l.im.Iterator()); err != nil {
352 return err
353 }
354
355 if err := l.validateForwardIterator("builder", l.builder.Iterator()); err != nil {
356 return err
357 } else if err := l.validateBackwardIterator("builder", l.builder.Iterator()); err != nil {
358 return err
359 }
360 return nil
361}
362
363func (l *TList) validateForwardIterator(typ string, itr *ListIterator[int]) error {
364 for i := range l.std {

Callers 1

TestListFunction · 0.95

Calls 5

LenMethod · 0.45
GetMethod · 0.45
IteratorMethod · 0.45

Tested by

no test coverage detected