const string ohmSymbol = "\u2126", capitalOmega = "\u03A9";//Canonically equivalent. See: http://unicode.org/reports/tr15/ [Theory] public void WithNormalizedStringsTheory (IAllowsBitwiseCloning toClone) { Assume.That(toClone != null); // ReSharper disable once PossibleNullReferenceException var stringFields = toClone.GetType().AllInstanceFieldsOfType<string>(); var toBecomeOhmClone = toClone.BitwiseCloned(); var toBecomeOmegaClone = toClone.BitwiseCloned(); stringFields.ForEach(field => { field.SetValue(toBecomeOhmClone, ohmSymbol); field.SetValue(toBecomeOmegaClone, capitalOmega); }); var ohmClone = toBecomeOhmClone; var omegaClone = toBecomeOmegaClone; Assert.That(ohmClone.WithNormalizedStrings().FieldwiseSameAs(omegaClone.WithNormalizedStrings())); }
[Theory] public void ClonedHasEqualFieldsTheory (IAllowsBitwiseCloning toClone) { Assume.That(toClone != null); Assert.That(toClone.FieldwiseSameAs(toClone.BitwiseCloned())); }