public static void Main()
for (var i = 0; i < 20; i++)
Test testFor = Test.Flag4;
int seed = (int)DateTime.UtcNow.Ticks;
var random = new Random(seed * i);
Test testAgainst = Test.Flag1;
testAgainst |= (Test)random.Next(1, 15);
var result = (testAgainst & testFor);
var isGood = (result != 0);
var hasFlag = testAgainst.HasFlag(testFor);
Console.WriteLine("{2} when testing for {0} in ([{1}] aka {3}).", testFor, testAgainst, isGood.ToString().PadRight(5, ' '), (int)testAgainst);
Console.WriteLine(" Returned {0}.", result);
Console.WriteLine(" Flagged {0}.", hasFlag);