From 2d3e9f13072a17fdafb65127550d5a89bcffcf23 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Wed, 13 Dec 2023 22:58:20 +0100 Subject: [PATCH 1/2] Unit test for IVTable --- .../test/java/org/epics/vtype/VTableTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java diff --git a/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java b/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java new file mode 100644 index 00000000..3e3002a5 --- /dev/null +++ b/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java @@ -0,0 +1,29 @@ +package org.epics.vtype; + +import org.epics.util.array.ArrayDouble; +import org.epics.util.array.ArrayFloat; +import org.epics.util.array.ArrayInteger; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class VTableTest { + + @Test + public void testIVTable() { + VTable vTable = new IVTable(Arrays.asList(VInt.class, VDouble.class), + Arrays.asList("int"), + Arrays.asList(ArrayInteger.of(1, 2, 3), ArrayDouble.of(1.0, 2.0, 3.0), ArrayFloat.of(1.0f, 2.0f, 3.0f))); + + // Assert that column count is based on values data. + assertEquals(3, vTable.getColumnCount()); + + assertEquals(3, vTable.getRowCount()); + assertTrue(vTable.getColumnType(0).isAssignableFrom(VInt.class)); + assertTrue(vTable.getColumnType(1).isAssignableFrom(VDouble.class)); + assertEquals("int", vTable.getColumnName(0)); + } +} From 8dd2a227624b4633c1323de4f1125b8cb75e8d94 Mon Sep 17 00:00:00 2001 From: Kunal Shroff Date: Thu, 14 Dec 2023 14:08:07 -0500 Subject: [PATCH 2/2] expanding vtable unit tests --- .../test/java/org/epics/vtype/VTableTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java b/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java index 3e3002a5..7adf8023 100644 --- a/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java +++ b/epics-vtype/vtype/src/test/java/org/epics/vtype/VTableTest.java @@ -12,8 +12,11 @@ public class VTableTest { + /** + * ignore the types and labels when determining the column count + */ @Test - public void testIVTable() { + public void testIVTableColumnCount() { VTable vTable = new IVTable(Arrays.asList(VInt.class, VDouble.class), Arrays.asList("int"), Arrays.asList(ArrayInteger.of(1, 2, 3), ArrayDouble.of(1.0, 2.0, 3.0), ArrayFloat.of(1.0f, 2.0f, 3.0f))); @@ -26,4 +29,16 @@ public void testIVTable() { assertTrue(vTable.getColumnType(1).isAssignableFrom(VDouble.class)); assertEquals("int", vTable.getColumnName(0)); } + + /** + * NTTables support columns with different row counts, the table should return the max number of rows + */ + @Test + public void testIVTableRowCount() { + VTable vTable = new IVTable(Arrays.asList(), + Arrays.asList("int"), + Arrays.asList(ArrayInteger.of(1, 2, 3), ArrayDouble.of(1.0, 2.0), ArrayFloat.of(1.0f))); + + assertEquals(3, vTable.getRowCount()); + } }