28d7bee262
fix(tests): add support for trace logging during tests
2023-08-23 14:18:04 +01:00
0bf89bb82a
refactor!: change exception thrown by GetHash and TryWriteHash
...
The methods no longer throw TypeInitializationException, and instead now throw ArgumentException.
2023-08-23 14:17:42 +01:00
5c21c86a52
refactor!: replace Endianness enum with explicit Big/Little methods
2023-08-23 14:15:52 +01:00
fa375e7758
refactor: conditionally import System.Runtime.Intrinsics.X86
2023-08-22 23:38:18 +01:00
24a7de7e8c
refactor: define test fixtures as internal
2023-08-22 17:32:47 +01:00
e8a331ff96
chore: use shared Build.props for all projects
2023-08-22 17:11:20 +01:00
a14fe4ca64
Merge branch 'main' into release/4.0.0
2023-08-21 17:41:05 +01:00
42cb9acb48
fix: fix AddHostedSingleton not accepting interface as service type
2023-08-21 17:39:35 +01:00
b977b7a4ec
Merge branch 'main' into release/4.0.0
2023-08-09 15:24:33 +01:00
a0b07edc82
fix: replace Moq with a library that DOESN'T steal your pii
...
Moq has recently introduced a payload named SponsorLink which takes PII (your email address) to send to a third party server for remote verification.
This kind of suspicious data harvesting is simply unacceptable, and the developers have now destroyed all credibility and trust with their user base. This change replaces Moq with NSubstitute.
For further information, see:
https://github.com/moq/moq/issues/1372
2023-08-09 15:18:01 +01:00
8d7ca6ea0a
fix(tests): remove outdated tests
...
This should have been part of d8be858359
2023-05-14 16:31:57 +01:00
23dee3d2b8
feat: add value-passthru overloads for ConcatIf
2023-04-14 14:17:33 +01:00
6f3a667e37
feat: add string.ConcatIf
2023-04-14 13:55:52 +01:00
0ae377250c
feat: add IEnumerable<T>.Except(T)
...
LINQ-provided Except method filters by array, but there's no way to filter a single value. This method introduces single-value filtering.
2023-04-13 20:55:24 +01:00
b8a63c0d5c
feat: add float/double support for WriteNoAlloc and WriteLineNoAlloc
2023-04-11 22:27:31 +01:00
f6847315a1
feat: add Progress<T>.OnProgressChanged
...
Provides a mechanism to wrap the ProgressChanged event of a Progress<T> as an IObservable<T>.
2023-04-10 12:44:53 +01:00
57ff32ee94
[ci skip] docs: add comment explaining my absolute pain
2023-04-06 19:18:20 +01:00
9d26f3da60
feat: add TextWriter.WriteNoAlloc/WriteLineNoAlloc
...
Allows writing of integer types without allocating a string.
2023-04-06 19:11:54 +01:00
9791fd23bb
feat: add CountDigit for integer types
2023-04-06 14:40:27 +01:00
0621c246a0
feat: add Span<T>.Replace
2023-04-06 02:31:22 +01:00
4a0e3c10d7
test: return coverage to 100% ( #76 )
2023-04-05 23:18:14 +01:00
744f5e906b
test: remove redundant quality checks ( #76 )
2023-04-05 22:51:59 +01:00
dbeb13efcd
test: fix expected/actual value swap ( #76 )
2023-04-05 22:51:59 +01:00
ab62db2b37
chore: switch from MSTest to NUnit ( #76 )
2023-04-05 22:51:59 +01:00
e84eef60e6
chore: suppress tfm support build warnings
2023-04-05 17:37:26 +01:00
b91aad6305
feat: convert DigitalRoot and Mod to generic math
2023-04-05 15:35:25 +01:00
dc1b9d6c04
feat: add math extensions for BigInteger
2023-04-05 11:05:53 +01:00
b8c3a5121a
feat: add DateOnly extensions
2023-04-04 10:10:55 +01:00
514e5b12b0
feat: add MathUtility.Pulse ( resolves #60 )
2023-04-03 17:26:03 +01:00
1939bbe4ba
feat: add MathUtility.Sawtooth ( #60 )
2023-04-03 17:15:11 +01:00
c7370c39fd
feat: add MathUtility.Sigmoid ( #60 )
2023-04-03 16:38:58 +01:00
654d5b5b08
feat: Add MathUtility.ExponentialDecay ( #60 )
2023-04-03 16:21:43 +01:00
9cf003481c
refactor: move exception messages to resource file ( #27 )
2023-04-03 15:57:31 +01:00
d27f4caef7
feat: add MathUtility.SmoothStep ( #60 )
2023-04-03 15:47:18 +01:00
105ff81713
test: add tests for MathUtility.Lerp
2023-04-03 15:02:03 +01:00
3f147c98b2
feat: add double overload for Bias ( #60 )
2023-04-03 15:00:13 +01:00
f131c281cf
feat: add MathUtility.Bias ( #60 )
2023-04-03 14:41:32 +01:00
9417ee6be1
test: bring coverage to 100% for Drawing
2023-04-03 14:13:32 +01:00
8b4fd45e05
fix(test): assert vertex count against Polygon.Empty
2023-04-03 13:54:23 +01:00
262f191799
fix(test): assert ArgumentNullException only for .NET < 6
2023-04-03 13:47:59 +01:00
9985652c40
test: 100% coverage on RandomExtensions
2023-04-03 13:43:07 +01:00
b806e50ec1
[ci skip] style: remove unused using directives
2023-04-03 13:42:53 +01:00
6ef48fc3b9
test: 100% coverage on IntrinsicUtility ( #73 )
2023-04-03 13:41:41 +01:00
783c4b0f8e
test: add tests for integer Pack ( #73 )
2023-04-03 01:28:01 +01:00
92855ddbab
fix(test): remove invalid namespace imports
2023-04-02 23:15:22 +01:00
22d5f07215
test: add tests for ReadOnlySpan.Pack ( #73 )
...
1 failing test: PackInt32Internal_Sse2_ShouldReturnCorrectInt32_GivenReadOnlySpan
This will fail the dotnet workflow.
2023-04-02 23:14:38 +01:00
78cebbce8b
test: add unit tests for Span.Contains(Enum) ( #73 )
2023-04-02 22:11:45 +01:00
4fc0d01670
test: cover null input for IsIPv4 and IsIPv6
2023-04-02 21:59:35 +01:00
d68d893abd
test: 100% coverage on Reflection extensions
2023-04-02 20:48:15 +01:00
2c01b0e23a
build: remove Debug properties in test csproj
...
I believe these properties to be the cause of an issue with symbol verification when publishing X10D to nuget.org. I will report with status after this nightly run.
2023-04-02 15:53:54 +01:00
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
daff6ee3fe
fix: suppress .NET analyzer for test project
2023-04-02 03:31:37 +01:00
bf73ecce32
test: add unit tests for ServiceCollectionExtensions
2023-04-02 03:31:19 +01:00
85f4e8c733
test: bring coverage to 100% for AddOrUpdate
2023-04-02 01:16:12 +01:00
bfd3a5663d
[ci skip] ci: enable .NET analyzers for all projects
2023-04-02 01:11:14 +01:00
427563bfdb
[ci skip] test: CollectCoverage:true
2023-04-02 01:07:01 +01:00
e5ec06cfe5
[ci skip] test: output debug symbols
2023-04-02 01:06:38 +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
586057ba3d
test: add tests for ReverseElements ( #73 )
2023-04-01 23:48:08 +01:00
6f16c0df3c
test: add tests for CorrectBoolean ( #73 )
2023-04-01 23:40:41 +01:00
d7bf9d1788
style(test): remove throws of NotImplementedException
2023-04-01 22:00:40 +01:00
23282db3a9
fix(test): import X10D.Core for NextSingle to work on < net6.0
2023-04-01 22:00:11 +01:00
87b6dbdd56
test: bring coverage to 100% for integer Unpack ( #70 )
2023-04-01 21:56:45 +01:00
ca5f95bbf6
test: test RuneExtensions for .NET >= 5
2023-04-01 18:59:24 +01:00
e52e9096e0
feat: expose ComplexSqrt to all frameworks
2023-04-01 18:54:04 +01:00
1acee3bf72
fix(test): fix incorrect date being returned for .NET Standard 2.1
2023-04-01 18:20:44 +01:00
5714ef73c1
test: 100% coverage on stream Read/Write methods
2023-04-01 18:17:50 +01:00
2815c505c3
fix: fix incorrect float/double being written for netstandard2.1
...
The call to _To_Bits yields the result containing the same bytes, but not the same value. This value was then stored as-is into the parameter, which causes a conversion on how the value is stored, ultimately causing the wrong value to be written to the stream.
2023-04-01 17:11:05 +01:00
b2a27cdafb
fix(test): fix Clear unit test not creating the temp directory
2023-04-01 17:06:19 +01:00
35113fac27
test: run tests for .NET 7, 6, and Core 3.1
...
.NET Core 3.1 allows testing of the .NET Standard 2.1 implementation of X10D
2023-04-01 17:05:46 +01:00
dd325ba5c9
test: test Equals(object) for various Drawing types
...
This brings coverage to 100% for the affected types.
2023-04-01 00:30:51 +01:00
8b768f824c
test: add tests for Point.IsOnLine and PointF.IsOnLine
2023-04-01 00:30:04 +01:00
6e7e162ffe
test: 100% coverage on MultiplicativePersistence
2023-03-31 23:19:21 +01:00
3d2baf595b
test: 100% coverage on Wrap for all types
2023-03-31 20:37:50 +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
f293f247e7
[ci skip] style: remove unused using directives
2023-03-31 20:18:01 +01:00
708207305c
test: use fixed point of reference for Age tests
2023-03-31 20:15:59 +01:00
3734965757
test: bring coverage to 94% for RuneExtensions
2023-03-31 20:11:03 +01:00
e852726b66
test: 100% coverage on Enumerable and String methods in Text namespace
2023-03-31 18:53:08 +01:00
369882c1e8
[ci skip] style: remove unused using directives
2023-03-31 18:52:12 +01:00
275d98fbf8
feat: add LowestCommonMultiple for built-in integer types
...
This was previously incorrectly documented in CHANGELOG.md. The method now exists. Sorry about that
2023-03-31 18:07:50 +01:00
9ee99d72d3
[ci skip] style: upgrade projects to C# 11
...
NB: While using a higher C# version with lower framework version is possible, it's generally advised against because C# syntax may map to .NET types not available in older versions such as .NET Standard 2.1.
This change does not invite the codebase to upgrade to newer types, but rather take advantage of syntax sugar (such as file-scoped namespaces, when this project was updated to C# 10) that does not effect the compiled result.
However, this change does open up the possibilities to add extension methods for the "generic math" interfaces (made possible by static interface members), and these upcoming methods will be targeted to .NET 7 or greater **ONLY**.
2023-03-31 17:30:30 +01:00
4cd669a200
[ci skip] fix(test): force enumeration of lazy enumerable
2023-03-31 15:11:50 +01:00
14e638e6d9
feat: add IEnumerable<T>.ConcatOne
2023-03-31 14:53:02 +01:00
cd4c3542f7
fix: use intrinsic convention for ToVector3
2023-03-31 01:31:19 +01:00
4c62367303
test: cover Span<char> overloads of CountSubstring
2023-03-30 21:22:45 +01:00
f30c052673
test: 100% coverage for TimeSpanParser.TryParse
2023-03-30 20:44:45 +01:00
628ead1ebb
test: add tests for GetIso8601WeekOfYear
2023-03-30 20:44:32 +01:00
76810408f2
[ci skip] style(test): suppress IteratorNeverReturns warning
2023-03-30 20:18:17 +01:00
3ce8d281b7
feat: add TextReader.EnumerateLines/Async
2023-03-30 17:55:41 +01:00
4f3f791948
[ci skip] test: assert ArgumentNullException from Grep
2023-03-30 17:49:00 +01:00
d0f94a6493
feat: add IEnumerable<string>.Grep()
2023-03-30 17:29:54 +01:00
f49188b428
feat: add string.EnsureEndsWith and string.EnsureStartsWith
2023-03-30 02:09:04 +01:00
f5b53cd3f6
[ci skip] test: remove netstandard2.1 from test csproj
2023-03-29 17:55:00 +01:00
4dd31ec1b6
[ci skip] style: reformat & cleanup solution
2023-03-29 17:46:56 +01:00
436f56d912
feat: add Saturate for floating point types ( #60 )
2023-03-29 16:21:16 +01:00
121c3a388a
test: 100% coverage on EnumerableExtensions
2023-03-28 16:28:38 +01:00