aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/io/trygvis/btree/BtreeMapTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/io/trygvis/btree/BtreeMapTest.java')
-rw-r--r--src/test/java/io/trygvis/btree/BtreeMapTest.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/java/io/trygvis/btree/BtreeMapTest.java b/src/test/java/io/trygvis/btree/BtreeMapTest.java
new file mode 100644
index 0000000..3c771a8
--- /dev/null
+++ b/src/test/java/io/trygvis/btree/BtreeMapTest.java
@@ -0,0 +1,45 @@
+package io.trygvis.btree;
+
+import org.junit.Test;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+
+import static io.trygvis.btree.Bits.intFromBytes;
+import static io.trygvis.btree.HeapTest.Person.randomPerson;
+import static io.trygvis.btree.TestUtils.deleteFile;
+
+public class BtreeMapTest {
+
+ @Test
+ public void testBasic() throws Exception {
+ File f = new File("target/btreemap");
+ BtreeMap<Integer, HeapTest.Person> map = new BtreeMap<>(new BtreeFile(new HeapFile(128, deleteFile(f)), 4), new IntegerSerializer(), new PersonSerializer());
+
+ map.put(1, randomPerson());
+ }
+
+ private static class IntegerSerializer implements BtreeMap.Serializer<Integer> {
+ @Override
+ public byte[] toBytes(Integer integer) {
+ return Bits.toBytes(integer);
+ }
+
+ @Override
+ public Integer fromBytes(byte[] bytes) {
+ return intFromBytes(bytes);
+ }
+ }
+
+ private static class PersonSerializer implements BtreeMap.Serializer<HeapTest.Person> {
+ @Override
+ public byte[] toBytes(HeapTest.Person person) {
+ return person.toBytes();
+ }
+
+ @Override
+ public HeapTest.Person fromBytes(byte[] bytes) {
+ return HeapTest.Person.fromBytes(ByteBuffer.wrap(bytes));
+ }
+ }
+}