import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.model.LogicUIStandaloneGUI;
+import net.mograsim.logic.model.am2900.machine.Am2900ExpertMachineDefinition;
import net.mograsim.logic.model.am2900.machine.Am2900Machine;
import net.mograsim.logic.model.am2900.machine.Am2900MainMemoryDefinition;
import net.mograsim.logic.model.am2900.machine.Am2900MicroInstructionDefinition;
import net.mograsim.logic.model.am2900.machine.Am2900MicroInstructionMemoryDefinition;
-import net.mograsim.logic.model.am2900.machine.StrictAm2900MachineDefinition;
import net.mograsim.logic.model.am2900.machine.registers.am2901.NumberedRegister;
import net.mograsim.logic.model.preferences.DefaultRenderPreferences;
import net.mograsim.machine.MainMemory;
+import net.mograsim.machine.StandardMainMemory;
import net.mograsim.machine.mi.MicroInstruction;
import net.mograsim.machine.mi.MicroInstructionDefinition;
import net.mograsim.machine.mi.MicroInstructionMemory;
import net.mograsim.machine.mi.StandardMicroInstructionMemory;
import net.mograsim.machine.mi.parameters.MicroInstructionParameter;
import net.mograsim.machine.mi.parameters.ParameterClassification;
-import net.mograsim.machine.standard.memory.WordAddressableMemory;
@TestInstance(Lifecycle.PER_CLASS)
public class TestGCD
public void setupMachine() throws IOException
{
Am2900Loader.setup();
- mach = new StrictAm2900MachineDefinition().createNew();
+ mach = new Am2900ExpertMachineDefinition().createNew();
mpm = MicroInstructionMemoryParser.parseMemory(Am2900MicroInstructionMemoryDefinition.instance,
TestGCD.class.getResourceAsStream("gcd.mpm"));
- ram = new WordAddressableMemory(Am2900MainMemoryDefinition.instance);
+ ram = new StandardMainMemory(Am2900MainMemoryDefinition.instance);
mach.getMainMemory().bind(ram);
if (startGUI)
checkGCD(48820, 8480);
checkGCD(21420, 11288);
checkGCD(15862, 21219);
+ checkGCD(15525, 57040);
}
@ParameterizedTest
private void checkGCD(int euclidA, int euclidB) throws InterruptedException
{
int exp = gcd(euclidA, euclidB);
- System.out.println("Checking gcd(" + euclidA + ", " + euclidB + ") + (expected " + exp + ")");
+ System.out.println("Checking gcd(" + euclidA + ", " + euclidB + "); expected " + exp);
int act = executeGCD(euclidA, euclidB);
assertEquals(exp, act);
}