public async Task ShouldBeAbleToSaveMemoryState()
        {
            FileInfo file = null;

            try
            {
                file = new FileInfo(Path.Combine(Path.GetTempPath(), "MemorySaveFile.prg"));

                Memory expectedMemory = new Memory();

                Random random = new Random();
                for (int address = 0; address <= byte.MaxValue; address++)
                {
                    expectedMemory[(byte)address] = (byte)random.Next(0x00, byte.MaxValue);
                }

                await _stateSaver.SaveMemoryAsync(expectedMemory, file);

                Assert.True(file.Exists);

                Memory actualMemory = await _stateSaver.LoadMemoryAsync(file);

                for (int address = 0; address <= byte.MaxValue; address++)
                {
                    Assert.Equal(expectedMemory[(byte)address], actualMemory[(byte)address]);
                }
            }
            finally
            {
                file?.Delete();
            }
        }