Starting AddressLine tests.
Initial AddressLine testing complete (successful).
Removed duplicate code in DataLineTest.
Beginning MainMemory testing.
First problem encountered! MemoryModule, SystemBus and ControlLine classes each created instances of the other, which caused a sort of loop of each trying in vain to create the other, resulting in a stack overflow error. Deferred creation/access of global instance of SystemBus in MemoryModule to the notify(int address) ethod, solving the problem. It isn't an issue to call SystemBus.getInstance() in the notify method as there should only ever be one instance of SystemBus, and this instance is returned by SystemBus.getInstance().
Singleton test for MainMemory successful; highlighted flaw in design logic of SystemBus, MemoryModule and ControlLine, owing to loop-like structure of instantiation causing a stack overflow error.
Added accessor method to MainMemory to facilitate testing. Pending deletion once testing complete.
Testing MainMemory; good so far.