package mdb import ( "fmt" "reflect" ) func (m *MapIndex[K, T]) Equals(rhs *MapIndex[K, T]) error { return m.EqualsMap(rhs.m) } func (m *MapIndex[K, T]) EqualsMap(data map[K]*T) error { if len(m.m) != len(data) { return fmt.Errorf("Expected %d items, but found %d.", len(data), len(m.m)) } for key, exp := range data { val, ok := m.Get(key) if !ok { return fmt.Errorf("No value for %v. Expected: %v", key, *exp) } if !reflect.DeepEqual(val, *exp) { return fmt.Errorf("Value mismatch %v: %v != %v", key, val, *exp) } } return nil }