prln("Begin testSouthRecirculate");
adjustIndent(2);
+ int AMOUNT = Marina.SOUTH_RING_CAPACITY;
+
marina.enableInstructionSend(false);
marina.enableInstructionRecirculate(true);
prln("Completely fill south ring");
- for (int i=0; i<Marina.SOUTH_RING_CAPACITY; i++) {
+ adjustIndent(2);
+ for (int i=0; i<AMOUNT; i++) {
+ prln("inserting item " + (i+1) + " / " + AMOUNT);
BitVector instr = new BitVector(36, "Instr"+i);
- instr.setFromLong(i);
+ instr.setFromLong(i+1);
marina.instrIn.fill(instr);
}
+ adjustIndent(-2);
+
prln("Drain south ring and check contents");
+ adjustIndent(2);
List<BitVector> out = marina.instrIn.drainMany();
- for (int i=0; i<Marina.SOUTH_RING_CAPACITY; i++) {
- int expect = (i+Marina.SOUTH_RING_CAPACITY-1) % Marina.SOUTH_RING_CAPACITY;
+ for (int i=0; i<AMOUNT; i++) {
+ prln("extracting item " + (i+1) + " / " + AMOUNT);
+ //int expect = (i+Marina.SOUTH_RING_CAPACITY-1) % Marina.SOUTH_RING_CAPACITY;
+ int expect = i+1;
long got = out.get(i).toLong();
fatal(got!=expect, "bad instruction: "+got+" expected: "+expect);
}
+ adjustIndent(-2);
for (int i=0; i<5; i++) {}