1 package net.mograsim.logic.model.am2900.am2910;
3 import static net.mograsim.logic.model.am2900.am2910.TestableAm2910.Am2910_Inst.*;
4 import static net.mograsim.logic.core.types.Bit.*;
5 import static org.junit.jupiter.api.Assertions.assertEquals;
7 import org.junit.jupiter.api.BeforeEach;
8 import org.junit.jupiter.api.DisplayName;
9 import org.junit.jupiter.api.Order;
10 import org.junit.jupiter.api.TestMethodOrder;
11 import org.junit.jupiter.api.extension.RegisterExtension;
12 import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
13 import org.junit.jupiter.params.ParameterizedTest;
14 import org.junit.jupiter.params.provider.EnumSource;
16 import net.mograsim.logic.core.types.BitVector;
17 import net.mograsim.logic.model.am2900.am2910.TestableAm2910.Register;
18 import net.mograsim.logic.model.am2900.util.DisplayStateOnFailure;
20 @DisplayName("Am2910 Tests")
21 @TestMethodOrder(OrderAnnotation.class)
22 public class Am2910Test
24 private TestableAm2910 am2910 = new TestableAm2910Impl();
27 DisplayStateOnFailure failureRule = new DisplayStateOnFailure(am2910);
41 void setStandardInputs()
48 am2910.setD("000000000000");
49 am2910.setInstruction(JZ);
51 am2910.assertRunSuccess();
54 @ParameterizedTest(name = "{0}")
56 @DisplayName("Direct / high level access")
57 @EnumSource(Register.class)
58 void testDirectAccess(Register r)
60 String us = U.toVector(r.size()).toString();
61 String three = BitVector.from(3, r.size()).toString();
63 assertEquals(us, am2910.getDirectly(r));
65 am2910.setDirectly(r, three);
67 assertEquals(three, am2910.getDirectly(r));