public static void Main()
var all3Rules = Test3Modes.rule1Fall | Test3Modes.rule2Fall;
var second3Rules = all3Rules & Test3Modes.rule1Off;
Console.WriteLine("all3Rules contains Test3Modes.rule1Off: " + (second3Rules == Test3Modes.rule1Off) + " (should be False)");
Console.WriteLine("------------------------------");
var all2Rules = Test2Modes.rule1Off | Test2Modes.rule2Off;
var first2Rules = all2Rules & Test2Modes.rule1On;
Console.WriteLine("all2Rules contains Test2Modes.rule1On: " + (first2Rules == Test2Modes.rule1On) + " (should be False)");
Console.WriteLine("------------------------------");
Console.WriteLine("Test3Modes.rule1Fall: " + Convert.ToString((int)Test3Modes.rule1Fall, 2));
Console.WriteLine("Test3Modes.rule2Fall: " + Convert.ToString((int)Test3Modes.rule2Fall, 2));
Console.WriteLine("all3Rules: " + Convert.ToString((int)all3Rules, 2));
Console.WriteLine("second3Rules: " + Convert.ToString((int)second3Rules, 2));
Console.WriteLine("Test3Modes.rule1Off: " + Convert.ToString((int)Test3Modes.rule1Off, 2));
Console.WriteLine("------------------------------");
Console.WriteLine("Test2Modes.rule1Off: " + Convert.ToString((int)Test2Modes.rule1Off, 2));
Console.WriteLine("Test2Modes.rule2Off: " + Convert.ToString((int)Test2Modes.rule2Off, 2));
Console.WriteLine("all2Rules: " + Convert.ToString((int)all2Rules, 2));
Console.WriteLine("first2Rules: " + Convert.ToString((int)first2Rules, 2));
Console.WriteLine("Test2Modes.rule2Off: " + Convert.ToString((int)Test2Modes.rule1On, 2));