/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.protocol.util; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import org.junit.Assert; import org.junit.Test; public class BitArrayTest { @Test public void testCreateBitArray() { Assert.assertArrayEquals(new byte[1], new BitArray(5).array()); Assert.assertArrayEquals(new byte[3], new BitArray(23).array()); Assert.assertArrayEquals(new byte[3], new BitArray(24).array()); Assert.assertArrayEquals(new byte[4], new BitArray(25).array()); final byte[] a = new byte[] {1, 2, 3, 4}; Assert.assertArrayEquals(a, BitArray.valueOf(a).array()); final byte b = 44; Assert.assertEquals(b, BitArray.valueOf(b).toByte()); final ByteBuf buf = Unpooled.wrappedBuffer(a); Assert.assertArrayEquals(new byte[] {1, 2}, BitArray.valueOf(buf, 12).array()); final ByteBuf res = Unpooled.buffer(); final BitArray i = BitArray.valueOf(a); i.toByteBuf(res); Assert.assertArrayEquals(new byte[] {1, 2, 3, 4}, ByteArray.readAllBytes(res)); } @Test public void testSetAndGet() { final BitArray ba = new BitArray(10); ba.set(0, null); ba.set(1, Boolean.TRUE); ba.set(2, Boolean.FALSE); ba.set(3, Boolean.TRUE); ba.set(7, Boolean.TRUE); ba.set(8, Boolean.TRUE); ba.set(9, Boolean.TRUE); Assert.assertEquals("BitArray [1 1000111]", ba.toString()); Assert.assertFalse(ba.get(0)); Assert.assertTrue(ba.get(1)); Assert.assertFalse(ba.get(2)); Assert.assertTrue(ba.get(3)); Assert.assertTrue(ba.get(7)); Assert.assertTrue(ba.get(8)); Assert.assertTrue(ba.get(9)); } }