| 132 | } |
| 133 | |
| 134 | func CompareValues(t testing.TB, valuesExpected []super.Value, valuesActual []super.Value) { |
| 135 | t.Logf("comparing: len(expected)=%v vs len(actual)=%v", len(valuesExpected), len(valuesActual)) |
| 136 | for i := range valuesExpected { |
| 137 | if i >= len(valuesActual) { |
| 138 | t.Errorf("missing value: expected[%v].Bytes()=%v", i, valuesExpected[i].Bytes()) |
| 139 | t.Errorf("missing value: expected[%v]=%v", i, sup.String(&valuesExpected[i])) |
| 140 | continue |
| 141 | } |
| 142 | valueExpected := valuesExpected[i] |
| 143 | valueActual := valuesActual[i] |
| 144 | t.Logf("comparing: expected[%v]=%v vs actual[%v]=%v", i, sup.String(&valueExpected), i, sup.String(&valueActual)) |
| 145 | if !bytes.Equal(super.EncodeTypeValue(valueExpected.Type()), super.EncodeTypeValue(valueActual.Type())) { |
| 146 | t.Errorf("values have different types: %v vs %v", valueExpected.Type(), valueActual.Type()) |
| 147 | } |
| 148 | if !bytes.Equal(valueExpected.Bytes(), valueActual.Bytes()) { |
| 149 | t.Errorf("values have different BSUP bytes: %v vs %v", valueExpected.Bytes(), valueActual.Bytes()) |
| 150 | } |
| 151 | } |
| 152 | for i := range valuesActual[len(valuesExpected):] { |
| 153 | t.Errorf("extra value: actual[%v].Bytes()=%v", i, valuesActual[i].Bytes()) |
| 154 | t.Errorf("extra value: actual[%v]=%v", i, sup.String(&valuesActual[i])) |
| 155 | } |
| 156 | } |
| 157 | |
| 158 | func GenValues(b *bytes.Reader, context *super.Context, types []super.Type) []super.Value { |
| 159 | var values []super.Value |