public void TestAnimationSheetClone() { var sheet1 = AnimationSheetGenerator.GenerateAnimationSheet("TestSheet", 2, 64, 64, 10, 0); var sheet2 = sheet1.Clone(); Assert.AreEqual(sheet1, sheet2, "Animation sheets copied with the Clone() method must be equal"); // Modify one of the sheet's properties var frame = sheet2.Animations[0].Frames[0] as Frame; frame?.SetFrameBitmap(FrameGenerator.GenerateDifferentFrom(sheet1.Animations[0].Frames[0].GetComposedBitmap())); Assert.AreNotEqual(sheet1, sheet2, "After modification of a cloned animation sheet's animation's frame, it must no longer be considered equal to the original"); // Modify one of the sheet's properties frame = sheet2.Animations[0].Frames[0] as Frame; frame?.SetFrameBitmap(FrameGenerator.GenerateDifferentFrom(sheet1.Animations[0].Frames[0].GetComposedBitmap())); sheet2.ExportSettings = new AnimationExportSettings { ExportJson = !sheet1.ExportSettings.ExportJson }; Assert.AreNotEqual(sheet1, sheet2, "After modification of a cloned animation sheet's export settings, it must no longer be considered equal to the original"); }