olexander_dan

ListOfTests

Sep 22nd, 2019
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.28 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace BenchmarkLab {
  5.     class ListOfTests : Benchmark {
  6.         public ListOfTests(Object type) {
  7.             if (type is int) {
  8.                 typeTestsList.Add(() => {
  9.                     int x = InitVal;
  10.                     for (int i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  11.                 });
  12.                 typeTestsList.Add(() => {
  13.                     int x = InitVal;
  14.                     for (int i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  15.                 });
  16.                 typeTestsList.Add(() => {
  17.                     int x = InitVal;
  18.                     for (int i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  19.                 });
  20.                 typeTestsList.Add(() => {
  21.                     int x = InitVal;
  22.                     for (int i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  23.                 });
  24.             } else if (type is uint) {
  25.                 typeTestsList.Add(() => {
  26.                     uint x = InitVal;
  27.                     for (uint i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  28.                 });
  29.                 typeTestsList.Add(() => {
  30.                     uint x = InitVal;
  31.                     for (uint i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  32.                 });
  33.                 typeTestsList.Add(() => {
  34.                     uint x = InitVal;
  35.                     for (uint i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  36.                 });
  37.                 typeTestsList.Add(() => {
  38.                     uint x = InitVal;
  39.                     for (uint i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  40.                 });
  41.             } else if (type is long) {
  42.                 typeTestsList.Add(() => {
  43.                     long x = InitVal;
  44.                     for (long i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  45.                 });
  46.                 typeTestsList.Add(() => {
  47.                     long x = InitVal;
  48.                     for (long i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  49.                 });
  50.                 typeTestsList.Add(() => {
  51.                     long x = InitVal;
  52.                     for (long i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  53.                 });
  54.                 typeTestsList.Add(() => {
  55.                     long x = InitVal;
  56.                     for (long i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  57.                 });
  58.             } else if (type is ulong) {
  59.                 typeTestsList.Add(() => {
  60.                     ulong x = InitVal;
  61.                     for (ulong i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  62.                 });
  63.                 typeTestsList.Add(() => {
  64.                     ulong x = InitVal;
  65.                     for (ulong i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  66.                 });
  67.                 typeTestsList.Add(() => {
  68.                     ulong x = InitVal;
  69.                     for (ulong i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  70.                 });
  71.                 typeTestsList.Add(() => {
  72.                     ulong x = InitVal;
  73.                     for (ulong i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  74.                 });
  75.             } else if (type is char) {
  76.                 typeTestsList.Add(() => {
  77.                     char x = (char)InitVal;
  78.                     for (int i = 0; i < NumOfIterations; ++i) { x += (char)i; x %= (char)Mod; }
  79.                 });
  80.                 typeTestsList.Add(() => {
  81.                     char x = (char)InitVal;
  82.                     for (int i = 0; i < NumOfIterations; ++i) { x -= (char)i; x %= (char)Mod; }
  83.                 });
  84.             } else if (type is float) {
  85.                 typeTestsList.Add(() => {
  86.                     float x = InitVal;
  87.                     for (int i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  88.                 });
  89.                 typeTestsList.Add(() => {
  90.                     float x = InitVal;
  91.                     for (int i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  92.                 });
  93.                 typeTestsList.Add(() => {
  94.                     float x = InitVal;
  95.                     for (int i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  96.                 });
  97.                 typeTestsList.Add(() => {
  98.                     float x = InitVal;
  99.                     for (int i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  100.                 });
  101.             } else if (type is double) {
  102.                 typeTestsList.Add(() => {
  103.                     double x = InitVal;
  104.                     for (double i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  105.                 });
  106.                 typeTestsList.Add(() => {
  107.                     double x = InitVal;
  108.                     for (double i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  109.                 });
  110.                 typeTestsList.Add(() => {
  111.                     double x = InitVal;
  112.                     for (double i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  113.                 });
  114.                 typeTestsList.Add(() => {
  115.                     double x = InitVal;
  116.                     for (double i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  117.                 });
  118.             } else if (type is decimal) {
  119.                 typeTestsList.Add(() => {
  120.                     decimal x = InitVal;
  121.                     for (decimal i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
  122.                 });
  123.                 typeTestsList.Add(() => {
  124.                     decimal x = InitVal;
  125.                     for (decimal i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
  126.                 });
  127.                 typeTestsList.Add(() => {
  128.                     decimal x = InitVal;
  129.                     for (decimal i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
  130.                 });
  131.                 typeTestsList.Add(() => {
  132.                     decimal x = InitVal;
  133.                     for (decimal i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
  134.                 });
  135.             } else
  136.                 throw new System.ArgumentException("Unknown type of argument!");
  137.         }
  138.         public List<Action> typeTestsList { get; private set; } = new List<Action>();
  139.     }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment