Commit Graph
171 Commits
Author SHA1 Message Date
mlemanczyk b21b80e222 RecyclableList modified to respect the removal of blocks.
RecyclableList.IndexOf fixed to work in various combinations.

RecyclableList tests extended.
2023-03-20 20:29:50 +01:00
mlemanczyk 070549de9e Merge branch 'recyclable-block-list-added' of https://github.com/mlemanczyk/Recyclable.Collections into recyclable-block-list-added 2023-03-20 19:40:11 +01:00
mlemanczyk 1157e3e23d Test cases adjusted to limit execution time. 2023-03-20 19:32:08 +01:00
Marek Lemańczyk e6224ebe44 Fixed handling of empty lists in RecyclableArrayList.
Some RecyclableList properties made public to allow use in RecyclableArrayList.

Added support for RecyclableList in RecyclableArrayList.AddRange.

Additional tests added for RecyclableArrayList.
2023-03-19 20:37:18 +01:00
Marek Lemańczyk e312accfe5 Unused & confusing test data removed. 2023-03-17 02:09:16 +01:00
Marek Lemańczyk 3e8f03e59f RecyclableList tests extended & parameterized for various combinations of block sizes in source & target lists, including different no. of items. 2023-03-17 01:42:30 +01:00
Marek Lemańczyk 5235ea12bc RecyclableListExtensions.CopyTo fixed to not raise exceptions in some configurations. 2023-03-17 01:40:56 +01:00
Marek Lemańczyk cf284865e9 RecyclableList finalizer added to make sure that the recyclable arrays are correctly returned. 2023-03-16 02:24:18 +01:00
Marek Lemańczyk c2eefdfe3b RecyclableCollections.Contains(T item) fixes to exceptions found by tests. 2023-03-16 02:21:14 +01:00
Marek Lemańczyk ca6ee45bb6 RecyclableCollections.AddRange(List<T> items) fixes to exceptions found by tests. 2023-03-16 02:20:16 +01:00
Marek Lemańczyk bdf69f300d Added test cases for various block sizes & items counts. 2023-03-12 18:01:30 +01:00
Marek Lemańczyk bf392d60ed Tiny cleanup - "in" removed, where doesn't add value. 2023-03-12 16:41:28 +01:00
Marek Lemańczyk addef85027 RecyclableList.AddRange(IEnumerable<T> source) performance improvements. 2023-03-12 15:41:29 +01:00
Marek Lemańczyk 5572c7c57c Tiny cleanup. AddRange will now favor RecyclableList & RecyclableArrayList parameters. 2023-03-12 03:45:41 +01:00
Marek Lemańczyk c211fb6ee4 RecyclableList.AddRange(IEnumerable<T> source) performance improvements. Small source code cleanup. 2023-03-12 03:44:07 +01:00
Marek Lemańczyk efb393e13f Recyclable.AddRange fixed to ignore empty sources 2023-03-12 03:23:13 +01:00
Marek Lemańczyk 025cdb3073 Tiny cleanup 2023-03-11 23:19:59 +01:00
Marek Lemańczyk 25a85ec763 New tests added. AddRangeShouldAddItemsInCorrectOrder & AddRangeShouldNotOverrideItems converted to theories with [MemberData] 2023-03-11 23:16:15 +01:00
Marek Lemańczyk 91fae49bdb RecyclableList.AddRange(IEnumerable<T> source) fixed to properly add items when we can get non-enumerated count. 2023-03-11 23:15:04 +01:00
Marek Lemańczyk 1ea0af8d34 RecyclableListExtensions.CopyTo fixed to copy items from the last block in the range 2023-03-11 22:12:50 +01:00
Marek Lemańczyk 9b9b683462 RecyclableList.AddRange(RecyclableList<T> items) fixed to copy items only within block size & skip the rest. 2023-03-11 22:09:36 +01:00
Marek Lemańczyk 625b44d341 xxx_AddRangeWhenSourceIsIList benchmarks will now use TestObjectsAsRecyclableList, to avoid any hidden List optimizations 2023-03-11 20:04:36 +01:00
Marek Lemańczyk f08633da61 New unit tests added. 2023-03-11 20:02:58 +01:00
Marek Lemańczyk e968b47863 RecyclableList.AddRange(RecyclableList<T> items) code standardized. 2023-03-11 20:02:02 +01:00
Marek Lemańczyk fb3290f853 RecyclableList.AddRange(IList<T> items) performance improvements 2023-03-11 19:51:51 +01:00
Marek Lemańczyk 44c8286f85 RecyclableList.RecyclableList.AddRange(RecyclableArrayList<T> items) fixed to break the loop when we reach the last block. 2023-03-11 19:38:50 +01:00
Marek Lemańczyk a7d6a9b7e5 RecyclableList.AddRange(T[] items) fixed to break the loop when we reach the last block. 2023-03-11 19:33:40 +01:00
Marek Lemańczyk 689061f512 Cleanup - Version 2 removed 2023-03-11 17:14:10 +01:00
Marek Lemańczyk a1187a06a4 RecyclableList.AddRange(List<T> items) performance improvements 2023-03-11 17:12:31 +01:00
Marek Lemańczyk 8dfdc6f088 Removed unnecessary Span<T> creation in RecyclableList.AddRange(T[] items) & .AddRange(RecyclableArrayList<T> items) 2023-03-11 16:43:14 +01:00
Marek Lemańczyk 1d61684300 RecyclableList.AddRange(RecyclableArrayList<T> items) performance improvements & simplification. 2023-03-11 16:00:59 +01:00
Marek Lemańczyk e7e670ae35 RecyclableList.AddRange(T[] items) performance improvements. 2023-03-11 15:51:52 +01:00
Marek Lemańczyk f76276c7a4 RecyclableArrayList.CopyTo fixed to copy only the no. of items added to the list. 2023-03-11 15:26:39 +01:00
Marek Lemańczyk 9c640f4251 RecyclableList.AddRange(List<T> items) performance improvements. 2023-03-10 18:30:41 +01:00
Marek Lemańczyk 948bbaff5c New benchmarks added 2023-03-10 17:10:19 +01:00
Marek Lemańczyk 41ad48d4e6 New benchmarks addedo 2023-03-10 17:09:53 +01:00
Marek Lemańczyk 3ce3becfbd RecyclableList performance improvements & fixes. New tests added. 2023-03-10 16:52:36 +01:00
Marek Lemańczyk 02138dfac6 New tests added for IndexOf & LongIndexOf 2023-03-05 19:19:54 +01:00
Marek Lemańczyk 0cd68fbb7c New benchmark cases added 2023-03-05 19:02:37 +01:00
Marek Lemańczyk a15f2431fc Tabs fixed. New benchmark params added 2023-03-05 19:01:53 +01:00
Marek Lemańczyk 73e07c917d RecyclableList_LongIndexOf_FirstItems & RecyclableList_LongIndexOf_LastItems benchmarks added 2023-03-05 18:55:23 +01:00
Marek Lemańczyk ba17f6972f RecyclableList_IndexOf_FirstItems, RecyclableList_IndexOf_LastItems, List_IndexOf_FirstItems & List_IndexOf_LastItems benchmarks fixed to always search for some items, if the no. of test cases is low. 2023-03-05 18:54:33 +01:00
Marek Lemańczyk 2558f57934 RecyclableList.Remove modified to allow removing the last item. 2023-03-05 18:51:06 +01:00
Marek Lemańczyk ec355160f9 IndexOf & LongIndexOf made alike. Small refactoring. 2023-03-05 18:50:09 +01:00
Marek Lemańczyk a50ef10989 RecyclableList.IndexOf performance improvements. 2023-03-05 14:33:43 +01:00
Marek Lemańczyk 9676ee7485 Performance improvement for low no. of items 2023-03-03 01:33:41 +01:00
Marek Lemańczyk be9dfaf43a Code cleanup. Unnecessary versions removed. 2023-03-03 01:31:14 +01:00
Memek cbd9850f58 RecyclableCollectionsBenchmarks.List_Contains_FirstItems, . List_Contains_LastItems, .RecyclableList_Contains_FirstItems, .RecyclableList_Contains_LastItems fixed to always search for at least 1 element. 2023-03-02 18:54:35 +01:00
Memek 248dff8fda BenchmarkBase fixed to cover case when BockSize is 0. 2023-03-02 17:47:25 +01:00
Marek Lemańczyk 3552dd00d1 Test object count increased to 100_000 to better cover cases. 2023-03-01 23:09:48 +01:00