From 8240cd46247714013e85be31e6a059ebdfdb4b9f Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 23 May 2024 12:12:35 -0400 Subject: [PATCH] Added length and toByteArray methods to PGbit --- src/main/java/com/pgvector/PGbit.java | 18 ++++++++++++++++++ src/test/java/com/pgvector/PGbitTest.java | 16 ++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/pgvector/PGbit.java b/src/main/java/com/pgvector/PGbit.java index 39460ca..21c176c 100644 --- a/src/main/java/com/pgvector/PGbit.java +++ b/src/main/java/com/pgvector/PGbit.java @@ -112,6 +112,24 @@ public void toBytes(byte[] bytes, int offset) { } } + /** + * Returns the length + * + * @return an array + */ + public int length() { + return length; + } + + /** + * Returns a byte array + * + * @return an array + */ + public byte[] toByteArray() { + return data; + } + /** * Returns an array * diff --git a/src/test/java/com/pgvector/PGbitTest.java b/src/test/java/com/pgvector/PGbitTest.java index 11c1f85..9588470 100644 --- a/src/test/java/com/pgvector/PGbitTest.java +++ b/src/test/java/com/pgvector/PGbitTest.java @@ -11,19 +11,23 @@ public class PGbitTest { @Test void testArrayConstructor() { - PGbit vec = new PGbit(new boolean[] {true, false, true}); - assertArrayEquals(new boolean[] {true, false, true}, vec.toArray()); + PGbit vec = new PGbit(new boolean[] {false, true, false, true, false, false, false, false, true}); + assertEquals(9, vec.length()); + assertArrayEquals(new byte[] {(byte) 0b01010000, (byte) 0b10000000}, vec.toByteArray()); + assertArrayEquals(new boolean[] {false, true, false, true, false, false, false, false, true}, vec.toArray()); } @Test void testStringConstructor() throws SQLException { - PGbit vec = new PGbit("101"); - assertArrayEquals(new boolean[] {true, false, true}, vec.toArray()); + PGbit vec = new PGbit("010100001"); + assertEquals(9, vec.length()); + assertArrayEquals(new byte[] {(byte) 0b01010000, (byte) 0b10000000}, vec.toByteArray()); + assertArrayEquals(new boolean[] {false, true, false, true, false, false, false, false, true}, vec.toArray()); } @Test void testGetValue() { - PGbit vec = new PGbit(new boolean[] {true, false, true}); - assertEquals("101", vec.getValue()); + PGbit vec = new PGbit(new boolean[] {false, true, false, true, false, false, false, false, true}); + assertEquals("010100001", vec.getValue()); } }