using System; namespace Cosmos.Compiler.Tests.Bcl { public static class EqualityHelper { public static bool SinglesAreEqual(float left, float right) { // Define the tolerance for variation in their values float difference = Math.Abs(left * .00001F); return Math.Abs(left - right) <= difference; } public static bool DoublesAreEqual(double left, double right) { // Define the tolerance for variation in their values double difference = Math.Abs(left * .00001); return Math.Abs(left - right) <= difference; } /// /// Utility method to test Byte[] equality. /// /// Byte array. /// Byte array. /// True if the elements in the arrays are equal otherwise false. public static bool ByteArrayAreEquals(byte[] a1, byte[] a2) { if (ReferenceEquals(a1, a2)) { //mDebugger.Send("a1 and a2 are the same Object"); return true; } if (a1 == null || a2 == null) { //mDebugger.Send("a1 or a2 is null so are different"); return false; } if (a1.Length != a2.Length) { //mDebugger.Send("a1.Length != a2.Length so are different"); return false; } for (int i = 0; i < a1.Length; i++) { if (a1[i] != a2[i]) { //mDebugger.Send("In position " + i + " a byte is different"); return false; } } return true; } /// /// Utility method to test int[] equality. /// /// int array. /// int array. /// True if the elements in the arrays are equal otherwise false. public static bool IntArrayAreEquals(int[] a1, int[] a2) { if (ReferenceEquals(a1, a2)) { //mDebugger.Send("a1 and a2 are the same Object"); return true; } if (a1 == null || a2 == null) { //mDebugger.Send("a1 or a2 is null so are different"); return false; } if (a1.Length != a2.Length) { //mDebugger.Send("a1.Length != a2.Length so are different"); return false; } for (int i = 0; i < a1.Length; i++) { if (a1[i] != a2[i]) { //mDebugger.Send("In position " + i + " a byte is different"); return false; } } return true; } } }