from components.ram import Ram import unittest from random import randint class RamTest(unittest.TestCase): def setUp(self): """ Init test """ self.caretaker=dict({"MDR":0,"MAR":0,"MBR":0,"PC":0}) def test_write(self): """ Test write method """ toWrite=randint(0,2**32) # Pick a random number to write self.caretaker["MDR"]=toWrite ram=Ram(self.caretaker,10000) ram.write() # Write a random number at address 0 data=ram.dump() # Dump ram ##### Test if everything is written using big endian model ##### self.assertEqual((toWrite>>24)&0xFF,data[self.caretaker["MAR"]]) self.assertEqual((toWrite>>16)&0xFF,data[self.caretaker["MAR"]+1]) self.assertEqual((toWrite>>8)&0xFF,data[self.caretaker["MAR"]+2]) self.assertEqual(toWrite&0xFF,data[self.caretaker["MAR"]+3]) if __name__ == "__main__": unittest.main()