diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-03-21 11:25:08 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-03-21 11:25:08 +0000 |
| commit | 4ebb6355bd2481e844d07a649dce3daa2b9fa881 (patch) | |
| tree | 9fda5411800a34f51befe3c0447fe00cf29940cf /src/test/java | |
| parent | 31a0498b5479163e399ba76b1ca8dee15e7a3bbe (diff) | |
Serialize Patio data layouts to Protobuf
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java b/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java new file mode 100644 index 00000000..877d59cf --- /dev/null +++ b/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java @@ -0,0 +1,101 @@ +package org.shedlang.compiler.patio.protobuf; + +import org.junit.jupiter.api.Test; +import org.shedlang.compiler.patio.types.PatioDataLayouts; + +import java.util.List; + +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.equalTo; + +public class PatioToProtobufTests { + // == Data layouts == + + @Test + public void canSerializeDataLayoutArray() { + var layout = PatioDataLayouts.array(PatioDataLayouts.INT, 4); + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutBool() { + var layout = PatioDataLayouts.BOOL; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutByte() { + var layout = PatioDataLayouts.BYTE; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutDataPtr() { + var layout = PatioDataLayouts.DATA_PTR; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutFunctionPtr() { + var layout = PatioDataLayouts.FUNCTION_PTR; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutInt() { + var layout = PatioDataLayouts.INT; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutInt32() { + var layout = PatioDataLayouts.INT32; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutStruct() { + var layout = PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE)); + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } +} |
