use of com.facebook.presto.verifier.framework.Column in project presto by prestodb.
the class TestChecksumValidator method testMap.
@Test
public void testMap() {
List<Column> columns = ImmutableList.of(MAP_COLUMN);
ChecksumResult controlChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_sum", 3L).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).build());
// Matched
assertTrue(checksumValidator.getMismatchedColumns(columns, controlChecksum, controlChecksum).isEmpty());
// Mismatched map checksum
ChecksumResult testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0x1a })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_sum", 3L).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
// Mismatched keys checksum
testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0x1b })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 3L).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
// Mismatched values checksum
testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0x1c })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 3L).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
// Mismatched cardinality checksum
testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0x1d })).put("map$cardinality_sum", 3L).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
// Mismatched cardinality sum
testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("map$checksum", new SqlVarbinary(new byte[] { 0xa })).put("map$keys_checksum", new SqlVarbinary(new byte[] { 0xb })).put("map$values_checksum", new SqlVarbinary(new byte[] { 0xc })).put("map$cardinality_checksum", new SqlVarbinary(new byte[] { 0xd })).put("map$cardinality_sum", 4L).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, MAP_COLUMN);
}
use of com.facebook.presto.verifier.framework.Column in project presto by prestodb.
the class TestChecksumValidator method testSimple.
@Test
public void testSimple() {
List<Column> columns = ImmutableList.of(BIGINT_COLUMN, VARCHAR_COLUMN);
ChecksumResult controlChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("bigint$checksum", new SqlVarbinary(new byte[] { 0xa })).put("varchar$checksum", new SqlVarbinary(new byte[] { 0xb })).build());
// Matched
assertTrue(checksumValidator.getMismatchedColumns(columns, controlChecksum, controlChecksum).isEmpty());
// Mismatched
ChecksumResult testChecksum = new ChecksumResult(5, ImmutableMap.<String, Object>builder().put("bigint$checksum", new SqlVarbinary(new byte[] { 0x1a })).put("varchar$checksum", new SqlVarbinary(new byte[] { 0x1b })).build());
assertMismatchedColumns(columns, controlChecksum, testChecksum, BIGINT_COLUMN, VARCHAR_COLUMN);
}
Aggregations