public void TestOr() { TimeIntervalRelation[] localSubjects = new TimeIntervalRelation[NrOfCombinationTestSubjects]; for (int i = 0; i < (NrOfCombinationTestSubjects - 1); i++) { localSubjects[i] = Subjects[i]; } double total = Math.Pow(NrOfCombinationTestSubjects, 4); Console.WriteLine("Starting test over more than " + total + " cases"); long count = 0; double totalForPercentage = total / 100; double percentage = 0.00; TimeIntervalRelation result; result = TimeIntervalRelation.Or(); count++; foreach (TimeIntervalRelation tir1 in localSubjects) { result = TimeIntervalRelation.Or(tir1); result = TimeIntervalRelation.Or(tir1, tir1); result = TimeIntervalRelation.Or(tir1, tir1, tir1); result = TimeIntervalRelation.Or(tir1, tir1, tir1, tir1); count += 4; foreach (TimeIntervalRelation tir2 in localSubjects) { result = TimeIntervalRelation.Or(tir1, tir2); count++; foreach (TimeIntervalRelation tir3 in localSubjects) { result = TimeIntervalRelation.Or(tir1, tir2, tir3); count++; foreach (TimeIntervalRelation tir4 in localSubjects) { result = TimeIntervalRelation.Or(tir1, tir2, tir3, tir4); count++; percentage = count / totalForPercentage; if (count % 100000 == 0) { Console.WriteLine(" progress: " + count + " / " + total + " done (" + percentage + "%)"); } } } } } }
public void TestOrOperator() { TimeIntervalRelation[] localSubjects = new TimeIntervalRelation[NrOfCombinationTestSubjects]; for (int i = 0; i < (NrOfCombinationTestSubjects - 1); i++) { localSubjects[i] = Subjects[i]; } TimeIntervalRelation result; foreach (TimeIntervalRelation tir1 in localSubjects) { foreach (TimeIntervalRelation tir2 in localSubjects) { result = tir1 | tir2; foreach (TimeIntervalRelation tir3 in localSubjects) { result = tir1 | tir2 | tir3; foreach (TimeIntervalRelation tir4 in localSubjects) { result = tir1 | tir2 | tir3 | tir4; } } } } }
private static string FullBitPattern(TimeIntervalRelation ar) { return ((uint)ar.GetHashCode()).FullBitPattern(13); }