static void Main(string[] args) { int testNum = 1; BitArray64 arr1 = new BitArray64("11"); // all first 62 most significant bit values are assumed 0, only those at indexes 62 and 63 are set to 1 string returnedVal1 = arr1.BitsArray; // check result bool testResult = returnedVal1 == "11"; PrintResult(testNum, testResult); testNum = 2; BitArray64 arr2 = new BitArray64("11"); var returnedVal2 = arr2[63]; testResult = returnedVal2 == (byte)1; PrintResult(testNum, testResult); testNum = 3; BitArray64 arr3 = new BitArray64("11"); var returnedVal3 = arr3[61]; testResult = returnedVal3 == (byte)0; PrintResult(testNum, testResult); // next we set to 1 the two most significant bits at indexes 0 and 1 BitArray64 arr4 = new BitArray64("11" + new string('0', 62)); testNum = 4; var returnedVal4 = arr4[1]; testResult = returnedVal4 == (byte)1; PrintResult(testNum, testResult); testNum = 5; returnedVal4 = arr4[3]; testResult = returnedVal4 == (byte)0; PrintResult(testNum, testResult); testNum = 6; arr4[3] = 1; returnedVal4 = arr4[3]; testResult = returnedVal4 == (byte)1; PrintResult(testNum, testResult); testNum = 7; BitArray64 arr7 = new BitArray64("11"); BitArray64 arr7_copy = new BitArray64("11"); testResult = arr7 == arr7_copy; PrintResult(testNum, testResult); testNum = 8; testResult = !(arr7 != arr7_copy); PrintResult(testNum, testResult); testNum = 9; testResult = arr7.Equals(arr7_copy); PrintResult(testNum, testResult); testNum = 10; testResult = !arr7.Equals(null); PrintResult(testNum, testResult); testResult = !(arr7 == null); PrintResult(testNum, testResult); testResult = !(null == arr7); PrintResult(testNum, testResult); testResult = (arr7_copy == arr7); PrintResult(testNum, testResult); testNum = 11; StringBuilder sb = new StringBuilder(); foreach (var bit in arr7) { sb.Append(bit); } testResult = sb.ToString() == arr7.BitsArray.PadLeft(64, '0'); PrintResult(testNum, testResult); }
public static bool operator !=(BitArray64 a, BitArray64 b) { return(!(BitArray64.Equals(a, b))); }