| package com.badlogic.gdx.utils; |
| |
| import static org.junit.Assert.*; |
| |
| import org.junit.Test; |
| |
| public class BitsTest { |
| |
| @Test |
| public void testHashcodeAndEquals() { |
| Bits b1 = new Bits(); |
| Bits b2 = new Bits(); |
| |
| b1.set(1); |
| b2.set(1); |
| |
| assertEquals(b1.hashCode(), b2.hashCode()); |
| assertTrue(b1.equals(b2)); |
| |
| // temporarily setting/clearing a single bit causing |
| // the backing array to grow |
| b2.set(420); |
| b2.clear(420); |
| |
| assertEquals(b1.hashCode(), b2.hashCode()); |
| assertTrue(b1.equals(b2)); |
| |
| b1.set(810); |
| b1.clear(810); |
| |
| assertEquals(b1.hashCode(), b2.hashCode()); |
| assertTrue(b1.equals(b2)); |
| } |
| |
| @Test |
| public void testXor() { |
| Bits b1 = new Bits(); |
| Bits b2 = new Bits(); |
| |
| b2.set(200); |
| |
| // b1:s array should grow to accommodate b2 |
| b1.xor(b2); |
| |
| assertTrue(b1.get(200)); |
| |
| b1.set(1024); |
| b2.xor(b1); |
| |
| assertTrue(b2.get(1024)); |
| } |
| |
| @Test |
| public void testOr() { |
| Bits b1 = new Bits(); |
| Bits b2 = new Bits(); |
| |
| b2.set(200); |
| |
| // b1:s array should grow to accommodate b2 |
| b1.or(b2); |
| |
| assertTrue(b1.get(200)); |
| |
| b1.set(1024); |
| b2.or(b1); |
| |
| assertTrue(b2.get(1024)); |
| } |
| |
| @Test |
| public void testAnd() { |
| Bits b1 = new Bits(); |
| Bits b2 = new Bits(); |
| |
| |
| b2.set(200); |
| // b1 should cancel b2:s bit |
| b2.and(b1); |
| |
| assertFalse(b2.get(200)); |
| |
| b1.set(400); |
| b1.and(b2); |
| |
| assertFalse(b1.get(400)); |
| } |
| } |