public void CanRoundTripAsMapped() { var model = BuildModel(false); AllTheEnums ate = new AllTheEnums { I8 = I8.B, U8 = U8.B, I16 = I16.B, U16 = U16.B, I32 = I32.B, U32 = U32.B, I64 = I64.B, U64 = U64.B }, clone; clone = (AllTheEnums)model.DeepClone(ate); CompareAgainstClone(ate, clone, "Runtime"); model.CompileInPlace(); clone = (AllTheEnums)model.DeepClone(ate); CompareAgainstClone(ate, clone, "CompileInPlace"); clone = (AllTheEnums)model.Compile().DeepClone(ate); CompareAgainstClone(ate, clone, "Compile"); }
static void CompareAgainstClone(AllTheEnums original, AllTheEnums clone, string caption) { Assert.NotNull(original); //, caption + " (original)"); Assert.NotNull(clone); //, caption + " (clone)"); Assert.NotSame(original, clone); //, caption); Assert.Equal(original.I8, clone.I8); //, caption); Assert.Equal(original.U8, clone.U8); //, caption); Assert.Equal(original.I16, clone.I16); //, caption); Assert.Equal(original.U16, clone.U16); //, caption); Assert.Equal(original.I32, clone.I32); //, caption); Assert.Equal(original.U32, clone.U32); //, caption); Assert.Equal(original.I64, clone.I64); //, caption); Assert.Equal(original.U64, clone.U64); //, caption); }