package org.jerlang.erts.emulator.op; import static org.junit.Assert.assertEquals; import org.jerlang.erts.Erlang; import org.jerlang.exception.ThrowException; import org.jerlang.type.Atom; import org.jerlang.type.BitString; import org.jerlang.type.Integer; import org.jerlang.type.List; import org.jerlang.type.Term; import org.junit.Test; public class InitBitsTest extends AbstractOpTest { public InitBitsTest() { super("init_bits.beam"); } @Test public void test_bs_init_bits() throws ThrowException { test(1, 2); test(2, 3); test(3, 4); test(4, 5); test(5, 6); test(6, 7); test(7, 0); test(8, 1); test(9, 2); test(10, 3); } private void test(int input, int output) { BitString expected = new BitString(new int[] { (output << 5) & 0xFF }, 8 - 3); List params = List.of(Integer.of(input)); Term result = Erlang.apply(Atom.of("init_bits"), Atom.of("test"), params); assertEquals(expected, result); } }