@Test public void testStructuralValueConsistentWithEquals() throws Exception { // We know that bi array coders are NOT compatible with equals // (aka injective w.r.t. Object.equals) for (BitSet value1 : TEST_VALUES) { for (BitSet value2 : TEST_VALUES) { CoderProperties.structuralValueConsistentWithEquals(TEST_CODER, value1, value2); } } }
@Test public void testStructuralValueConsistentWithEquals() throws Exception { for (byte[] value1 : TEST_VALUES) { for (byte[] value2 : TEST_VALUES) { CoderProperties.structuralValueConsistentWithEquals(TEST_CODER, value1, value2); } } }
@Test public void testStructuralValueConsistentWithEquals() throws Exception { // We know that byte array coders are NOT compatible with equals // (aka injective w.r.t. Object.equals) for (byte[] value1 : TEST_VALUES) { for (byte[] value2 : TEST_VALUES) { CoderProperties.structuralValueConsistentWithEquals(TEST_CODER, value1, value2); } } }
@Test public void testStructuralValueConsistentWithEquals() throws Exception { CoderProperties.structuralValueConsistentWithEquals(TEST_CODER, null, null); }
/** * Tests that {@link StructuredCoder#structuralValue()} is correct whenever a subclass has a * correct {@link Coder#consistentWithEquals()}. */ @Test public void testStructuralValue() throws Exception { List<Boolean> testBooleans = Arrays.asList(null, true, false); List<ObjectIdentityBoolean> testInconsistentBooleans = Arrays.asList(null, new ObjectIdentityBoolean(true), new ObjectIdentityBoolean(false)); Coder<Boolean> consistentCoder = new NullBooleanCoder(); for (Boolean value1 : testBooleans) { for (Boolean value2 : testBooleans) { CoderProperties.structuralValueConsistentWithEquals(consistentCoder, value1, value2); } } Coder<ObjectIdentityBoolean> inconsistentCoder = new ObjectIdentityBooleanCoder(); for (ObjectIdentityBoolean value1 : testInconsistentBooleans) { for (ObjectIdentityBoolean value2 : testInconsistentBooleans) { CoderProperties.structuralValueConsistentWithEquals(inconsistentCoder, value1, value2); } } }
@Test public void testTimerCoderWithInconsistentWithEqualsPayloadCoder() throws Exception { Coder<Timer<byte[]>> coder = Timer.Coder.of(ByteArrayCoder.of()); CoderProperties.coderSerializable(coder); CoderProperties.structuralValueDecodeEncodeEqual( coder, Timer.of(INSTANT, "ABC".getBytes(UTF_8))); CoderProperties.structuralValueConsistentWithEquals( coder, Timer.of(INSTANT, "ABC".getBytes(UTF_8)), Timer.of(INSTANT, "ABC".getBytes(UTF_8))); }
@Test public void testCoder() throws Exception { RandomAccessData streamA = new RandomAccessData(); streamA.asOutputStream().write(TEST_DATA_A); RandomAccessData streamB = new RandomAccessData(); streamB.asOutputStream().write(TEST_DATA_A); CoderProperties.coderDecodeEncodeEqual(RandomAccessDataCoder.of(), streamA); CoderProperties.coderDeterministic(RandomAccessDataCoder.of(), streamA, streamB); CoderProperties.coderConsistentWithEquals(RandomAccessDataCoder.of(), streamA, streamB); CoderProperties.coderSerializable(RandomAccessDataCoder.of()); CoderProperties.structuralValueConsistentWithEquals( RandomAccessDataCoder.of(), streamA, streamB); assertTrue(RandomAccessDataCoder.of().isRegisterByteSizeObserverCheap(streamA)); assertEquals(4, RandomAccessDataCoder.of().getEncodedElementByteSize(streamA)); }