diff --git a/Recyclable.Collections.Benchmarks/Benchmarks/IndexOf_AllItems.cs b/Recyclable.Collections.Benchmarks/Benchmarks/IndexOf_AllItems.cs new file mode 100644 index 0000000..eff6950 --- /dev/null +++ b/Recyclable.Collections.Benchmarks/Benchmarks/IndexOf_AllItems.cs @@ -0,0 +1,80 @@ +using BenchmarkDotNet.Attributes; + +namespace Recyclable.Collections.Benchmarks +{ + public partial class RecyclableCollectionsBenchmarks + { + [Benchmark(Baseline = false)] + public void Array_IndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjects; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(Array.IndexOf(list, data[i])); + } + } + + [Benchmark(Baseline = false)] + public void List_IndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjectsAsList; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(list.IndexOf(data[i])); + } + } + + [Benchmark(Baseline = true)] + public void PooledList_IndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjectsAsPooledList; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(list.IndexOf(data[i])); + } + } + + [Benchmark(Baseline = false)] + public void RecyclableArrayList_IndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjectsAsRecyclableArrayList; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(list.IndexOf(data[i])); + } + } + + [Benchmark(Baseline = false)] + public void RecyclableList_IndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjectsAsRecyclableList; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(list.IndexOf(data[i])); + } + } + + [Benchmark(Baseline = false)] + public void RecyclableList_LongIndexOf_AllItems() + { + var data = TestObjects; + var list = TestObjectsAsRecyclableList; + var dataCount = TestObjectCount; + for (var i = 0; i < dataCount; i++) + { + DoNothing(list.LongIndexOf(data[i])); + } + } + + } +}