class Btree {

    public Database getDb() {
        return db;
    }

}

class TestBtree {

    @Rule
    public TemporaryFolder folder;
    static final Random random;

    @Test
    public void testHugeValues() throws Exception {

        byte[] keyBytes = randomBytes(16);
        Btree btree = buildBtree(keyBytes);

        int n = 30;

        for (int i = 1; i <= n; i++) {
            byte[] key = Integer.toString(i).getBytes();
            byte[] value = buildBytes(i * 10000);
            put(btree, key, value);
        }

        for (int i = 1; i <= n; i++) {
            byte[] key = Integer.toString(i).getBytes();
            byte[] actual = get(btree, key);
            byte[] expected = buildBytes(i * 10000);
            Assert.assertArrayEquals(expected, actual);
        }

        System.out.println(btree.getDb().getPageStore().debugDump());
        Assert.assertTrue(btree.getDb().getPageStore().debugIsIdle().or(true));
    }

}