At last update to JUnit 4.x
[zxing.git] / core / test / src / com / google / zxing / qrcode / encoder / BitVectorTestCase.java
index 05abfd6..41930c0 100644 (file)
 
 package com.google.zxing.qrcode.encoder;
 
-import junit.framework.TestCase;
+import com.google.zxing.common.BitArray;
+import org.junit.Assert;
+import org.junit.Test;
 
 /**
  * @author satorux@google.com (Satoru Takabayashi) - creator
  * @author dswitkin@google.com (Daniel Switkin) - ported from C++
  */
-public class BitVectorTestCase extends TestCase {
+public class BitVectorTestCase extends Assert {
 
-  private static int getUnsignedByte(BitVector v, int index) {
-    return v.getArray()[index] & 0xff;
+  private static long getUnsignedInt(BitArray v, int index) {
+    long result = 0L;
+    for (int i = 0, offset = index << 3; i < 32; i++) {
+      if (v.get(offset + i)) {
+        result |= 1L << (31 - i);
+      }
+    }
+    return result;
   }
 
+  @Test
   public void testAppendBit() {
-    BitVector v = new BitVector();
-    assertEquals(0, v.sizeInBytes());
+    BitArray v = new BitArray();
+    assertEquals(0, v.getSizeInBytes());
     // 1
-    v.appendBit(1);
-    assertEquals(1, v.size());
-    assertEquals(0x80, getUnsignedByte(v, 0));
+    v.appendBit(true);
+    assertEquals(1, v.getSize());
+    assertEquals(0x80000000L, getUnsignedInt(v, 0));
     // 10
-    v.appendBit(0);
-    assertEquals(2, v.size());
-    assertEquals(0x80, getUnsignedByte(v, 0));
+    v.appendBit(false);
+    assertEquals(2, v.getSize());
+    assertEquals(0x80000000L, getUnsignedInt(v, 0));
     // 101
-    v.appendBit(1);
-    assertEquals(3, v.size());
-    assertEquals(0xa0, getUnsignedByte(v, 0));
+    v.appendBit(true);
+    assertEquals(3, v.getSize());
+    assertEquals(0xa0000000L, getUnsignedInt(v, 0));
     // 1010
-    v.appendBit(0);
-    assertEquals(4, v.size());
-    assertEquals(0xa0, getUnsignedByte(v, 0));
+    v.appendBit(false);
+    assertEquals(4, v.getSize());
+    assertEquals(0xa0000000L, getUnsignedInt(v, 0));
     // 10101
-    v.appendBit(1);
-    assertEquals(5, v.size());
-    assertEquals(0xa8, getUnsignedByte(v, 0));
+    v.appendBit(true);
+    assertEquals(5, v.getSize());
+    assertEquals(0xa8000000L, getUnsignedInt(v, 0));
     // 101010
-    v.appendBit(0);
-    assertEquals(6, v.size());
-    assertEquals(0xa8, getUnsignedByte(v, 0));
+    v.appendBit(false);
+    assertEquals(6, v.getSize());
+    assertEquals(0xa8000000L, getUnsignedInt(v, 0));
     // 1010101
-    v.appendBit(1);
-    assertEquals(7, v.size());
-    assertEquals(0xaa, getUnsignedByte(v, 0));
+    v.appendBit(true);
+    assertEquals(7, v.getSize());
+    assertEquals(0xaa000000L, getUnsignedInt(v, 0));
     // 10101010
-    v.appendBit(0);
-    assertEquals(8, v.size());
-    assertEquals(0xaa, getUnsignedByte(v, 0));
+    v.appendBit(false);
+    assertEquals(8, v.getSize());
+    assertEquals(0xaa000000L, getUnsignedInt(v, 0));
     // 10101010 1
-    v.appendBit(1);
-    assertEquals(9, v.size());
-    assertEquals(0xaa, getUnsignedByte(v, 0));
-    assertEquals(0x80, getUnsignedByte(v, 1));
+    v.appendBit(true);
+    assertEquals(9, v.getSize());
+    assertEquals(0xaa800000L, getUnsignedInt(v, 0));
     // 10101010 10
-    v.appendBit(0);
-    assertEquals(10, v.size());
-    assertEquals(0xaa, getUnsignedByte(v, 0));
-    assertEquals(0x80, getUnsignedByte(v, 1));
+    v.appendBit(false);
+    assertEquals(10, v.getSize());
+    assertEquals(0xaa800000L, getUnsignedInt(v, 0));
   }
 
+  @Test
   public void testAppendBits() {
     {
-      BitVector v = new BitVector();
+      BitArray v = new BitArray();
       v.appendBits(0x1, 1);
-      assertEquals(1, v.size());
-      assertEquals(0x80, getUnsignedByte(v, 0));
+      assertEquals(1, v.getSize());
+      assertEquals(0x80000000L, getUnsignedInt(v, 0));
     }
     {
-      BitVector v = new BitVector();
+      BitArray v = new BitArray();
       v.appendBits(0xff, 8);
-      assertEquals(8, v.size());
-      assertEquals(0xff, getUnsignedByte(v, 0));
+      assertEquals(8, v.getSize());
+      assertEquals(0xff000000L, getUnsignedInt(v, 0));
     }
     {
-      BitVector v = new BitVector();
+      BitArray v = new BitArray();
       v.appendBits(0xff7, 12);
-      assertEquals(12, v.size());
-      assertEquals(0xff, getUnsignedByte(v, 0));
-      assertEquals(0x70, getUnsignedByte(v, 1));
+      assertEquals(12, v.getSize());
+      assertEquals(0xff700000L, getUnsignedInt(v, 0));
     }
   }
 
+  @Test
   public void testNumBytes() {
-    BitVector v = new BitVector();
-    assertEquals(0, v.sizeInBytes());
-    v.appendBit(0);
+    BitArray v = new BitArray();
+    assertEquals(0, v.getSizeInBytes());
+    v.appendBit(false);
     // 1 bit was added in the vector, so 1 byte should be consumed.
-    assertEquals(1, v.sizeInBytes());
+    assertEquals(1, v.getSizeInBytes());
     v.appendBits(0, 7);
-    assertEquals(1, v.sizeInBytes());
+    assertEquals(1, v.getSizeInBytes());
     v.appendBits(0, 8);
-    assertEquals(2, v.sizeInBytes());
+    assertEquals(2, v.getSizeInBytes());
     v.appendBits(0, 1);
     // We now have 17 bits, so 3 bytes should be consumed.
-    assertEquals(3, v.sizeInBytes());
+    assertEquals(3, v.getSizeInBytes());
   }
 
+  @Test
   public void testAppendBitVector() {
-    BitVector v1 = new BitVector();
+    BitArray v1 = new BitArray();
     v1.appendBits(0xbe, 8);
-    BitVector v2 = new BitVector();
+    BitArray v2 = new BitArray();
     v2.appendBits(0xef, 8);
-    v1.appendBitVector(v2);
+    v1.appendBitArray(v2);
     // beef = 1011 1110 1110 1111
-    assertEquals("1011111011101111", v1.toString());
+    assertEquals(" X.XXXXX. XXX.XXXX", v1.toString());
   }
 
+  @Test
   public void testXOR() {
     {
-      BitVector v1 = new BitVector();
+      BitArray v1 = new BitArray();
       v1.appendBits(0x5555aaaa, 32);
-      BitVector v2 = new BitVector();
+      BitArray v2 = new BitArray();
       v2.appendBits(0xaaaa5555, 32);
       v1.xor(v2);
-      assertEquals(0xff, getUnsignedByte(v1, 0));
-      assertEquals(0xff, getUnsignedByte(v1, 1));
-      assertEquals(0xff, getUnsignedByte(v1, 2));
-      assertEquals(0xff, getUnsignedByte(v1, 3));
+      assertEquals(0xffffffffL, getUnsignedInt(v1, 0));
     }
     {
-      BitVector v1 = new BitVector();
+      BitArray v1 = new BitArray();
       v1.appendBits(0x2a, 7);  // 010 1010
-      BitVector v2 = new BitVector();
+      BitArray v2 = new BitArray();
       v2.appendBits(0x55, 7);  // 101 0101
       v1.xor(v2);
-      assertEquals(0xfe, getUnsignedByte(v1, 0));  // 1111 1110
+      assertEquals(0xfe000000L, getUnsignedInt(v1, 0));  // 1111 1110
     }
   }
 
+  @Test
   public void testAt() {
-    BitVector v = new BitVector();
+    BitArray v = new BitArray();
     v.appendBits(0xdead, 16);  // 1101 1110 1010 1101
-    assertEquals(1, v.at(0));
-    assertEquals(1, v.at(1));
-    assertEquals(0, v.at(2));
-    assertEquals(1, v.at(3));
+    assertTrue(v.get(0));
+    assertTrue(v.get(1));
+    assertFalse(v.get(2));
+    assertTrue(v.get(3));
 
-    assertEquals(1, v.at(4));
-    assertEquals(1, v.at(5));
-    assertEquals(1, v.at(6));
-    assertEquals(0, v.at(7));
+    assertTrue(v.get(4));
+    assertTrue(v.get(5));
+    assertTrue(v.get(6));
+    assertFalse(v.get(7));
 
-    assertEquals(1, v.at(8));
-    assertEquals(0, v.at(9));
-    assertEquals(1, v.at(10));
-    assertEquals(0, v.at(11));
+    assertTrue(v.get(8));
+    assertFalse(v.get(9));
+    assertTrue(v.get(10));
+    assertFalse(v.get(11));
 
-    assertEquals(1, v.at(12));
-    assertEquals(1, v.at(13));
-    assertEquals(0, v.at(14));
-    assertEquals(1, v.at(15));
+    assertTrue(v.get(12));
+    assertTrue(v.get(13));
+    assertFalse(v.get(14));
+    assertTrue(v.get(15));
   }
 
+  @Test
   public void testToString() {
-    BitVector v = new BitVector();
+    BitArray v = new BitArray();
     v.appendBits(0xdead, 16);  // 1101 1110 1010 1101
-    assertEquals("1101111010101101", v.toString());
+    assertEquals(" XX.XXXX. X.X.XX.X", v.toString());
   }
 
 }