fdc0c6aa35
perf: fix performance of intrisics
...
This changes removes the CPU-arch support provider interfaces that were introduced with 87b6dbdd56
. That commit worsened the performance of the intrinsic methods because it resulted in a box when upcasting the System_SupportProvider value type to an interface, removing the potential for JIT to optimise the code path.
2023-04-02 15:17:28 +01:00
6b1dc2837a
test: bring coverage to 100% for Collections, Linq, Math, and Text
2023-04-02 04:16:33 +01:00
85f4e8c733
test: bring coverage to 100% for AddOrUpdate
2023-04-02 01:16:12 +01:00
95cd3e8cbc
test: bring coverage to 100% for X10D.Collections.SpanExtensions
2023-04-02 00:36:31 +01:00
f10ff4a36c
test: add tests for Span<T>.Count
2023-04-02 00:18:47 +01:00
87b6dbdd56
test: bring coverage to 100% for integer Unpack ( #70 )
2023-04-01 21:56:45 +01:00
3f47a4ec44
[ci skip] test: rename Pack8Bit to PackByte
2023-03-31 20:23:56 +01:00
62034ded75
style(test): segment methods to partials
...
This changes introduces the Moq package to create mocked objects implementing IDisposable, rather than defining a concrete class.
2023-03-31 20:21:17 +01:00
76810408f2
[ci skip] style(test): suppress IteratorNeverReturns warning
2023-03-30 20:18:17 +01:00
041181cc5a
Add IEnumerable<T?>.WhereNotNull()
2023-02-27 21:11:37 +00:00
b60fdc495b
Add IReadOnlyList<T>.Slice
2022-12-01 13:51:30 +00:00
e02fd3b1b4
Add IReadOnlyList<T>.IndexOf
2022-12-01 12:28:33 +00:00
53e8b2ff64
Repurpose Span<T>.Split to accept generic
2022-11-29 12:39:34 +00:00
3847d53120
Add more LINQ-esque methods
...
* IEnumerable<T>.CountWhereNot(Func<T, bool>)
* IEnumerable<T>.FirstWhereNot(Func<T, bool>)
* IEnumerable<T>.FirstWhereNotOrDefault(Func<T, bool>)
* IEnumerable<T>.LastWhereNot(Func<T, bool>)
* IEnumerable<T>.LastWhereNotOrDefault(Func<T, bool>)
* IEnumerable<T>.WhereNot(Func<T, bool>)
2022-07-30 23:53:35 +01:00
02765b8b19
Add IList<T>.Swap ( #62 )
2022-07-14 10:22:37 +01:00
3d896ea5d1
Add IList<T>.RemoveRange(Range)
2022-06-03 11:53:40 +01:00
b5227f58d3
Code cleanup for X10D.Tests
2022-06-01 15:35:00 +01:00
ed2920f8a0
Multi-target X10D.Tests
2022-05-07 23:16:06 +01:00
39ccf1f198
Denote CLS-noncompliant tests as such
2022-05-07 23:14:07 +01:00
adf2281f21
Add DisposeAll(Async) and ClearAndDisposeAll(Async)
2022-05-02 22:31:09 +01:00
fd53b41610
Move EnumerableTests to Collections namespace
2022-05-02 22:27:21 +01:00
14148f751a
Add tests for ToConnectionString/ToGetParameters
2022-04-30 10:36:03 +01:00
9006bdffa2
Add IDictionary.AddOrUpdate
2022-04-29 18:10:41 +01:00
ba6c400a79
Rename UnpackBits to Unpack, PacknBit to Pack(CLR type)
2022-04-28 22:58:58 +01:00
e08274189a
Add Pack/Unpack bits
...
Allows a bool list (no more than 64 in length) to be packed to an integer, which can be unpacked again
2022-04-28 09:47:48 +01:00
5a88a06551
[ci skip] Move AsArrayValue tests to CoreTests
2022-04-26 11:04:09 +01:00
f7f3ea71bb
Append "Value" to AsArray/AsEnumerable, to reduce risk of LINQ collision
2022-04-26 10:45:18 +01:00
c4abef7be6
Move IO related methods to IO namespaces ( #7 )
...
Also renames more tests to be more meaningful
2022-04-25 17:09:49 +01:00
9a089a9ae2
Declare sliced Fill for IList<T> not T[]
2022-04-25 10:34:17 +01:00
30e925cdb0
Move additional methods into child namespaces ( #7 )
2022-04-24 10:09:56 +01:00
68d1ea6f4d
[ci skip] Reduce chance of Shuffle tests failing
...
A list containing 5 elements has a 1/(5!) (1/120) chance of being shuffled to the same order. This was causing unit tests to fail locally by pure fluke. Tests now generate a list from 1-52, which has a 1/(52!) chance of shuffling to the same order, so the chance is basically 0. If these tests ran once per second, it would take 1.9x10^50 * age of the universe to hit a collision.
This still can happen. Randomness does not guarantee we won't hit the same order. The odds are just so astronomically small that it's not worth considering. And if the CI run fails due to these tests failing, just re-run them anyway and call it a day
2022-04-23 11:25:09 +01:00
0fb01726db
Add tests for Enumerable/List
2022-04-21 22:35:06 +01:00