private void AssertHodgepodgeEquals(HodgepodgeDto reference, HodgepodgeDto actual) { if (reference == null || actual == null) { AssertNull(reference); AssertNull(actual); return; } AssertEquals(reference.True, actual.True); AssertEquals(reference.False, actual.False); AssertEquals(reference.Int8, actual.Int8); AssertEquals(reference.Int16, actual.Int16); AssertEquals(reference.Int32, actual.Int32); AssertEquals(reference.Int64, actual.Int64); AssertEquals(reference.UInt8, actual.UInt8); AssertEquals(reference.UInt16, actual.UInt16); AssertEquals(reference.UInt32, actual.UInt32); AssertEquals(reference.UInt64, actual.UInt64); AssertEquals(reference.FileAccess, actual.FileAccess); AssertEquals(reference.String, actual.String); AssertEquals(reference.Guid, actual.Guid); AssertEquals(reference.IntList, actual.IntList); AssertEquals(reference.IntPowersArray, actual.IntPowersArray); AssertEquals(reference.StringArray, actual.StringArray); AssertEquals(reference.IntStringMap, actual.IntStringMap); AssertEquals(reference.IntStringStringArrayMapArrayMap, actual.IntStringStringArrayMapArrayMap); AssertEquals(reference.Type, actual.Type); AssertEquals(reference.DateTime, actual.DateTime); AssertEquals(reference.Float, actual.Float); AssertEquals(reference.Double, actual.Double); AssertHodgepodgeEquals(reference.InnerHodgepodge, actual.InnerHodgepodge); }
private HodgepodgeDto CreateHodgepodge(HodgepodgeDto innerHodgepodge) { return(new HodgepodgeDto { True = true, False = false, Int8 = CreatePlaceholder <sbyte>(), Int16 = CreatePlaceholder <short>(), Int32 = CreatePlaceholder <int>(), Int64 = CreatePlaceholder <long>(), UInt8 = CreatePlaceholder <byte>(), UInt16 = CreatePlaceholder <ushort>(), UInt32 = CreatePlaceholder <uint>(), UInt64 = CreatePlaceholder <ulong>(), FileAccess = CreatePlaceholder <FileAccess>(), String = CreatePlaceholder <string>(), Guid = CreatePlaceholder <Guid>(), IntList = CreatePlaceholder <List <int> >(), IntPowersArray = Enumerable.Range(-31, 31).Select(i => Math.Sign(i) * (1 << Math.Abs(i))).Concat(new[] { int.MinValue, int.MaxValue }).ToArray(), StringArray = CreatePlaceholder <string[]>(), IntStringMap = CreatePlaceholder <Dictionary <int, string> >(), IntStringStringArrayMapArrayMap = new Dictionary <int, Dictionary <string, string[]>[]>(), // empty due to exponenetial runtime of createplaceholder Type = typeof(LinkedListNode <int>), DateTime = DateTime.FromFileTime(2131891), Float = CreatePlaceholder <float>(), Double = CreatePlaceholder <double>(), InnerHodgepodge = innerHodgepodge, }); }
public bool Equals(HodgepodgeDto o) => o != null && True == o.True && False == o.False && Int8 == o.Int8 && Int16 == o.Int16 && Int32 == o.Int32 && Equals(String, o.String) && Guid.Equals(o.Guid) && IntList.SequenceEqual(o.IntList) && StringArray.SequenceEqual(o.StringArray) && IntPowersArray.SequenceEqual(o.IntPowersArray) && IntStringMap.Count == o.IntStringMap.Count && IntStringMap.All(kvp => o.IntStringMap[kvp.Key] == kvp.Value) && IntStringStringArrayMapArrayMap.Count == o.IntStringStringArrayMapArrayMap.Count && IntStringStringArrayMapArrayMap.All(kvp => { var aDicts = kvp.Value; var bDicts = o.IntStringStringArrayMapArrayMap[kvp.Key]; return(aDicts.Length == bDicts.Length && aDicts.Zip(bDicts, Tuple.Create).All( (dicts) => { var aDict = dicts.Item1; var bDict = dicts.Item2; return aDict.Count == bDict.Count && aDict.All(innerKvp => bDict[innerKvp.Key].SequenceEqual(innerKvp.Value)); })); }) && Type == o.Type && DateTime == o.DateTime && // ReSharper disable once CompareOfFloatsByEqualityOperator Float == o.Float && // ReSharper disable once CompareOfFloatsByEqualityOperator Double == o.Double;