Rev 3680 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2008 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: 30-Nov-2008
*/
package uk.me.parabola.imgfmt.app;
import org.junit.Test;
import static org.junit.Assert.*;
public class BitReaderTest {
/**
* Very simple test that the bit reader is working.
*/
@Test
public void testGetBits() {
// Add your code here
BitReader br = new BitReader(new byte[]{
(byte) 0xf1, 0x73, (byte) 0xc2, 0x5
});
assertTrue("first bit", br.get1());
assertEquals("five bits", 0x18, br.get(5));
assertEquals("four bits", 0xf, br.get(4));
assertEquals("sixteen bits", 0x709c, br.get(16));
}
@Test
public void testSpecialNegative() {
BitReader br = new BitReader(new byte[]{0x24, 0xb});
int s = br.sget2(3);
assertEquals(-12, s);
}
@Test
public void testSpecialNegative2() {
BitReader br = new BitReader(new byte[]{0x2c, 0x0});
int s = br.sget2(3);
assertEquals(-6, s);
}
@Test
public void testSpecialPositive() {
BitReader br = new BitReader(new byte[]{(byte) 0xa4, 0});
int s = br.sget2(3);
assertEquals(8, s);
}
@Test
public void testWriteRead() {
for (int i = -20; i <= 20; i++){
BitWriter bw = new BitWriter();
bw.sputn(i,3);
BitReader br = new BitReader(bw.getBytes());
int s = br.sget2(3);
assertEquals(i, s);
}
}
}