public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("actual decoding window:=")
                .append(getWindow())
                .append(System.getProperty("line.separator"));
        sb.append("window size (32Kb through 2Mb):=")
                .append(getWindowSize())
                .append(System.getProperty("line.separator"));
        sb.append("current offset within the window:=")
                .append(getWindowPosition())
                .append(System.getProperty("line.separator"));
        sb.append("number of main tree elements:=")
                .append(getMainTreeElements())
                .append(System.getProperty("line.separator"));
        sb.append("have we started decoding at all yet?:=")
                .append(getHadStarted())
                .append(System.getProperty("line.separator"));
        sb.append("type of this block:=")
                .append(getBlockType())
                .append(System.getProperty("line.separator"));
        sb.append("uncompressed length of this block:=")
                .append(getBlockLength())
                .append(System.getProperty("line.separator"));
        sb.append("uncompressed bytes still left to decode:=")
                .append(getBlockRemaining())
                .append(System.getProperty("line.separator"));
        sb.append("the number of CFDATA blocks processed:=")
                .append(getFramesRead())
                .append(System.getProperty("line.separator"));
        sb.append("magic header value used for transform:=")
                .append(getIntelFileSize())
                .append(System.getProperty("line.separator"));
        sb.append("current offset in transform space:=")
                .append(getIntelCurrentPossition())
                .append(System.getProperty("line.separator"));
        sb.append("have we seen any translatable data yet?:=")
                .append(getIntelState())
                .append(System.getProperty("line.separator"));
        sb.append("R0 for the LRU offset system:=")
                .append(getR0())
                .append(System.getProperty("line.separator"));
        sb.append("R1 for the LRU offset system:=")
                .append(getR1())
                .append(System.getProperty("line.separator"));
        sb.append("R2 for the LRU offset system:=")
                .append(getR2())
                .append(System.getProperty("line.separator"));
        sb.append("main tree length:=")
                .append(getMainTreeLengtsTable().length)
                .append(System.getProperty("line.separator"));
        sb.append("secondary tree length:=")
                .append(getLengthTreeLengtsTable().length)
                .append(System.getProperty("line.separator"));
        return sb.toString();
    }
@Test
    public void testToString() throws TikaException {
        if (chmLzxState == null) {
            testChmLzxStateConstructor();
        }
        assertTrue(chmLzxState.toString().length() > 20);
    }