content: package com.grapeshot.halfnes.nestest;
  
  import com.grapeshot.halfnes.NES;
  import com.grapeshot.halfnes.mappers.BadMapperException;
  import com.grapeshot.halfnes.ui.ControllerInterface;
  import org.testng.annotations.Test;
  import static org.junit.Assert.assertEquals;
  
  import static org.mockito.Mockito.mock;
  
  /**
   * Created by KlausH on 28.11.2015.
   */
  public class NesTest {
  
      @Test
      public void nesTest() throws BadMapperException {
          NES nes = new NES(null);
          nes.loadROM("src/test/resources/nestest/nestest.nes", 0xC000);
          nes.setControllers(mock(ControllerInterface.class), mock(ControllerInterface.class));
  
          //log all instructions executed to compare with real nestest.log
          nes.getCPU().startLog("src/test/resources/nestest/compare.log");
          while (nes.runEmulation) {
              //runs until hits a KIL opcode which is a few instructions after the
              //official log finishes.
              nes.frameAdvance();
          }
          //log should be at least 8992 lines
          //I don't actually compare the logs in this test yet.
          
          //check some bytes of RAM for successful test result values
          System.err.println(nes.getCPURAM().read(0));
          System.err.println(nes.getCPURAM().read(1));
          System.err.println(nes.getCPURAM().read(2));
          System.err.println(nes.getCPURAM().read(3));
          
          assertEquals(nes.getCPURAM().read(0), 0);
          assertEquals(nes.getCPURAM().read(1), 255);
          assertEquals(nes.getCPURAM().read(2), 255);
          assertEquals(nes.getCPURAM().read(3), 255);
      }
  
  }
  