For the testing framework, I need to have it so the tests and subtests can be fragmented and run individually. So the task for testing would return what this test is called and any of the sub-tests. Then I can modify it so that instead of just a group of tests, just a specific test can be run instead. I would have to change the string which tests for checking and place it within a smarter class, which can check a given test and its sub-test to determine if it should be ran or not.


However, currently my inflate algorithm is not working as correctly as it should be:


Either the input really reads that or the output is not correct.


Likely the input is not being read correctly.


Appears the issue may be with the input stream. At the end of the data stream there is 0b 49 2d 2e c9 cc <00> however the compressed code is 0b492d2ec9cc4b0f815000 which means that some zeros are being placed when they should not be.


Actually it is likely that the read count returned is either incorrect on pipe input or it is not used at all.


Yes, the number of bytes input are completely ignored, so that needs to change.


The input bits when read as MSB were shifted off by one, this has been corrected.


Now I must figure out why the input bits are not being appended properly when space runs out.


Appears the resize marker is not being hit, need to fix that.


The DynamicByteBuffer bulk removal is incorrect, it does not take the current position into account when availability is calculated.


The wrong variable was used.


And now it works, so time to remove the debug printing code.


Removing the requirement of the boolean based queue, the speed of decompression appears to be slighly faster but not by much.


Thinking about my optimizer, I can optimize for cases where System.out for example is printed all the time. Well I am planning on doing that already, that if a field is final (and potentially static) it will just use the same value and cache it. In these cases however, the basic block must not be split at the getstatic. getfield will be a little bit more complex.


The test interface caller also does not require the sub-test name to be passed since it is set beforehand. I just need to migrate all of the tests to the new interface.


I should probably put down a document for a logo/mascot that this software would use.