Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace BenchmarkLab {
- class ListOfTests : Benchmark {
- public ListOfTests(Object type) {
- if (type is int) {
- typeTestsList.Add(() => {
- int x = InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- int x = InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- int x = InitVal;
- for (int i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- int x = InitVal;
- for (int i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is uint) {
- typeTestsList.Add(() => {
- uint x = InitVal;
- for (uint i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- uint x = InitVal;
- for (uint i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- uint x = InitVal;
- for (uint i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- uint x = InitVal;
- for (uint i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is long) {
- typeTestsList.Add(() => {
- long x = InitVal;
- for (long i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- long x = InitVal;
- for (long i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- long x = InitVal;
- for (long i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- long x = InitVal;
- for (long i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is ulong) {
- typeTestsList.Add(() => {
- ulong x = InitVal;
- for (ulong i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- ulong x = InitVal;
- for (ulong i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- ulong x = InitVal;
- for (ulong i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- ulong x = InitVal;
- for (ulong i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is char) {
- typeTestsList.Add(() => {
- char x = (char)InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x += (char)i; x %= (char)Mod; }
- });
- typeTestsList.Add(() => {
- char x = (char)InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x -= (char)i; x %= (char)Mod; }
- });
- } else if (type is float) {
- typeTestsList.Add(() => {
- float x = InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- float x = InitVal;
- for (int i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- float x = InitVal;
- for (int i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- float x = InitVal;
- for (int i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is double) {
- typeTestsList.Add(() => {
- double x = InitVal;
- for (double i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- double x = InitVal;
- for (double i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- double x = InitVal;
- for (double i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- double x = InitVal;
- for (double i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else if (type is decimal) {
- typeTestsList.Add(() => {
- decimal x = InitVal;
- for (decimal i = 0; i < NumOfIterations; ++i) { x += i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- decimal x = InitVal;
- for (decimal i = 0; i < NumOfIterations; ++i) { x -= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- decimal x = InitVal;
- for (decimal i = 1; i < NumOfIterations; ++i) { x *= i; x %= Mod; }
- });
- typeTestsList.Add(() => {
- decimal x = InitVal;
- for (decimal i = 1; i < NumOfIterations; ++i) { x /= i; x %= Mod; }
- });
- } else
- throw new System.ArgumentException("Unknown type of argument!");
- }
- public List<Action> typeTestsList { get; private set; } = new List<Action>();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment