pszczyg

EnumSpeed_06

Sep 15th, 2021
589
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  static class EnumDefinitionTests
  2.     {
  3.         const int _iterationsNo = 100000;
  4.         static InvoicePaymentMethod[] _enumsToBeChecked;
  5.         static EnumDefinitionTests()
  6.         {
  7.             _enumsToBeChecked = new InvoicePaymentMethod[_iterationsNo];
  8.             Random random = new Random();            
  9.             for(int i=0; i< _iterationsNo; i++)
  10.             {
  11.                 var randomNumber = random.Next(65, 100);
  12.                 var enumToAdd = randomNumber > 96 ? InvoicePaymentMethod.Undefined : (InvoicePaymentMethod)randomNumber;
  13.                 _enumsToBeChecked[i] = enumToAdd;
  14.             }
  15.         }
  16.  
  17.         public static void Test()
  18.         {
  19.             Console.WriteLine("With Enum.IsDefined method:");
  20.  
  21.             Clock.BenchmarkTime((j) =>
  22.             {
  23.                 _enumsToBeChecked[j].IsUndefined_WithEnumIsDefined();
  24.             }, _iterationsNo);
  25.  
  26.             Console.WriteLine("=======================");
  27.             Console.WriteLine("Comparing all values directly:");
  28.  
  29.             Clock.BenchmarkTime((j) =>
  30.             {
  31.                 _enumsToBeChecked[j].IsUndefined_WithComparingAllValidValuesDirectly();
  32.             }, _iterationsNo);
  33.  
  34.             Console.WriteLine("=======================");
  35.             Console.WriteLine("With HashSet:");
  36.  
  37.             Clock.BenchmarkTime((j) =>
  38.             {
  39.                 _enumsToBeChecked[j].IsUndefined_WithHashSet();
  40.             }, _iterationsNo);
  41.  
  42.             Console.WriteLine("=======================");
  43.             Console.ReadKey();
  44.         }
  45.     }
RAW Paste Data