You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ke...@apache.org on 2019/03/25 20:39:28 UTC
[beam] branch master updated: [BEAM-3279] Deprecate and remove
Coder.consistentWithEquals (#8071)
This is an automated email from the ASF dual-hosted git repository.
kenn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 43db80d [BEAM-3279] Deprecate and remove Coder.consistentWithEquals (#8071)
43db80d is described below
commit 43db80deca44273716c500520439aaa4e48688b4
Author: Alexander Savchenko <sa...@gmail.com>
AuthorDate: Mon Mar 25 23:39:09 2019 +0300
[BEAM-3279] Deprecate and remove Coder.consistentWithEquals (#8071)
---
.../apache/beam/sdk/coders/BigDecimalCoder.java | 16 ++++-----
.../beam/sdk/coders/BigEndianIntegerCoder.java | 16 ++++-----
.../apache/beam/sdk/coders/BigEndianLongCoder.java | 16 ++++-----
.../beam/sdk/coders/BigEndianShortCoder.java | 16 ++++-----
.../apache/beam/sdk/coders/BigIntegerCoder.java | 16 ++++-----
.../org/apache/beam/sdk/coders/BitSetCoder.java | 5 +--
.../org/apache/beam/sdk/coders/BooleanCoder.java | 11 ++++---
.../java/org/apache/beam/sdk/coders/ByteCoder.java | 16 ++++-----
.../java/org/apache/beam/sdk/coders/Coder.java | 13 +++++---
.../org/apache/beam/sdk/coders/DoubleCoder.java | 16 ++++-----
.../org/apache/beam/sdk/coders/DurationCoder.java | 16 ++++-----
.../org/apache/beam/sdk/coders/FloatCoder.java | 16 ++++-----
.../org/apache/beam/sdk/coders/InstantCoder.java | 16 ++++-----
.../java/org/apache/beam/sdk/coders/RowCoder.java | 11 ++++---
.../apache/beam/sdk/coders/SerializableCoder.java | 5 ---
.../apache/beam/sdk/coders/StringUtf8Coder.java | 6 ++++
.../org/apache/beam/sdk/coders/VarIntCoder.java | 16 ++++-----
.../org/apache/beam/sdk/coders/VarLongCoder.java | 16 ++++-----
.../beam/sdk/coders/BigDecimalCoderTest.java | 8 +++++
.../beam/sdk/coders/BigEndianIntegerCoderTest.java | 8 +++++
.../beam/sdk/coders/BigEndianLongCoderTest.java | 8 +++++
.../beam/sdk/coders/BigIntegerCoderTest.java | 8 +++++
.../apache/beam/sdk/coders/BitSetCoderTest.java | 8 +++++
.../apache/beam/sdk/coders/BooleanCoderTest.java | 37 +++++++++++++++++++++
.../org/apache/beam/sdk/coders/ByteCoderTest.java | 8 +++++
.../apache/beam/sdk/coders/CoderRegistryTest.java | 5 ---
.../apache/beam/sdk/coders/DoubleCoderTest.java | 8 +++++
.../apache/beam/sdk/coders/DurationCoderTest.java | 8 +++++
.../org/apache/beam/sdk/coders/FloatCoderTest.java | 38 ++++++++++++++++++++++
.../apache/beam/sdk/coders/InstantCoderTest.java | 8 +++++
.../org/apache/beam/sdk/coders/KvCoderTest.java | 8 +++++
.../org/apache/beam/sdk/coders/ListCoderTest.java | 22 +++++--------
.../org/apache/beam/sdk/coders/MapCoderTest.java | 22 +++++--------
.../org/apache/beam/sdk/coders/RowCoderTest.java | 11 +++++++
.../beam/sdk/coders/SerializableCoderTest.java | 8 +++++
.../beam/sdk/coders/StringUtf8CoderTest.java | 8 +++++
.../beam/sdk/coders/StructuredCoderTest.java | 10 ------
.../apache/beam/sdk/coders/VarIntCoderTest.java | 8 +++++
.../apache/beam/sdk/coders/VarLongCoderTest.java | 8 +++++
39 files changed, 316 insertions(+), 184 deletions(-)
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
index e705120..5c1fccd 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
@@ -82,16 +82,6 @@ public class BigDecimalCoder extends AtomicCoder<BigDecimal> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, because {@link #getEncodedElementByteSize} runs in constant time.
*/
@Override
@@ -112,4 +102,10 @@ public class BigDecimalCoder extends AtomicCoder<BigDecimal> {
return VAR_INT_CODER.getEncodedElementByteSize(value.scale())
+ BIG_INT_CODER.getEncodedElementByteSize(value.unscaledValue());
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(BigDecimal value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
index 680901a..30918ad 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
@@ -65,16 +65,6 @@ public class BigEndianIntegerCoder extends AtomicCoder<Integer> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, because {@link #getEncodedElementByteSize} runs in constant time.
*/
@Override
@@ -99,4 +89,10 @@ public class BigEndianIntegerCoder extends AtomicCoder<Integer> {
}
return 4;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Integer value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
index c13bacb..158ff8f 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
@@ -65,16 +65,6 @@ public class BigEndianLongCoder extends AtomicCoder<Long> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, since {@link #getEncodedElementByteSize} returns a constant.
*/
@Override
@@ -99,4 +89,10 @@ public class BigEndianLongCoder extends AtomicCoder<Long> {
}
return 8;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Long value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
index 2ea605f..af47d28 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
@@ -65,16 +65,6 @@ public class BigEndianShortCoder extends AtomicCoder<Short> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, because {@link #getEncodedElementByteSize} runs in constant time.
*/
@Override
@@ -99,4 +89,10 @@ public class BigEndianShortCoder extends AtomicCoder<Short> {
}
return 2;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Short value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
index a878e6c..cfbf486 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
@@ -72,16 +72,6 @@ public class BigIntegerCoder extends AtomicCoder<BigInteger> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, because {@link #getEncodedElementByteSize} runs in constant time.
*/
@Override
@@ -99,4 +89,10 @@ public class BigIntegerCoder extends AtomicCoder<BigInteger> {
checkNotNull(value, String.format("cannot encode a null %s", BigInteger.class.getSimpleName()));
return BYTE_ARRAY_CODER.getEncodedElementByteSize(value.toByteArray());
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(BigInteger value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
index 27d8d5b..7dd5abc 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
@@ -63,8 +63,9 @@ public class BitSetCoder extends AtomicCoder<BitSet> {
this, "BitSetCoder requires its ByteArrayCoder to be deterministic.", BYTE_ARRAY_CODER);
}
+ /** {@inheritDoc} */
@Override
- public boolean consistentWithEquals() {
- return true;
+ public Object structuralValue(BitSet value) {
+ return value;
}
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
index e7f7543..a7b6fcf 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
@@ -43,11 +43,6 @@ public class BooleanCoder extends AtomicCoder<Boolean> {
}
@Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- @Override
public boolean isRegisterByteSizeObserverCheap(Boolean value) {
return true;
}
@@ -56,4 +51,10 @@ public class BooleanCoder extends AtomicCoder<Boolean> {
protected long getEncodedElementByteSize(Boolean value) throws Exception {
return 1;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Boolean value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
index 08a7cb6..cd735f1 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
@@ -74,16 +74,6 @@ public class ByteCoder extends AtomicCoder<Byte> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. {@link ByteCoder#getEncodedElementByteSize} returns a constant.
*/
@Override
@@ -108,4 +98,10 @@ public class ByteCoder extends AtomicCoder<Byte> {
}
return 1;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Byte value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
index 1ba5537..40ec138 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
@@ -210,15 +210,20 @@ public abstract class Coder<T> implements Serializable {
/**
* Returns {@code true} if this {@link Coder} is injective with respect to {@link Objects#equals}.
*
+ * <p>By default, returns false, assuming that the encoding may differ from {@link Objects#equals}
+ * in arbitrary ways.
+ *
* <p>Whenever the encoded bytes of two values are equal, then the original values are equal
* according to {@code Objects.equals()}. Note that this is well-defined for {@code null}.
*
- * <p>This condition is most notably false for arrays. More generally, this condition is false
- * whenever {@code equals()} compares object identity, rather than performing a
- * semantic/structural comparison.
+ * <p>This condition is most notably false for arrays, where encoded equality does not correspond
+ * to Java equality. More generally, this condition is false whenever {@code equals()} compares
+ * object identity, rather than performing a semantic/structural comparison.
*
- * <p>By default, returns false.
+ * @deprecated For coders that are injective with respect to {@link Objects#equals}, override
+ * {@link #structuralValue(Object)} to return the input element directly.
*/
+ @Deprecated
public boolean consistentWithEquals() {
return false;
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
index 7cc9dd2..ba9130e 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
@@ -75,16 +75,6 @@ public class DoubleCoder extends AtomicCoder<Double> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. {@link DoubleCoder#getEncodedElementByteSize} returns a constant.
*/
@Override
@@ -109,4 +99,10 @@ public class DoubleCoder extends AtomicCoder<Double> {
}
return 8;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Double value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
index 3ddc4ee..1b56677 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
@@ -75,16 +75,6 @@ public class DurationCoder extends AtomicCoder<ReadableDuration> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}, because it is cheap to ascertain the byte size of a long.
*/
@Override
@@ -102,4 +92,10 @@ public class DurationCoder extends AtomicCoder<ReadableDuration> {
public TypeDescriptor<ReadableDuration> getEncodedTypeDescriptor() {
return TYPE_DESCRIPTOR;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(ReadableDuration value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
index b131c4e..b320193 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
@@ -75,16 +75,6 @@ public class FloatCoder extends AtomicCoder<Float> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. {@link FloatCoder#getEncodedElementByteSize} returns a constant.
*/
@Override
@@ -109,4 +99,10 @@ public class FloatCoder extends AtomicCoder<Float> {
}
return 4;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Float value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
index 2a94f07..8d93f58 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
@@ -85,16 +85,6 @@ public class InstantCoder extends AtomicCoder<Instant> {
/**
* {@inheritDoc}
*
- * @return {@code true}. This coder is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. The byte size for a big endian long is a constant.
*/
@Override
@@ -114,4 +104,10 @@ public class InstantCoder extends AtomicCoder<Instant> {
public TypeDescriptor<Instant> getEncodedTypeDescriptor() {
return TYPE_DESCRIPTOR;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Instant value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
index c4f753f..d8f4ef9 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
@@ -134,11 +134,6 @@ public class RowCoder extends CustomCoder<Row> {
Coder.verifyDeterministic(this, "All fields must have deterministic encoding", coders);
}
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
/** Returns the coder used for a given primitive type. */
public static <T> Coder<T> coderForFieldType(FieldType fieldType) {
switch (fieldType.getTypeName()) {
@@ -203,4 +198,10 @@ public class RowCoder extends CustomCoder<Row> {
return ESTIMATED_FIELD_SIZES.get(typeDescriptor.getTypeName());
}
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Row value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
index ea84dbd..d682345 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
@@ -72,11 +72,6 @@ public class SerializableCoder<T extends Serializable> extends CustomCoder<T> {
return new SerializableCoder<>(clazz, type);
}
- @Override
- public boolean consistentWithEquals() {
- return false;
- }
-
/**
* The structural value of the object is the object itself. The {@link SerializableCoder} should
* be only used for objects with a proper {@link Object#equals} implementation.
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
index 4414cb3..cb52c9c 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
@@ -138,4 +138,10 @@ public class StringUtf8Coder extends AtomicCoder<String> {
int size = Utf8.encodedLength(value);
return (long) VarInt.getLength(size) + size;
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(String value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
index c16ed77..0bde3ae 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
@@ -68,16 +68,6 @@ public class VarIntCoder extends AtomicCoder<Integer> {
/**
* {@inheritDoc}
*
- * @return {@code true}. {@link VarIntCoder} is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. {@link #getEncodedElementByteSize} is cheap.
*/
@Override
@@ -97,4 +87,10 @@ public class VarIntCoder extends AtomicCoder<Integer> {
}
return VarInt.getLength(value.longValue());
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Integer value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
index c739253..14fb1c1 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
@@ -74,16 +74,6 @@ public class VarLongCoder extends StructuredCoder<Long> {
/**
* {@inheritDoc}
*
- * @return {@code true}. {@link VarLongCoder} is injective.
- */
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
* @return {@code true}. {@link #getEncodedElementByteSize} is cheap.
*/
@Override
@@ -103,4 +93,10 @@ public class VarLongCoder extends StructuredCoder<Long> {
}
return VarInt.getLength(value);
}
+
+ /** {@inheritDoc} */
+ @Override
+ public Object structuralValue(Long value) {
+ return value;
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
index 4acc0bc..78ebad6 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.math.BigDecimal;
@@ -113,4 +114,11 @@ public class BigDecimalCoderTest {
CoderUtils.encodeToBase64(TEST_CODER, null);
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ BigDecimal expected = new BigDecimal(123.23);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
index b9730ad..7fc07e4 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -75,4 +76,11 @@ public class BigEndianIntegerCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Integer.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Integer expected = 223;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
index 873cac8..d7b1de5 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -97,4 +98,11 @@ public class BigEndianLongCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Long.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Long expected = 223L;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
index 37ce59d..4d51f51 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.math.BigInteger;
@@ -88,4 +89,11 @@ public class BigIntegerCoderTest {
CoderUtils.encodeToBase64(TEST_CODER, null);
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ BigInteger expected = BigInteger.valueOf(223L);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
index 7d87303..c3c9f3a 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -98,4 +99,11 @@ public class BitSetCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(BitSet.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ BitSet expected = BitSet.valueOf(new byte[] {0xd, 0x3});
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java
new file mode 100644
index 0000000..d598cb8
--- /dev/null
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.sdk.coders;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Tests for {@link BooleanCoder}. */
+@RunWith(JUnit4.class)
+public class BooleanCoderTest {
+ private static final Coder<Boolean> TEST_CODER = BooleanCoder.of();
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Boolean expected = Boolean.TRUE;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
+}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
index ad11eb8..77a3784 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -74,4 +75,11 @@ public class ByteCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Byte.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Byte expected = 2;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
index 3f9d917..d5427f6 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
@@ -384,11 +384,6 @@ public class CoderRegistryTest {
public void verifyDeterministic() {}
@Override
- public boolean consistentWithEquals() {
- return true;
- }
-
- @Override
public Object structuralValue(MyValue value) {
return value;
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
index 3e7dd4a..a4ed39c 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -99,4 +100,11 @@ public class DoubleCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Double.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Double expected = 23.32;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
index 9959452..5287466 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -86,4 +87,11 @@ public class DurationCoderTest {
assertThat(
TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(ReadableDuration.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ ReadableDuration expected = Duration.millis(3_000);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java
new file mode 100644
index 0000000..5d71480
--- /dev/null
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.sdk.coders;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Tests for {@link FloatCoder}. */
+@RunWith(JUnit4.class)
+public class FloatCoderTest {
+
+ private static final Coder<Float> TEST_CODER = FloatCoder.of();
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Float expected = 23.45F;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
+}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
index ec00fb5..e70dfb0 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
@@ -113,4 +114,11 @@ public class InstantCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Instant.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Instant expected = new Instant(234L);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
index 3d75eb2..8e860f7 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -128,4 +129,11 @@ public class KvCoderTest {
new TypeDescriptor<KV<String, Integer>>() {};
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ KV<String, Integer> expected = KV.of("test", 10);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
index e793e40..daeaa3f 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
@@ -17,9 +17,8 @@
*/
package org.apache.beam.sdk.coders;
-import static junit.framework.TestCase.assertTrue;
import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
@@ -120,20 +119,15 @@ public class ListCoderTest {
}
@Test
- public void testNotConsistentWithEquals() {
- ListCoder<byte[]> coder = ListCoder.of(ByteArrayCoder.of());
- assertFalse(coder.consistentWithEquals());
- }
-
- @Test
- public void testConsistentWithEquals() {
- ListCoder<Integer> coder = ListCoder.of(VarIntCoder.of());
- assertTrue(coder.consistentWithEquals());
- }
-
- @Test
public void testEncodedTypeDescriptor() throws Exception {
TypeDescriptor<List<Integer>> typeDescriptor = new TypeDescriptor<List<Integer>>() {};
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValueForConsistType() {
+ List<Integer> expected = Arrays.asList(1, 2, 3, 4);
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
index 74dfa7b..33dbc38 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
@@ -18,9 +18,8 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
@@ -94,21 +93,16 @@ public class MapCoderTest {
}
@Test
- public void testNotConsistentWithEquals() {
- MapCoder<Integer, byte[]> coder = MapCoder.of(VarIntCoder.of(), ByteArrayCoder.of());
- assertFalse(coder.consistentWithEquals());
- }
-
- @Test
- public void testConsistentWithEquals() {
- MapCoder<Integer, Integer> coder = MapCoder.of(VarIntCoder.of(), VarIntCoder.of());
- assertTrue(coder.consistentWithEquals());
- }
-
- @Test
public void testEncodedTypeDescriptor() throws Exception {
TypeDescriptor<Map<Integer, String>> typeDescriptor =
new TypeDescriptor<Map<Integer, String>>() {};
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValueForConsistsType() {
+ Map<Integer, String> expected = Collections.singletonMap(10, "test");
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
index f0d814c..4734b7d 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
@@ -17,6 +17,8 @@
*/
package org.apache.beam.sdk.coders;
+import static org.junit.Assert.assertEquals;
+
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
@@ -235,4 +237,13 @@ public class RowCoderTest {
Row row = Row.withSchema(schema).addValue(Collections.singletonMap(1, null)).build();
CoderProperties.coderDecodeEncodeEqual(RowCoder.of(schema), row);
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Schema schema = Schema.builder().addField("field", FieldType.INT32).build();
+ Row expected = Row.withSchema(schema).addValue(2123).build();
+ Coder<Row> rowCoder = RowCoder.of(schema);
+ Object actual = rowCoder.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
index 70817c0..cae9392 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
@@ -360,4 +360,12 @@ public class SerializableCoderTest implements Serializable {
coder.encode("", outputStream);
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Coder<String> coder = SerializableCoder.of(String.class);
+ String expected = "serTest";
+ Object actual = coder.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
index d85f2d5..e9ee769 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -87,4 +88,11 @@ public class StringUtf8CoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(String.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ String expected = "testStructuralValue";
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
index 396e272..ca2e7cc 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
@@ -75,11 +75,6 @@ public class StructuredCoderTest {
@Override
public void verifyDeterministic() throws NonDeterministicException {}
-
- @Override
- public boolean consistentWithEquals() {
- return true;
- }
}
/** A boxed {@code int} with {@code equals()} that compares object identity. */
@@ -133,11 +128,6 @@ public class StructuredCoderTest {
@Override
public void verifyDeterministic() throws NonDeterministicException {}
-
- @Override
- public boolean consistentWithEquals() {
- return false;
- }
}
/**
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
index 718c9b6..d111bcd 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -74,4 +75,11 @@ public class VarIntCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Integer.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Integer expected = 2239;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
index ca84262..8e538b7 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.coders;
import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.util.Arrays;
@@ -97,4 +98,11 @@ public class VarLongCoderTest {
public void testEncodedTypeDescriptor() throws Exception {
assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(TypeDescriptor.of(Long.class)));
}
+
+ @Test
+ public void testStructuralValueReturnTheSameValue() {
+ Long expected = 223L;
+ Object actual = TEST_CODER.structuralValue(expected);
+ assertEquals(expected, actual);
+ }
}