apple2-image-encoder/src/test/java/a2geek/apple2/image/encoder/encode/PackBitsEncoderTest.java

44 lines
1.2 KiB
Java

package a2geek.apple2.image.encoder.encode;
import a2geek.apple2.image.encoder.encode.PackBitsEncoder;
/**
* Exercise the PackBitsEncoder
*
* @author a2geek@users.noreply.github.com
* @see a2geek.apple2.image.encoder.encode.PackBitsEncoder;
* @see a2geek.apple2.image.encoder.encode.EncoderTestCase;
*/
public class PackBitsEncoderTest extends EncoderTestCase {
/**
* Test the PackBitsEncoder with the given input and output.
*/
protected void test(String input, String output) {
byte[] data = toBytes(input);
byte[] answer = toBytes(output);
PackBitsEncoder e = new PackBitsEncoder();
e.encode(data, 100);
byte[] result = e.getData();
assertEquals(answer.length, e.getSize());
assertEquals(answer, result);
}
public void testNoRuns() {
test("01020304", "0301020304");
}
public void testOneByteRun() {
test(repeat("12",10), "F712");
}
public void testTwoByteRun() {
test(repeat("5566",6), "0b" + repeat("5566",6));
}
public void testMixedData() {
test("1122" + repeat("55",25) + "3344", "011122e855013344");
}
public void testFromAppleSite() {
test("AAAAAA80002AAAAAAAAA80002A22AAAAAAAAAAAAAAAAAAAA",
"FEAA0280002AFDAA0380002A22F7AA");
}
}