-
-
Save benaadams/393ed95127b7349a1e833b6641800c57 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections.Generic; | |
using BenchmarkDotNet.Attributes; | |
public class P | |
{ | |
static void Main(string[] args) | |
{ | |
BenchmarkDotNet.Running.BenchmarkSwitcher.FromAssembly(typeof(P).Assembly).Run(args); | |
} | |
public static IEnumerable<object> TestData() | |
{ | |
yield return new Interfaces1(); | |
yield return new Interfaces6(); | |
yield return new Interfaces16(); | |
} | |
[Benchmark(Baseline = true)] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface1(object o) => o is Interface1; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface2(object o) => o is Interface2; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface3(object o) => o is Interface3; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface4(object o) => o is Interface4; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface5(object o) => o is Interface5; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface6(object o) => o is Interface6; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface7(object o) => o is Interface7; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface8(object o) => o is Interface8; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface9(object o) => o is Interface9; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface10(object o) => o is Interface10; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface11(object o) => o is Interface11; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface12(object o) => o is Interface12; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface13(object o) => o is Interface13; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface14(object o) => o is Interface14; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface15(object o) => o is Interface15; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsInterface16(object o) => o is Interface16; | |
[Benchmark()] | |
[ArgumentsSource(nameof(TestData))] | |
public bool IsNotImplemented(object o) => o is UnimplmentedInterface; | |
} | |
public class NoInterfaces { } | |
public class Interfaces1 : Interface1 { } | |
public class Interfaces2 : Interface1, Interface2 { } | |
public class Interfaces3 : Interface1, Interface2, Interface3 { } | |
public class Interfaces4 : Interface1, Interface2, Interface3, Interface4 { } | |
public class Interfaces5 : Interface1, Interface2, Interface3, Interface4, Interface5 { } | |
public class Interfaces6 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6 { } | |
public class Interfaces7 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7 { } | |
public class Interfaces8 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8 { } | |
public class Interfaces9 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9 { } | |
public class Interfaces10 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10 { } | |
public class Interfaces11 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11 { } | |
public class Interfaces12 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11, Interface12 { } | |
public class Interfaces13 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11, Interface12, Interface13 { } | |
public class Interfaces14 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11, Interface12, Interface13, Interface14 { } | |
public class Interfaces15 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11, Interface12, Interface13, Interface14, Interface15 { } | |
public class Interfaces16 : Interface1, Interface2, Interface3, Interface4, Interface5, Interface6, Interface7, Interface8, Interface9, Interface10, Interface11, Interface12, Interface13, Interface14, Interface15, Interface16 { } | |
public interface Interface1 { } | |
public interface Interface2 { } | |
public interface Interface3 { } | |
public interface Interface4 { } | |
public interface Interface5 { } | |
public interface Interface6 { } | |
public interface Interface7 { } | |
public interface Interface8 { } | |
public interface Interface9 { } | |
public interface Interface10 { } | |
public interface Interface11 { } | |
public interface Interface12 { } | |
public interface Interface13 { } | |
public interface Interface14 { } | |
public interface Interface15 { } | |
public interface Interface16 { } | |
public interface UnimplmentedInterface { } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment