Skip to content

Fixed doc typo

Fixed doc typo #1514

GitHub Actions / windows - Test Report succeeded Jan 25, 2025 in 0s

574 passed, 0 failed and 24 skipped

Tests passed successfully

Report Passed Failed Skipped Time
src/UnitTests/TestResults/runneradmin_fv-az653-281_2025-01-25_16_08_24.trx 287✅ 12⚪ 8s
src/UnitTests/TestResults/runneradmin_fv-az653-281_2025-01-25_16_08_30.trx 287✅ 12⚪ 17s

✅ src/UnitTests/TestResults/runneradmin_fv-az653-281_2025-01-25_16_08_24.trx

299 tests were completed in 8s with 287 passed, 0 failed and 12 skipped.

Test suite Passed Failed Skipped Time
NanoByte.Common.Collections.ArrayUtilsTest 5✅ 5ms
NanoByte.Common.Collections.CollectionExtensionsTest 1✅ 1ms
NanoByte.Common.Collections.DictionaryExtensionsTest 6✅ 8ms
NanoByte.Common.Collections.EnumerableExtensionsTest 15✅ 28ms
NanoByte.Common.Collections.LanguageSetTest 6✅ 117ms
NanoByte.Common.Collections.ListExtensionsTest 3✅ 2ms
NanoByte.Common.Collections.LocalizableStringCollectionTest 6✅ 46ms
NanoByte.Common.Collections.MultiDictionaryTest 3✅ 4ms
NanoByte.Common.Collections.NamedCollectionTest 2✅ 2ms
NanoByte.Common.Collections.TransparentCacheTest 1✅ 1ms
NanoByte.Common.Collections.XmlDictionaryTest 5✅ 97ms
NanoByte.Common.Dispatch.AggregateDispatcherTest 2✅ 1ms
NanoByte.Common.Dispatch.BucketizerTest 2✅ 3ms
NanoByte.Common.Dispatch.MergeTest 4✅ 4ms
NanoByte.Common.Dispatch.ModelViewSyncTest 8✅ 84ms
NanoByte.Common.Dispatch.PerTypeDispatcherTest 4✅ 95ms
NanoByte.Common.EncodingUtilsTest 6✅ 2ms
NanoByte.Common.ExceptionUtilsTest 13✅ 6s
NanoByte.Common.Info.AppInfoTest 1✅ 2ms
NanoByte.Common.LogTest 3✅ 7ms
NanoByte.Common.MathUtilsTest 6✅ 311ms
NanoByte.Common.Native.AppMutexTest 1✅ 3ms
NanoByte.Common.Native.CygwinUtilsTest 3✅ 20ms
NanoByte.Common.Native.OSUtilsTest 3✅ 8ms
NanoByte.Common.Native.ProcessLauncherTest 2✅ 84ms
NanoByte.Common.Native.RegistryUtilsTest 1✅ 2ms
NanoByte.Common.Native.UnixUtilsTest 5⚪ 5ms
NanoByte.Common.Native.WindowsRestartManagerTest 1✅ 585ms
NanoByte.Common.Native.WindowsUtilsTest 5✅ 8ms
NanoByte.Common.Net.DownloadFileTest 5✅ 1s
NanoByte.Common.Net.MicroServerTest 1✅ 898ms
NanoByte.Common.Net.NetrcTest 1✅ 19ms
NanoByte.Common.Net.NetUtilsTest 1✅ 54ms
NanoByte.Common.Net.UriExtensionsTest 12✅ 4ms
NanoByte.Common.ProcessUtilsTest 14✅ 5ms
NanoByte.Common.PropertyPointerTest 5✅ 158ms
NanoByte.Common.Storage.CopyDirectoryTest 5✅ 2⚪ 41ms
NanoByte.Common.Storage.FileUtilsTest 27✅ 1⚪ 59ms
NanoByte.Common.Storage.JsonStorageTest 3✅ 6ms
NanoByte.Common.Storage.MoveDirectoryTest 1✅ 7ms
NanoByte.Common.Storage.PathsTest 2✅ 14ms
NanoByte.Common.Storage.ReadFileTest 1✅ 2ms
NanoByte.Common.Storage.TemporaryDirectoryTest 2✅ 33ms
NanoByte.Common.Storage.TemporaryFileTest 2✅ 3ms
NanoByte.Common.Storage.XmlStorageTest 3✅ 46ms
NanoByte.Common.Streams.OffsetStreamTest 5✅ 1ms
NanoByte.Common.Streams.ProgressStreamTest 4✅ 30ms
NanoByte.Common.Streams.SeekBufferStreamTest 6✅ 4ms
NanoByte.Common.Streams.ShadowingStreamTest 1✅ 1ms
NanoByte.Common.Streams.StreamUtilsTest 12✅ 10ms
NanoByte.Common.StringUtilsTest 24✅ 5ms
NanoByte.Common.Tasks.ActionTaskTest 2✅ 2ms
NanoByte.Common.Tasks.DeferredProgressTest 2✅ 435ms
NanoByte.Common.Tasks.ForEachTaskTest 4✅ 279ms
NanoByte.Common.Tasks.PercentageTaskTest 2✅ 2ms
NanoByte.Common.Tasks.ResultTaskTest 2✅ 2ms
NanoByte.Common.Threading.JobQueueTest 1✅ 107ms
NanoByte.Common.Threading.ResultRacerTest 4⚪ 4ms
NanoByte.Common.Threading.WaitTaskTest 3✅ 240ms
NanoByte.Common.Undo.CollectionTest 2✅ 2ms
NanoByte.Common.Undo.CommandCollectorTest 1✅ 0ms
NanoByte.Common.Undo.CompositeCommandTest 4✅ 5ms
NanoByte.Common.Undo.PreExecutedCompositeCommandTest 1✅ 9ms
NanoByte.Common.Undo.ReplaceInListTest 1✅ 1ms
NanoByte.Common.Undo.SetLocalizableStringTest 1✅ 2ms
NanoByte.Common.UnixTimeTest 6✅ 4ms

✅ NanoByte.Common.Collections.ArrayUtilsTest

✅ TestAppend
✅ TestConcat
✅ TestConcatParams
✅ TestPrepend
✅ TestSequencedEquals

✅ NanoByte.Common.Collections.CollectionExtensionsTest

✅ TestAddIfNew

✅ NanoByte.Common.Collections.DictionaryExtensionsTest

✅ TestGetOrAdd
✅ TestGetOrAddAsync
✅ TestGetOrAddAsyncRace
✅ TestGetOrDefault
✅ TestGetUnsequencedHashCode
✅ TestUnsequencedEquals

✅ NanoByte.Common.Collections.EnumerableExtensionsTest

✅ TestAppend
✅ TestContainsAny
✅ TestDistinctBy
✅ TestGetSequencedHashCode
✅ TestGetUnsequencedHashCode
✅ TestMaxBy
✅ TestMinBy
✅ TestPermutate
✅ TestPermutateEmpty
✅ TestPrepend
✅ TestSequencedEquals
✅ TestTopologicalSort
✅ TestTrySelectCatchException
✅ TestTrySelectPassException
✅ TestUnsequencedEquals

✅ NanoByte.Common.Collections.LanguageSetTest

✅ TestContainsAny
✅ TestContainsAnyIgnoreCountry
✅ TestDuplicateDetection
✅ TestFromString
✅ TestInvalidCultureInSet
✅ TestToString

✅ NanoByte.Common.Collections.ListExtensionsTest

✅ TestAddOrReplace
✅ TestGetAddedElements
✅ TestRemoveLast

✅ NanoByte.Common.Collections.LocalizableStringCollectionTest

✅ TestContainsExactLanguage
✅ TestGetBestLanguage
✅ TestGetExactLanguage
✅ TestRemoveRange
✅ TestSaveLoad
✅ TestSet

✅ NanoByte.Common.Collections.MultiDictionaryTest

✅ TestAdd
✅ TestRemove
✅ TestValues

✅ NanoByte.Common.Collections.NamedCollectionTest

✅ TestRename
✅ TestSort

✅ NanoByte.Common.Collections.TransparentCacheTest

✅ Test

✅ NanoByte.Common.Collections.XmlDictionaryTest

✅ ShouldRejectDuplicateKeys
✅ TestContainsKey
✅ TestContainsValue
✅ TestGetValue
✅ TestSaveLoad

✅ NanoByte.Common.Dispatch.AggregateDispatcherTest

✅ Aggregate
✅ UnknownType

✅ NanoByte.Common.Dispatch.BucketizerTest

✅ TestPredicate
✅ TestValue

✅ NanoByte.Common.Dispatch.MergeTest

✅ TestMergeAddAndRemove
✅ TestMergeEquals
✅ TestMergeModify
✅ TestMergeSimple

✅ NanoByte.Common.Dispatch.ModelViewSyncTest

✅ Dispose
✅ Initialize
✅ Lookup
✅ MonitoringAdd
✅ MonitoringChanged
✅ MonitoringChangedRebuild
✅ MonitoringRemove
✅ Representations

✅ NanoByte.Common.Dispatch.PerTypeDispatcherTest

✅ TestDispatchAction
✅ TestDispatchActionExceptions
✅ TestDispatchFunc
✅ TestDispatchFuncExceptions

✅ NanoByte.Common.EncodingUtilsTest

✅ TestBase16Decode
✅ TestBase16Encode
✅ TestBase32Encode
✅ TestBase64Utf8Decode
✅ TestBase64Utf8Encode
✅ TestHash

✅ NanoByte.Common.ExceptionUtilsTest

✅ RethrowFirstInner
✅ TestGetMessageWithInner
✅ TestPreserveStack
✅ TestRetryAsyncDoubleFail
✅ TestRetryAsyncOtherExceptionType
✅ TestRetryAsyncPassOnLastAttempt
✅ TestRetryDoubleFail
✅ TestRetryOtherExceptionType
✅ TestRetryPassOnLastAttempt
✅ TestTryAnyAsyncFail
✅ TestTryAnyAsyncSucceed
✅ TestTryAnyFail
✅ TestTryAnySucceed

✅ NanoByte.Common.Info.AppInfoTest

✅ GetsForCurrentLibrary

✅ NanoByte.Common.LogTest

✅ TestBuffer
✅ TestHandler
✅ TestReadLastErrorFrom

✅ NanoByte.Common.MathUtilsTest

✅ TestEqualsTolerance
✅ TestModule(a: -1, b: 3, result: 2)
✅ TestModule(a: 3, b: 2, result: 1)
✅ TestModule(a: 3, b: 4, result: 3)
✅ TestSizeMultiply
✅ TestXOr

✅ NanoByte.Common.Native.AppMutexTest

✅ TestProbeCreateClose

✅ NanoByte.Common.Native.CygwinUtilsTest

✅ TestCreateSymlink
✅ TestIsSymlinkMatch
✅ TestIsSymlinkNoMatch

✅ NanoByte.Common.Native.OSUtilsTest

✅ TestExpandVariablesCaseInsensitive
✅ TestExpandVariablesCaseSensitive
✅ TestExpandVariablesEscaping

✅ NanoByte.Common.Native.ProcessLauncherTest

✅ Run
✅ RunAndCapture

✅ NanoByte.Common.Native.RegistryUtilsTest

✅ TestGetLastWriteTime

✅ NanoByte.Common.Native.UnixUtilsTest

⚪ TestCreateSymlinkDirectory
⚪ TestCreateSymlinkFile
⚪ TestIsNotExecutable
⚪ TestIsNotSymlink
⚪ TestSetExecutable

✅ NanoByte.Common.Native.WindowsRestartManagerTest

✅ TestListApps

✅ NanoByte.Common.Native.WindowsUtilsTest

✅ TestCreateSymlinkDirectory
✅ TestCreateSymlinkFile
✅ TestGetFolderPath
✅ TestIsNotSymlink
✅ TestSplitArgs

✅ NanoByte.Common.Net.DownloadFileTest

✅ TestCancel
✅ TestFileMissing
✅ TestIncorrectSize
✅ TestRun
✅ TestRunFile

✅ NanoByte.Common.Net.MicroServerTest

✅ Stress

✅ NanoByte.Common.Net.NetrcTest

✅ TestParse

✅ NanoByte.Common.Net.NetUtilsTest

✅ TestConfigureTls

✅ NanoByte.Common.Net.UriExtensionsTest

✅ TestEnsureTrailingSlashAbsolute
✅ TestEnsureTrailingSlashRelative
✅ TestGetLocalFilePath(uri: "file:///test/", path: "test")
✅ TestGetLocalFilePath(uri: "file:///test/my%20file.ext", path: "my file.ext")
✅ TestGetLocalFilePath(uri: "http://test/test/my%20file.ext", path: "my file.ext")
✅ TestGetRoot(uri: "./relative", root: "./relative")
✅ TestGetRoot(uri: "file:///test/", root: "file:///test/")
✅ TestGetRoot(uri: "http://example.com:80/test", root: "http://example.com:80/")
✅ TestGetRoot(uri: "http://example.com:8080/test", root: "http://example.com:8080/")
✅ TestGetRoot(uri: "http://example.com/", root: "http://example.com/")
✅ TestGetRoot(uri: "http://example.com/test", root: "http://example.com/")
✅ TestToStringRfc

✅ NanoByte.Common.ProcessUtilsTest

✅ TestAssembly
✅ TestEscapeArgument(unescaped: "", escaped: "\"\"", because: "Empty strings need to be escaped in order not to v"···)
✅ TestEscapeArgument(unescaped: "test", escaped: "test", because: "Simple strings shouldn't be modified")
✅ TestEscapeArgument(unescaped: "test1 test2", escaped: "\"test1 test2\"", because: "Strings with whitespaces should be encapsulated")
✅ TestEscapeArgument(unescaped: "test1 test2\\", escaped: "\"test1 test2\\\\\"", because: "Trailing backslashes should be escaped")
✅ TestEscapeArgument(unescaped: "test1\"test2", escaped: "test1\\\"test2", because: "Quotation marks should be escaped")
✅ TestEscapeArgument(unescaped: "test1\\\"test2", escaped: "test1\\\\\\\"test2", because: "Slashes with quotation marks should be escaped")
✅ TestEscapeArgument(unescaped: "test1\\\\test2", escaped: "test1\\\\test2", because: "Consecutive slashes without quotation marks should"···)
✅ TestFromCommandLine
✅ TestJoinEscapeArguments(parts: ["part1 \" part2", "part3"], result: "\"part1 \\\" part2\" part3")
✅ TestJoinEscapeArguments(parts: ["part1", "part2"], result: "part1 part2")
✅ TestJoinEscapeArguments(parts: ["part1"], result: "part1")
✅ TestToCommandLine(executable: "executable", args: "my args", commandLine: "executable my args")
✅ TestToCommandLine(executable: "my executable", args: "my args", commandLine: "\"my executable\" my args")

✅ NanoByte.Common.PropertyPointerTest

✅ Delegate
✅ DelegateNullable
✅ ExpressionTree
✅ ExpressionTreeNullable
✅ SetTemp

✅ NanoByte.Common.Storage.CopyDirectoryTest

✅ CopyHardlinks
⚪ CopySymlinks
✅ ErrorHandling
⚪ FollowSymlinks
✅ NoOverwrite
✅ Normal
✅ Overwrite

✅ NanoByte.Common.Storage.FileUtilsTest

✅ TestCreate
✅ TestCreateHardlink
✅ TestExistsCaseSensitive
✅ TestGetFilesRecursive
✅ TestIsBreakoutPath
✅ TestIsRegularFile
✅ TestIsUnixFS
✅ TestPathEqualsAbsolutePath
✅ TestPathEqualsCaseInsensitive
⚪ TestPathEqualsCaseSensitive
✅ TestPathEqualsDirectorySeparator
✅ TestPathEqualsFalse
✅ TestPathEqualsRelativePath
✅ TestPathEqualsWorkingDirectory
✅ TestReadExtendedMetadataExceptionOnMissingBaseFile
✅ TestReadFirstLine
✅ TestRelativeTo
✅ TestReplace
✅ TestReplaceMissing
✅ TestToNativePath
✅ TestTouchExisting
✅ TestTouchNew
✅ TestToUnixPath
✅ TestWalk
✅ TestWalkSingleFile
✅ TestWalkThroughPrefix
✅ TestWriteProtection
✅ TestWriteReadExtendedMetadata

✅ NanoByte.Common.Storage.JsonStorageTest

✅ TestFile
✅ TestFromJsonString
✅ TestToJsonString

✅ NanoByte.Common.Storage.MoveDirectoryTest

✅ Normal

✅ NanoByte.Common.Storage.PathsTest

✅ TestGetFilesAbsolute
✅ TestGetFilesRelative

✅ NanoByte.Common.Storage.ReadFileTest

✅ TestRun

✅ NanoByte.Common.Storage.TemporaryDirectoryTest

✅ CreatesDirectory
✅ CreatesEmptyDirectory

✅ NanoByte.Common.Storage.TemporaryFileTest

✅ CreatesEmptyFile
✅ CreatesFile

✅ NanoByte.Common.Storage.XmlStorageTest

✅ TestFile
✅ TestFromXmlString
✅ TestToXmlString

✅ NanoByte.Common.Streams.OffsetStreamTest

✅ TestPosition
✅ TestReadAll
✅ TestReadAllWithoutSeek
✅ TestSeekBegin
✅ TestSeekCurrent

✅ NanoByte.Common.Streams.ProgressStreamTest

✅ TestReadCancellation
✅ TestReadProgress
✅ TestWriteCancellation
✅ TestWriteProgress

✅ NanoByte.Common.Streams.SeekBufferStreamTest

✅ CannotSeekBackwardsTooFar
✅ CanSekForwardsBeyondBuffer
✅ CanSekForwardsWithZeroBuffer
✅ SeekBackwards
✅ SeekForwardsAndBackwards
✅ SmallBuffer

✅ NanoByte.Common.Streams.ShadowingStreamTest

✅ TestRead

✅ NanoByte.Common.Streams.StreamUtilsTest

✅ TestAsArrayCopy
✅ TestAsArrayNoCopy
✅ TestCopyToFile
✅ TestReadAll
✅ TestReadArray
✅ TestReadSegment
✅ TestSkipNonSeekable
✅ TestSkipSeekable
✅ TestString
✅ TestToMemory
✅ TestWriteArray
✅ TestWriteSegment

✅ NanoByte.Common.StringUtilsTest

✅ ContainsIgnoreCase(value: "This is a test.", searchFor: "test")
✅ ContainsIgnoreCase(value: "This is a test.", searchFor: "TEST")
✅ EqualsIgnoreCase(a: "abc", b: "abc")
✅ EqualsIgnoreCase(a: "abc", b: "ABC")
✅ NotContainsIgnoreCase(value: "test", searchFor: "This is a test.")
✅ NotContainsIgnoreCase(value: "This is a test.", searchFor: "123")
✅ NotEqualsIgnoreCase(a: "abc", b: "123")
✅ NotEqualsIgnoreCase(a: "abc", b: "abc ")
✅ TestEmptyAsNull
✅ TestEndsWith
✅ TestGeneratePassword
✅ TestGetLeftRightPartChar
✅ TestGetLeftRightPartString
✅ TestJoin(parts: ["part1", "part2"], result: "part1 part2")
✅ TestJoin(parts: ["part1"], result: "part1")
✅ TestJoin(parts: [], result: "")
✅ TestRemoveCharacters
✅ TestSplitMultilineText(value: "", result: [""], because: "Should work with empty strings")
✅ TestSplitMultilineText(value: "123", result: ["123"], because: "Should work with single lines")
✅ TestSplitMultilineText(value: "123\nabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestSplitMultilineText(value: "123\r\nabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestSplitMultilineText(value: "123\rabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestStartsWith
✅ TestTrimOverflow

✅ NanoByte.Common.Tasks.ActionTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Tasks.DeferredProgressTest

✅ ForwardsLastRecordedToTarget
✅ ForwardsToTarget

✅ NanoByte.Common.Tasks.ForEachTaskTest

✅ TestCallback
✅ TestExceptionPassing
✅ TestRollbackCancellation
✅ TestRollbackException

✅ NanoByte.Common.Tasks.PercentageTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Tasks.ResultTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Threading.JobQueueTest

✅ RunsWork

✅ NanoByte.Common.Threading.ResultRacerTest

⚪ Async
⚪ AsyncCancellation
⚪ Sync
⚪ SyncCancellation

✅ NanoByte.Common.Threading.WaitTaskTest

✅ TestCancel
✅ TestCancelNoHandle
✅ TestWait

✅ NanoByte.Common.Undo.CollectionTest

✅ TestAddToCollection
✅ TestRemoveFromCollection

✅ NanoByte.Common.Undo.CommandCollectorTest

✅ Test

✅ NanoByte.Common.Undo.CompositeCommandTest

✅ TestExecuteRollback
✅ TestExecuteUndo
✅ TestUndoRollback
✅ TestWrongOrder

✅ NanoByte.Common.Undo.PreExecutedCompositeCommandTest

✅ TestExecuteUndo

✅ NanoByte.Common.Undo.ReplaceInListTest

✅ TestExecute

✅ NanoByte.Common.Undo.SetLocalizableStringTest

✅ TestExecute

✅ NanoByte.Common.UnixTimeTest

✅ FromDateTimeLocal
✅ FromDateTimeOffset
✅ FromDateTimeUnspecified
✅ FromDateTimeUtc
✅ ToDateTime
✅ ToDateTimeOffset

✅ src/UnitTests/TestResults/runneradmin_fv-az653-281_2025-01-25_16_08_30.trx

299 tests were completed in 17s with 287 passed, 0 failed and 12 skipped.

Test suite Passed Failed Skipped Time
NanoByte.Common.Collections.ArrayUtilsTest 5✅ 78ms
NanoByte.Common.Collections.CollectionExtensionsTest 1✅ 3ms
NanoByte.Common.Collections.DictionaryExtensionsTest 6✅ 37ms
NanoByte.Common.Collections.EnumerableExtensionsTest 15✅ 44ms
NanoByte.Common.Collections.LanguageSetTest 6✅ 39ms
NanoByte.Common.Collections.ListExtensionsTest 3✅ 11ms
NanoByte.Common.Collections.LocalizableStringCollectionTest 6✅ 506ms
NanoByte.Common.Collections.MultiDictionaryTest 3✅ 32ms
NanoByte.Common.Collections.NamedCollectionTest 2✅ 7ms
NanoByte.Common.Collections.TransparentCacheTest 1✅ 2ms
NanoByte.Common.Collections.XmlDictionaryTest 5✅ 29ms
NanoByte.Common.Dispatch.AggregateDispatcherTest 2✅ 4ms
NanoByte.Common.Dispatch.BucketizerTest 2✅ 6ms
NanoByte.Common.Dispatch.MergeTest 4✅ 24ms
NanoByte.Common.Dispatch.ModelViewSyncTest 8✅ 77ms
NanoByte.Common.Dispatch.PerTypeDispatcherTest 4✅ 10ms
NanoByte.Common.EncodingUtilsTest 6✅ 6ms
NanoByte.Common.ExceptionUtilsTest 13✅ 8s
NanoByte.Common.Info.AppInfoTest 1✅ 14ms
NanoByte.Common.LogTest 3✅ 22ms
NanoByte.Common.MathUtilsTest 6✅ 122ms
NanoByte.Common.Native.AppMutexTest 1✅ 5ms
NanoByte.Common.Native.CygwinUtilsTest 3✅ 16ms
NanoByte.Common.Native.OSUtilsTest 3✅ 50ms
NanoByte.Common.Native.ProcessLauncherTest 2✅ 203ms
NanoByte.Common.Native.RegistryUtilsTest 1✅ 6ms
NanoByte.Common.Native.UnixUtilsTest 5⚪ 5ms
NanoByte.Common.Native.WindowsRestartManagerTest 1✅ 32ms
NanoByte.Common.Native.WindowsUtilsTest 5✅ 47ms
NanoByte.Common.Net.DownloadFileTest 5✅ 4s
NanoByte.Common.Net.MicroServerTest 1✅ 2s
NanoByte.Common.Net.NetrcTest 1✅ 58ms
NanoByte.Common.Net.NetUtilsTest 1✅ 24ms
NanoByte.Common.Net.UriExtensionsTest 12✅ 32ms
NanoByte.Common.ProcessUtilsTest 14✅ 21ms
NanoByte.Common.PropertyPointerTest 5✅ 29ms
NanoByte.Common.Storage.CopyDirectoryTest 5✅ 2⚪ 45ms
NanoByte.Common.Storage.FileUtilsTest 27✅ 1⚪ 941ms
NanoByte.Common.Storage.JsonStorageTest 3✅ 508ms
NanoByte.Common.Storage.MoveDirectoryTest 1✅ 23ms
NanoByte.Common.Storage.PathsTest 2✅ 25ms
NanoByte.Common.Storage.ReadFileTest 1✅ 13ms
NanoByte.Common.Storage.TemporaryDirectoryTest 2✅ 5ms
NanoByte.Common.Storage.TemporaryFileTest 2✅ 4ms
NanoByte.Common.Storage.XmlStorageTest 3✅ 448ms
NanoByte.Common.Streams.OffsetStreamTest 5✅ 5ms
NanoByte.Common.Streams.ProgressStreamTest 4✅ 23ms
NanoByte.Common.Streams.SeekBufferStreamTest 6✅ 17ms
NanoByte.Common.Streams.ShadowingStreamTest 1✅ 1ms
NanoByte.Common.Streams.StreamUtilsTest 12✅ 34ms
NanoByte.Common.StringUtilsTest 24✅ 28ms
NanoByte.Common.Tasks.ActionTaskTest 2✅ 3ms
NanoByte.Common.Tasks.DeferredProgressTest 2✅ 8ms
NanoByte.Common.Tasks.ForEachTaskTest 4✅ 11ms
NanoByte.Common.Tasks.PercentageTaskTest 2✅ 13ms
NanoByte.Common.Tasks.ResultTaskTest 2✅ 6ms
NanoByte.Common.Threading.JobQueueTest 1✅ 134ms
NanoByte.Common.Threading.ResultRacerTest 4⚪ 4ms
NanoByte.Common.Threading.WaitTaskTest 3✅ 486ms
NanoByte.Common.Undo.CollectionTest 2✅ 5ms
NanoByte.Common.Undo.CommandCollectorTest 1✅ 3ms
NanoByte.Common.Undo.CompositeCommandTest 4✅ 13ms
NanoByte.Common.Undo.PreExecutedCompositeCommandTest 1✅ 10ms
NanoByte.Common.Undo.ReplaceInListTest 1✅ 1ms
NanoByte.Common.Undo.SetLocalizableStringTest 1✅ 2ms
NanoByte.Common.UnixTimeTest 6✅ 9ms

✅ NanoByte.Common.Collections.ArrayUtilsTest

✅ TestAppend
✅ TestConcat
✅ TestConcatParams
✅ TestPrepend
✅ TestSequencedEquals

✅ NanoByte.Common.Collections.CollectionExtensionsTest

✅ TestAddIfNew

✅ NanoByte.Common.Collections.DictionaryExtensionsTest

✅ TestGetOrAdd
✅ TestGetOrAddAsync
✅ TestGetOrAddAsyncRace
✅ TestGetOrDefault
✅ TestGetUnsequencedHashCode
✅ TestUnsequencedEquals

✅ NanoByte.Common.Collections.EnumerableExtensionsTest

✅ TestAppend
✅ TestContainsAny
✅ TestDistinctBy
✅ TestGetSequencedHashCode
✅ TestGetUnsequencedHashCode
✅ TestMaxBy
✅ TestMinBy
✅ TestPermutate
✅ TestPermutateEmpty
✅ TestPrepend
✅ TestSequencedEquals
✅ TestTopologicalSort
✅ TestTrySelectCatchException
✅ TestTrySelectPassException
✅ TestUnsequencedEquals

✅ NanoByte.Common.Collections.LanguageSetTest

✅ TestContainsAny
✅ TestContainsAnyIgnoreCountry
✅ TestDuplicateDetection
✅ TestFromString
✅ TestInvalidCultureInSet
✅ TestToString

✅ NanoByte.Common.Collections.ListExtensionsTest

✅ TestAddOrReplace
✅ TestGetAddedElements
✅ TestRemoveLast

✅ NanoByte.Common.Collections.LocalizableStringCollectionTest

✅ TestContainsExactLanguage
✅ TestGetBestLanguage
✅ TestGetExactLanguage
✅ TestRemoveRange
✅ TestSaveLoad
✅ TestSet

✅ NanoByte.Common.Collections.MultiDictionaryTest

✅ TestAdd
✅ TestRemove
✅ TestValues

✅ NanoByte.Common.Collections.NamedCollectionTest

✅ TestRename
✅ TestSort

✅ NanoByte.Common.Collections.TransparentCacheTest

✅ Test

✅ NanoByte.Common.Collections.XmlDictionaryTest

✅ ShouldRejectDuplicateKeys
✅ TestContainsKey
✅ TestContainsValue
✅ TestGetValue
✅ TestSaveLoad

✅ NanoByte.Common.Dispatch.AggregateDispatcherTest

✅ Aggregate
✅ UnknownType

✅ NanoByte.Common.Dispatch.BucketizerTest

✅ TestPredicate
✅ TestValue

✅ NanoByte.Common.Dispatch.MergeTest

✅ TestMergeAddAndRemove
✅ TestMergeEquals
✅ TestMergeModify
✅ TestMergeSimple

✅ NanoByte.Common.Dispatch.ModelViewSyncTest

✅ Dispose
✅ Initialize
✅ Lookup
✅ MonitoringAdd
✅ MonitoringChanged
✅ MonitoringChangedRebuild
✅ MonitoringRemove
✅ Representations

✅ NanoByte.Common.Dispatch.PerTypeDispatcherTest

✅ TestDispatchAction
✅ TestDispatchActionExceptions
✅ TestDispatchFunc
✅ TestDispatchFuncExceptions

✅ NanoByte.Common.EncodingUtilsTest

✅ TestBase16Decode
✅ TestBase16Encode
✅ TestBase32Encode
✅ TestBase64Utf8Decode
✅ TestBase64Utf8Encode
✅ TestHash

✅ NanoByte.Common.ExceptionUtilsTest

✅ RethrowFirstInner
✅ TestGetMessageWithInner
✅ TestPreserveStack
✅ TestRetryAsyncDoubleFail
✅ TestRetryAsyncOtherExceptionType
✅ TestRetryAsyncPassOnLastAttempt
✅ TestRetryDoubleFail
✅ TestRetryOtherExceptionType
✅ TestRetryPassOnLastAttempt
✅ TestTryAnyAsyncFail
✅ TestTryAnyAsyncSucceed
✅ TestTryAnyFail
✅ TestTryAnySucceed

✅ NanoByte.Common.Info.AppInfoTest

✅ GetsForCurrentLibrary

✅ NanoByte.Common.LogTest

✅ TestBuffer
✅ TestHandler
✅ TestReadLastErrorFrom

✅ NanoByte.Common.MathUtilsTest

✅ TestEqualsTolerance
✅ TestModule(a: -1, b: 3, result: 2)
✅ TestModule(a: 3, b: 2, result: 1)
✅ TestModule(a: 3, b: 4, result: 3)
✅ TestSizeMultiply
✅ TestXOr

✅ NanoByte.Common.Native.AppMutexTest

✅ TestProbeCreateClose

✅ NanoByte.Common.Native.CygwinUtilsTest

✅ TestCreateSymlink
✅ TestIsSymlinkMatch
✅ TestIsSymlinkNoMatch

✅ NanoByte.Common.Native.OSUtilsTest

✅ TestExpandVariablesCaseInsensitive
✅ TestExpandVariablesCaseSensitive
✅ TestExpandVariablesEscaping

✅ NanoByte.Common.Native.ProcessLauncherTest

✅ Run
✅ RunAndCapture

✅ NanoByte.Common.Native.RegistryUtilsTest

✅ TestGetLastWriteTime

✅ NanoByte.Common.Native.UnixUtilsTest

⚪ TestCreateSymlinkDirectory
⚪ TestCreateSymlinkFile
⚪ TestIsNotExecutable
⚪ TestIsNotSymlink
⚪ TestSetExecutable

✅ NanoByte.Common.Native.WindowsRestartManagerTest

✅ TestListApps

✅ NanoByte.Common.Native.WindowsUtilsTest

✅ TestCreateSymlinkDirectory
✅ TestCreateSymlinkFile
✅ TestGetFolderPath
✅ TestIsNotSymlink
✅ TestSplitArgs

✅ NanoByte.Common.Net.DownloadFileTest

✅ TestCancel
✅ TestFileMissing
✅ TestIncorrectSize
✅ TestRun
✅ TestRunFile

✅ NanoByte.Common.Net.MicroServerTest

✅ Stress

✅ NanoByte.Common.Net.NetrcTest

✅ TestParse

✅ NanoByte.Common.Net.NetUtilsTest

✅ TestConfigureTls

✅ NanoByte.Common.Net.UriExtensionsTest

✅ TestEnsureTrailingSlashAbsolute
✅ TestEnsureTrailingSlashRelative
✅ TestGetLocalFilePath(uri: "file:///test/", path: "test")
✅ TestGetLocalFilePath(uri: "file:///test/my%20file.ext", path: "my file.ext")
✅ TestGetLocalFilePath(uri: "http://test/test/my%20file.ext", path: "my file.ext")
✅ TestGetRoot(uri: "./relative", root: "./relative")
✅ TestGetRoot(uri: "file:///test/", root: "file:///test/")
✅ TestGetRoot(uri: "http://example.com:80/test", root: "http://example.com:80/")
✅ TestGetRoot(uri: "http://example.com:8080/test", root: "http://example.com:8080/")
✅ TestGetRoot(uri: "http://example.com/", root: "http://example.com/")
✅ TestGetRoot(uri: "http://example.com/test", root: "http://example.com/")
✅ TestToStringRfc

✅ NanoByte.Common.ProcessUtilsTest

✅ TestAssembly
✅ TestEscapeArgument(unescaped: "", escaped: "\"\"", because: "Empty strings need to be escaped in order not to v"···)
✅ TestEscapeArgument(unescaped: "test", escaped: "test", because: "Simple strings shouldn't be modified")
✅ TestEscapeArgument(unescaped: "test1 test2", escaped: "\"test1 test2\"", because: "Strings with whitespaces should be encapsulated")
✅ TestEscapeArgument(unescaped: "test1 test2\\", escaped: "\"test1 test2\\\\\"", because: "Trailing backslashes should be escaped")
✅ TestEscapeArgument(unescaped: "test1\"test2", escaped: "test1\\\"test2", because: "Quotation marks should be escaped")
✅ TestEscapeArgument(unescaped: "test1\\\"test2", escaped: "test1\\\\\\\"test2", because: "Slashes with quotation marks should be escaped")
✅ TestEscapeArgument(unescaped: "test1\\\\test2", escaped: "test1\\\\test2", because: "Consecutive slashes without quotation marks should"···)
✅ TestFromCommandLine
✅ TestJoinEscapeArguments(parts: ["part1 \" part2", "part3"], result: "\"part1 \\\" part2\" part3")
✅ TestJoinEscapeArguments(parts: ["part1", "part2"], result: "part1 part2")
✅ TestJoinEscapeArguments(parts: ["part1"], result: "part1")
✅ TestToCommandLine(executable: "executable", args: "my args", commandLine: "executable my args")
✅ TestToCommandLine(executable: "my executable", args: "my args", commandLine: "\"my executable\" my args")

✅ NanoByte.Common.PropertyPointerTest

✅ Delegate
✅ DelegateNullable
✅ ExpressionTree
✅ ExpressionTreeNullable
✅ SetTemp

✅ NanoByte.Common.Storage.CopyDirectoryTest

✅ CopyHardlinks
⚪ CopySymlinks
✅ ErrorHandling
⚪ FollowSymlinks
✅ NoOverwrite
✅ Normal
✅ Overwrite

✅ NanoByte.Common.Storage.FileUtilsTest

✅ TestCreate
✅ TestCreateHardlink
✅ TestExistsCaseSensitive
✅ TestGetFilesRecursive
✅ TestIsBreakoutPath
✅ TestIsRegularFile
✅ TestIsUnixFS
✅ TestPathEqualsAbsolutePath
✅ TestPathEqualsCaseInsensitive
⚪ TestPathEqualsCaseSensitive
✅ TestPathEqualsDirectorySeparator
✅ TestPathEqualsFalse
✅ TestPathEqualsRelativePath
✅ TestPathEqualsWorkingDirectory
✅ TestReadExtendedMetadataExceptionOnMissingBaseFile
✅ TestReadFirstLine
✅ TestRelativeTo
✅ TestReplace
✅ TestReplaceMissing
✅ TestToNativePath
✅ TestTouchExisting
✅ TestTouchNew
✅ TestToUnixPath
✅ TestWalk
✅ TestWalkSingleFile
✅ TestWalkThroughPrefix
✅ TestWriteProtection
✅ TestWriteReadExtendedMetadata

✅ NanoByte.Common.Storage.JsonStorageTest

✅ TestFile
✅ TestFromJsonString
✅ TestToJsonString

✅ NanoByte.Common.Storage.MoveDirectoryTest

✅ Normal

✅ NanoByte.Common.Storage.PathsTest

✅ TestGetFilesAbsolute
✅ TestGetFilesRelative

✅ NanoByte.Common.Storage.ReadFileTest

✅ TestRun

✅ NanoByte.Common.Storage.TemporaryDirectoryTest

✅ CreatesDirectory
✅ CreatesEmptyDirectory

✅ NanoByte.Common.Storage.TemporaryFileTest

✅ CreatesEmptyFile
✅ CreatesFile

✅ NanoByte.Common.Storage.XmlStorageTest

✅ TestFile
✅ TestFromXmlString
✅ TestToXmlString

✅ NanoByte.Common.Streams.OffsetStreamTest

✅ TestPosition
✅ TestReadAll
✅ TestReadAllWithoutSeek
✅ TestSeekBegin
✅ TestSeekCurrent

✅ NanoByte.Common.Streams.ProgressStreamTest

✅ TestReadCancellation
✅ TestReadProgress
✅ TestWriteCancellation
✅ TestWriteProgress

✅ NanoByte.Common.Streams.SeekBufferStreamTest

✅ CannotSeekBackwardsTooFar
✅ CanSekForwardsBeyondBuffer
✅ CanSekForwardsWithZeroBuffer
✅ SeekBackwards
✅ SeekForwardsAndBackwards
✅ SmallBuffer

✅ NanoByte.Common.Streams.ShadowingStreamTest

✅ TestRead

✅ NanoByte.Common.Streams.StreamUtilsTest

✅ TestAsArrayCopy
✅ TestAsArrayNoCopy
✅ TestCopyToFile
✅ TestReadAll
✅ TestReadArray
✅ TestReadSegment
✅ TestSkipNonSeekable
✅ TestSkipSeekable
✅ TestString
✅ TestToMemory
✅ TestWriteArray
✅ TestWriteSegment

✅ NanoByte.Common.StringUtilsTest

✅ ContainsIgnoreCase(value: "This is a test.", searchFor: "test")
✅ ContainsIgnoreCase(value: "This is a test.", searchFor: "TEST")
✅ EqualsIgnoreCase(a: "abc", b: "abc")
✅ EqualsIgnoreCase(a: "abc", b: "ABC")
✅ NotContainsIgnoreCase(value: "test", searchFor: "This is a test.")
✅ NotContainsIgnoreCase(value: "This is a test.", searchFor: "123")
✅ NotEqualsIgnoreCase(a: "abc", b: "123")
✅ NotEqualsIgnoreCase(a: "abc", b: "abc ")
✅ TestEmptyAsNull
✅ TestEndsWith
✅ TestGeneratePassword
✅ TestGetLeftRightPartChar
✅ TestGetLeftRightPartString
✅ TestJoin(parts: ["part1", "part2"], result: "part1 part2")
✅ TestJoin(parts: ["part1"], result: "part1")
✅ TestJoin(parts: [], result: "")
✅ TestRemoveCharacters
✅ TestSplitMultilineText(value: "", result: [""], because: "Should work with empty strings")
✅ TestSplitMultilineText(value: "123", result: ["123"], because: "Should work with single lines")
✅ TestSplitMultilineText(value: "123\nabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestSplitMultilineText(value: "123\r\nabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestSplitMultilineText(value: "123\rabc", result: ["123", "abc"], because: "Should split Linux-style linebreaks")
✅ TestStartsWith
✅ TestTrimOverflow

✅ NanoByte.Common.Tasks.ActionTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Tasks.DeferredProgressTest

✅ ForwardsLastRecordedToTarget
✅ ForwardsToTarget

✅ NanoByte.Common.Tasks.ForEachTaskTest

✅ TestCallback
✅ TestExceptionPassing
✅ TestRollbackCancellation
✅ TestRollbackException

✅ NanoByte.Common.Tasks.PercentageTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Tasks.ResultTaskTest

✅ TestCallback
✅ TestExceptionPassing

✅ NanoByte.Common.Threading.JobQueueTest

✅ RunsWork

✅ NanoByte.Common.Threading.ResultRacerTest

⚪ Async
⚪ AsyncCancellation
⚪ Sync
⚪ SyncCancellation

✅ NanoByte.Common.Threading.WaitTaskTest

✅ TestCancel
✅ TestCancelNoHandle
✅ TestWait

✅ NanoByte.Common.Undo.CollectionTest

✅ TestAddToCollection
✅ TestRemoveFromCollection

✅ NanoByte.Common.Undo.CommandCollectorTest

✅ Test

✅ NanoByte.Common.Undo.CompositeCommandTest

✅ TestExecuteRollback
✅ TestExecuteUndo
✅ TestUndoRollback
✅ TestWrongOrder

✅ NanoByte.Common.Undo.PreExecutedCompositeCommandTest

✅ TestExecuteUndo

✅ NanoByte.Common.Undo.ReplaceInListTest

✅ TestExecute

✅ NanoByte.Common.Undo.SetLocalizableStringTest

✅ TestExecute

✅ NanoByte.Common.UnixTimeTest

✅ FromDateTimeLocal
✅ FromDateTimeOffset
✅ FromDateTimeUnspecified
✅ FromDateTimeUtc
✅ ToDateTime
✅ ToDateTimeOffset