Commit Graph

1068 Commits

Author SHA1 Message Date
Oliver Booth ec266063f9
fix(DoS): specify timeout in Regex ctor
This isn't actually a "fix", the method may be slow by design if the source is lazily enumerated. SonarCloud, however, did not like this method not having an explicit timeout. If SonarCloud continues to complain, we'll just shut its mouth masking tape and throw it in the broom closet.
2023-03-31 21:29:29 +01:00
Oliver Booth e70781ef0f
perf: remove redundant 6k ± 1 check in IsPrime
No integers >3 satisfy the condition of being odd AND not being a multiple of 3 (as checked above) AND not being in the form 6k ± 1. This condition never evaluates to true, and so the return is never reached and was preventing this method from hitting 100% code coverage.
2023-03-31 21:25:17 +01:00
Oliver Booth c8ccb1deb8
perf: remove redundant 0 check in Sqrt
This check was a defensive manoeuvrer in the event that the input is 0, but this condition has already been verified to be false with the switch guard clause.

This changes bumps coverage to 100% for Sqrt.
2023-03-31 20:40:06 +01:00
Oliver Booth 3d2baf595b
test: 100% coverage on Wrap for all types 2023-03-31 20:37:50 +01:00
Oliver Booth 3f47a4ec44
[ci skip] test: rename Pack8Bit to PackByte 2023-03-31 20:23:56 +01:00
Oliver Booth 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
Oliver Booth 626f1e931c
style: use explicit type for Vector128<byte> 2023-03-31 20:18:22 +01:00
Oliver Booth f293f247e7
[ci skip] style: remove unused using directives 2023-03-31 20:18:01 +01:00
Oliver Booth 09d3c311d9
test: exclude "packing magic" properties from coverage 2023-03-31 20:17:27 +01:00
Oliver Booth 4152c289e3
[ci skip] style: restrict scope of pragma suppression 2023-03-31 20:16:57 +01:00
Oliver Booth 708207305c
test: use fixed point of reference for Age tests 2023-03-31 20:15:59 +01:00
Oliver Booth 3734965757
test: bring coverage to 94% for RuneExtensions 2023-03-31 20:11:03 +01:00
Oliver Booth e852726b66
test: 100% coverage on Enumerable and String methods in Text namespace 2023-03-31 18:53:08 +01:00
Oliver Booth 369882c1e8
[ci skip] style: remove unused using directives 2023-03-31 18:52:12 +01:00
Oliver Booth 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
Oliver Booth 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
Oliver Booth 3cb459028f
[ci skip] docs: use C# 10 "where feasible" 2023-03-31 15:18:32 +01:00
Oliver Booth dd1a423752
[ci skip] docs: do england more gooder
Rider threw some warnings about grammar here. This change fixes the grammar. Rider has been tossed to the gulag
2023-03-31 15:18:05 +01:00
Oliver Booth b406b4dbb0
[ci skip] docs: update copyright year in LICENSE.md 2023-03-31 15:12:59 +01:00
Oliver Booth 4cd669a200
[ci skip] fix(test): force enumeration of lazy enumerable 2023-03-31 15:11:50 +01:00
Oliver Booth 38112f07ac
[ci skip] style: remove trailing whitespace 2023-03-31 15:10:51 +01:00
Oliver Booth d56d12ca23
perf: lazily yield additional value
This prevents an allocation of the array, saving approximately half. Initial benchmarks also show this implementation to be ~100ns faster
2023-03-31 15:07:08 +01:00
Oliver Booth 14e638e6d9
feat: add IEnumerable<T>.ConcatOne 2023-03-31 14:53:02 +01:00
Oliver Booth 33c5361c0b
fix/perf: return zero vector for identity quaternion 2023-03-31 01:33:38 +01:00
Oliver Booth cd4c3542f7
fix: use intrinsic convention for ToVector3 2023-03-31 01:31:19 +01:00
Oliver Booth 02947944cd
fix: accept ReadOnlySpan not Span for search needle 2023-03-30 21:23:46 +01:00
Oliver Booth 4c62367303
test: cover Span<char> overloads of CountSubstring 2023-03-30 21:22:45 +01:00
Oliver Booth f360311d9c
perf: exit early if TryGetNonEnumeratedCount is 0 2023-03-30 20:56:34 +01:00
Oliver Booth f30c052673
test: 100% coverage for TimeSpanParser.TryParse 2023-03-30 20:44:45 +01:00
Oliver Booth 628ead1ebb
test: add tests for GetIso8601WeekOfYear 2023-03-30 20:44:32 +01:00
Oliver Booth 006523d342
[ci skip] perf: convert Count to for loop with index access 2023-03-30 20:21:29 +01:00
Oliver Booth 76810408f2
[ci skip] style(test): suppress IteratorNeverReturns warning 2023-03-30 20:18:17 +01:00
Oliver Booth 3ce8d281b7
feat: add TextReader.EnumerateLines/Async 2023-03-30 17:55:41 +01:00
Oliver Booth 4f3f791948
[ci skip] test: assert ArgumentNullException from Grep 2023-03-30 17:49:00 +01:00
Oliver Booth 12d2e10be4
[ci skip] docs: mention ArgumentNullException for Grep 2023-03-30 17:43:56 +01:00
Oliver Booth d0f94a6493
feat: add IEnumerable<string>.Grep() 2023-03-30 17:29:54 +01:00
Oliver Booth f49188b428
feat: add string.EnsureEndsWith and string.EnsureStartsWith 2023-03-30 02:09:04 +01:00
Oliver Booth f5b53cd3f6
[ci skip] test: remove netstandard2.1 from test csproj 2023-03-29 17:55:00 +01:00
Oliver Booth 4dd31ec1b6
[ci skip] style: reformat & cleanup solution 2023-03-29 17:46:56 +01:00
Oliver Booth 436f56d912
feat: add Saturate for floating point types (#60) 2023-03-29 16:21:16 +01:00
Oliver Booth 34d1f859a7
[ci skip] ci(upm): output package.json instead of print to stdout 2023-03-29 16:08:19 +01:00
Oliver Booth 9ecbbee571
ci(upm): update package.json in upm branch (#69) 2023-03-29 16:03:55 +01:00
Oliver Booth 7a119fc3c1
ci(upm): automate upm branch update (resolves #69) 2023-03-29 15:00:00 +01:00
Oliver Booth a09492d418
perf: use UnsafeUtility for Unity<->System conversions 2023-03-29 00:14:49 +01:00
Oliver Booth 183033cc80
test: update X10D.Unity.Tests to 2021.3.21f1
This update also updates com.unity.collab-proxy to 2.0.1
2023-03-28 23:18:56 +01:00
Oliver Booth e0bdaaddce
style/perf: reduce complexity of MinMax and MinMaxBy 2023-03-28 16:28:59 +01:00
Oliver Booth 121c3a388a
test: 100% coverage on EnumerableExtensions 2023-03-28 16:28:38 +01:00
Oliver Booth 9bb9c9692a
tests: 100% coverage on Circle and CircleF 2023-03-28 16:09:35 +01:00
Oliver Booth 3e4d9603c0
test: cover Color.Deconstruct 2023-03-28 15:54:06 +01:00
Oliver Booth 3bc2ae45c7
style: remove unused using directive 2023-03-28 15:44:48 +01:00