    @Test
    public void test() throws IOException {

        
        @SuppressWarnings("unused")
        TestInstance tt = new TestInstance();
        
        HeapImage hi = HeapUnit.captureHeap();
        
        System.out.println("String count: " + hi.instanceCount(String.class));
        Assert.assertTrue(hi.instanceCount(String.class) > 0);

        System.out.println("List count: " + hi.instanceCount(List.class));
        Assert.assertTrue(hi.instanceCount(List.class) > 0);

        System.out.println("TestInstance count: " + hi.instanceCount(TestInstance.class));
        assertEquals(1, hi.instanceCount(TestInstance.class));

        System.out.println("(**$TestInstance) count: " + hi.instanceCount("(**$TestInstance)"));
        assertEquals(1, hi.instanceCount("(**$TestInstance)"));
        
        System.out.println("char[] count: " + hi.instanceCount(char[].class));
        Assert.assertTrue(hi.instanceCount(char[].class) > 0);

        System.out.println("Object[] count: " + hi.instanceCount(Object[].class));
        Assert.assertTrue(hi.instanceCount(Object[].class) > 0);
        
        TestInstance t2 = hi.rehydrateFirst("(**$TestInstance)");
        
        System.out.println(t2);
        
        HeapInstance ti = hi.instance("(**$TestInstance)");
        
        assertEquals(true, ti.value("bval"));
        assertEquals(10, ti.value("ival"));
        assertEquals(1.1d, ti.value("dval"));
    }