diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..41785ce
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,18 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "paket": {
+ "version": "8.0.0",
+ "commands": [
+ "paket"
+ ]
+ },
+ "fantomas": {
+ "version": "6.2.3",
+ "commands": [
+ "fantomas"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..4231fbc
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,50 @@
+root = true
+
+[*.{fs,fsx,fsi}]
+trim_trailing_whitespace = true
+fsharp_multiline_block_brackets_on_same_column = true
+fsharp_multiline_lambda_closing_newline = true
+fsharp_record_multiline_formatter = number_of_items
+fsharp_align_function_signature_to_indentation = true
+fsharp_keep_max_number_of_blank_lines = 1
+fsharp_multiline_bracket_style = aligned
+fsharp_newline_before_multiline_computation_expression = false
+indent_size = 2
+
+# Visual Studio Solution Files
+[*.sln]
+indent_style = tab
+
+# XML project files
+[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,sfproj}]
+indent_size = 2
+
+# Markdown Files
+[*.{md,mdx}]
+trim_trailing_whitespace = false
+
+# Bash Files
+[*.{sh}]
+end_of_line = lf
+
+# Batch Files
+[*.{cmd,bat}]
+end_of_line = crlf
+
+# Powershell Files
+[*.{ps1, psm1}]
+end_of_line = crlf
+
+# Paket files
+[paket.*]
+trim_trailing_whitespace = true
+indent_size = 2
+
+[*.paket.references]
+trim_trailing_whitespace = true
+indent_size = 2
+
+# YAML Files
+[*.{yml,yaml}]
+indent_size = 2
+indent_style = space
\ No newline at end of file
diff --git a/.fantomasignore b/.fantomasignore
new file mode 100644
index 0000000..b9a47f0
--- /dev/null
+++ b/.fantomasignore
@@ -0,0 +1 @@
+AssemblyInfo.fs
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..a60c557
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,36 @@
+name: Build master
+
+on:
+ pull_request:
+ types: [ opened, synchronize, reopened ]
+ paths-ignore:
+ - ".github"
+ - ".vscode"
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ os: [ubuntu-latest, windows-latest, macOS-latest]
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup necessary dotnet SDKs
+ uses: actions/setup-dotnet@v3
+ with:
+ global-json-file: global.json
+ dotnet-version: 8.x
+
+ - name: Build via Bash
+ if: runner.os != 'Windows'
+ run: |
+ chmod +x ./build.sh
+ ./build.sh
+ env:
+ CI: true
+ - name: Build via Windows
+ if: runner.os == 'Windows'
+ run: ./build.cmd
+ env:
+ CI: true
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 1701c5d..bf895bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,8 @@
*.userosscache
*.sln.docstates
+*.vscode
+
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
diff --git a/.paket/paket.bootstrapper.exe b/.paket/paket.bootstrapper.exe
deleted file mode 100644
index bc32ded..0000000
Binary files a/.paket/paket.bootstrapper.exe and /dev/null differ
diff --git a/.paket/paket.targets b/.paket/paket.targets
deleted file mode 100644
index 4ace721..0000000
--- a/.paket/paket.targets
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
- true
- $(MSBuildThisFileDirectory)
- $(MSBuildThisFileDirectory)..\
- $(PaketRootPath)paket.lock
- $(PaketRootPath)paket-files\paket.restore.cached
- /Library/Frameworks/Mono.framework/Commands/mono
- mono
-
-
- False
-
-
-
-
-
-
-
-
- $(PaketRootPath)paket
- $(PaketToolsPath)paket
-
-
-
-
-
- $(PaketRootPath)paket.exe
- $(PaketToolsPath)paket.exe
-
-
-
-
-
- <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json"))
- <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"'))
- <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false
-
-
-
-
-
-
-
-
-
-
- <_PaketCommand>dotnet paket
-
-
-
-
-
- $(PaketToolsPath)paket
- $(PaketBootStrapperExeDir)paket
-
-
- paket
-
-
-
-
- <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))
- <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"
- <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"
- <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)"
-
-
-
-
-
-
-
-
-
-
-
-
- $(MSBuildProjectFullPath).paket.references
-
-
-
-
- $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references
-
-
-
-
- $(MSBuildProjectDirectory)\paket.references
-
-
-
-
-
-
-
-
-
-
-
- RestorePackages; $(BuildDependsOn);
-
-
-
-
-
-
- $(PaketCommand) restore --references-file "$(PaketReferences)"
- true
-
-
-
- $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))
- $([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))
- true
- false
- true
-
-
-
-
-
\ No newline at end of file
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..16b1f53
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1 @@
+@1eyewonder
\ No newline at end of file
diff --git a/Fs.Units.CSharp.Tests.Benchmark/Fs.Units.CSharp.Tests.Benchmark.csproj b/Fs.Units.CSharp.Tests.Benchmark/Fs.Units.CSharp.Tests.Benchmark.csproj
deleted file mode 100644
index 1f704af..0000000
--- a/Fs.Units.CSharp.Tests.Benchmark/Fs.Units.CSharp.Tests.Benchmark.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- Exe
- net6.0
- enable
- enable
- default
- false
-
-
-
-
-
-
-
-
diff --git a/Fs.Units.CSharp.Tests.Benchmark/paket.references b/Fs.Units.CSharp.Tests.Benchmark/paket.references
deleted file mode 100644
index 68eb79b..0000000
--- a/Fs.Units.CSharp.Tests.Benchmark/paket.references
+++ /dev/null
@@ -1 +0,0 @@
-BenchmarkDotNet
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/DataTransferRate.cs b/Fs.Units.CSharp/Compound/DataTransferRate.cs
deleted file mode 100644
index 7a16252..0000000
--- a/Fs.Units.CSharp/Compound/DataTransferRate.cs
+++ /dev/null
@@ -1,210 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.DataTransferRate;
-
-public static class BaudExtensions
-{
- public static double BaudToBitsPerSecond(this double x) => Baud.toBitsPerSecond(x);
- public static double BaudToKilobitsPerSecond(this double x) => Baud.toKilobitsPerSecond(x);
- public static double BaudToMegabitsPerSecond(this double x) => Baud.toMegabitsPerSecond(x);
- public static double BaudToGigabitsPerSecond(this double x) => Baud.toGigabitsPerSecond(x);
- public static double BaudToTerabitsPerSecond(this double x) => Baud.toTerabitsPerSecond(x);
- public static double BaudToPetabitsPerSecond(this double x) => Baud.toPetabitsPerSecond(x);
- public static double BaudToBytesPerSecond(this double x) => Baud.toBytesPerSecond(x);
- public static double BaudToKilobytesPerSecond(this double x) => Baud.toKilobytesPerSecond(x);
- public static double BaudToMegabytesPerSecond(this double x) => Baud.toMegabytesPerSecond(x);
- public static double BaudToGigabytesPerSecond(this double x) => Baud.toGigabytesPerSecond(x);
- public static double BaudToTerabytesPerSecond(this double x) => Baud.toTerabytesPerSecond(x);
- public static double BaudToPetabytesPerSecond(this double x) => Baud.toPetabytesPerSecond(x);
-}
-
-public static class BitPerSecondExtensions
-{
- public static double BitPerSecondToBauds(this double x) => BitPerSecond.toBauds(x);
- public static double BitPerSecondToKilobitsPerSecond(this double x) => BitPerSecond.toKilobitsPerSecond(x);
- public static double BitPerSecondToMegabitsPerSecond(this double x) => BitPerSecond.toMegabitsPerSecond(x);
- public static double BitPerSecondToGigabitsPerSecond(this double x) => BitPerSecond.toGigabitsPerSecond(x);
- public static double BitPerSecondToTerabitsPerSecond(this double x) => BitPerSecond.toTerabitsPerSecond(x);
- public static double BitPerSecondToPetabitsPerSecond(this double x) => BitPerSecond.toPetabitsPerSecond(x);
- public static double BitPerSecondToBytesPerSecond(this double x) => BitPerSecond.toBytesPerSecond(x);
- public static double BitPerSecondToKilobytesPerSecond(this double x) => BitPerSecond.toKilobytesPerSecond(x);
- public static double BitPerSecondToMegabytesPerSecond(this double x) => BitPerSecond.toMegabytesPerSecond(x);
- public static double BitPerSecondToGigabytesPerSecond(this double x) => BitPerSecond.toGigabytesPerSecond(x);
- public static double BitPerSecondToTerabytesPerSecond(this double x) => BitPerSecond.toTerabytesPerSecond(x);
- public static double BitPerSecondToPetabytesPerSecond(this double x) => BitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class KilobitPerSecondExtensions
-{
- public static double KilobitPerSecondToBauds(this double x) => KilobitPerSecond.toBauds(x);
- public static double KilobitPerSecondToBitsPerSecond(this double x) => KilobitPerSecond.toBitsPerSecond(x);
- public static double KilobitPerSecondToMegabitsPerSecond(this double x) => KilobitPerSecond.toMegabitsPerSecond(x);
- public static double KilobitPerSecondToGigabitsPerSecond(this double x) => KilobitPerSecond.toGigabitsPerSecond(x);
- public static double KilobitPerSecondToTerabitsPerSecond(this double x) => KilobitPerSecond.toTerabitsPerSecond(x);
- public static double KilobitPerSecondToPetabitsPerSecond(this double x) => KilobitPerSecond.toPetabitsPerSecond(x);
- public static double KilobitPerSecondToBytesPerSecond(this double x) => KilobitPerSecond.toBytesPerSecond(x);
- public static double KilobitPerSecondToKilobytesPerSecond(this double x) => KilobitPerSecond.toKilobytesPerSecond(x);
- public static double KilobitPerSecondToMegabytesPerSecond(this double x) => KilobitPerSecond.toMegabytesPerSecond(x);
- public static double KilobitPerSecondToGigabytesPerSecond(this double x) => KilobitPerSecond.toGigabytesPerSecond(x);
- public static double KilobitPerSecondToTerabytesPerSecond(this double x) => KilobitPerSecond.toTerabytesPerSecond(x);
- public static double KilobitPerSecondToPetabytesPerSecond(this double x) => KilobitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class MegabitPerSecondExtensions
-{
- public static double MegabitPerSecondToBauds(this double x) => MegabitPerSecond.toBauds(x);
- public static double MegabitPerSecondToBitsPerSecond(this double x) => MegabitPerSecond.toBitsPerSecond(x);
- public static double MegabitPerSecondToKilobitsPerSecond(this double x) => MegabitPerSecond.toKilobitsPerSecond(x);
- public static double MegabitPerSecondToGigabitsPerSecond(this double x) => MegabitPerSecond.toGigabitsPerSecond(x);
- public static double MegabitPerSecondToTerabitsPerSecond(this double x) => MegabitPerSecond.toTerabitsPerSecond(x);
- public static double MegabitPerSecondToPetabitsPerSecond(this double x) => MegabitPerSecond.toPetabitsPerSecond(x);
- public static double MegabitPerSecondToBytesPerSecond(this double x) => MegabitPerSecond.toBytesPerSecond(x);
- public static double MegabitPerSecondToKilobytesPerSecond(this double x) => MegabitPerSecond.toKilobytesPerSecond(x);
- public static double MegabitPerSecondToMegabytesPerSecond(this double x) => MegabitPerSecond.toMegabytesPerSecond(x);
- public static double MegabitPerSecondToGigabytesPerSecond(this double x) => MegabitPerSecond.toGigabytesPerSecond(x);
- public static double MegabitPerSecondToTerabytesPerSecond(this double x) => MegabitPerSecond.toTerabytesPerSecond(x);
- public static double MegabitPerSecondToPetabytesPerSecond(this double x) => MegabitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class GigabitPerSecondExtensions
-{
- public static double GigabitPerSecondToBauds(this double x) => GigabitPerSecond.toBauds(x);
- public static double GigabitPerSecondToBitsPerSecond(this double x) => GigabitPerSecond.toBitsPerSecond(x);
- public static double GigabitPerSecondToKilobitsPerSecond(this double x) => GigabitPerSecond.toKilobitsPerSecond(x);
- public static double GigabitPerSecondToMegabitsPerSecond(this double x) => GigabitPerSecond.toMegabitsPerSecond(x);
- public static double GigabitPerSecondToTerabitsPerSecond(this double x) => GigabitPerSecond.toTerabitsPerSecond(x);
- public static double GigabitPerSecondToPetabitsPerSecond(this double x) => GigabitPerSecond.toPetabitsPerSecond(x);
- public static double GigabitPerSecondToBytesPerSecond(this double x) => GigabitPerSecond.toBytesPerSecond(x);
- public static double GigabitPerSecondToKilobytesPerSecond(this double x) => GigabitPerSecond.toKilobytesPerSecond(x);
- public static double GigabitPerSecondToMegabytesPerSecond(this double x) => GigabitPerSecond.toMegabytesPerSecond(x);
- public static double GigabitPerSecondToGigabytesPerSecond(this double x) => GigabitPerSecond.toGigabytesPerSecond(x);
- public static double GigabitPerSecondToTerabytesPerSecond(this double x) => GigabitPerSecond.toTerabytesPerSecond(x);
- public static double GigabitPerSecondToPetabytesPerSecond(this double x) => GigabitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class TerabitPerSecondExtensions
-{
- public static double TerabitPerSecondToBauds(this double x) => TerabitPerSecond.toBauds(x);
- public static double TerabitPerSecondToBitsPerSecond(this double x) => TerabitPerSecond.toBitsPerSecond(x);
- public static double TerabitPerSecondToKilobitsPerSecond(this double x) => TerabitPerSecond.toKilobitsPerSecond(x);
- public static double TerabitPerSecondToMegabitsPerSecond(this double x) => TerabitPerSecond.toMegabitsPerSecond(x);
- public static double TerabitPerSecondToGigabitsPerSecond(this double x) => TerabitPerSecond.toGigabitsPerSecond(x);
- public static double TerabitPerSecondToPetabitsPerSecond(this double x) => TerabitPerSecond.toPetabitsPerSecond(x);
- public static double TerabitPerSecondToBytesPerSecond(this double x) => TerabitPerSecond.toBytesPerSecond(x);
- public static double TerabitPerSecondToKilobytesPerSecond(this double x) => TerabitPerSecond.toKilobytesPerSecond(x);
- public static double TerabitPerSecondToMegabytesPerSecond(this double x) => TerabitPerSecond.toMegabytesPerSecond(x);
- public static double TerabitPerSecondToGigabytesPerSecond(this double x) => TerabitPerSecond.toGigabytesPerSecond(x);
- public static double TerabitPerSecondToTerabytesPerSecond(this double x) => TerabitPerSecond.toTerabytesPerSecond(x);
- public static double TerabitPerSecondToPetabytesPerSecond(this double x) => TerabitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class PetabitPerSecondExtensions
-{
- public static double PetabitPerSecondToBauds(this double x) => PetabitPerSecond.toBauds(x);
- public static double PetabitPerSecondToBitsPerSecond(this double x) => PetabitPerSecond.toBitsPerSecond(x);
- public static double PetabitPerSecondToKilobitsPerSecond(this double x) => PetabitPerSecond.toKilobitsPerSecond(x);
- public static double PetabitPerSecondToMegabitsPerSecond(this double x) => PetabitPerSecond.toMegabitsPerSecond(x);
- public static double PetabitPerSecondToGigabitsPerSecond(this double x) => PetabitPerSecond.toGigabitsPerSecond(x);
- public static double PetabitPerSecondToTerabitsPerSecond(this double x) => PetabitPerSecond.toTerabitsPerSecond(x);
- public static double PetabitPerSecondToBytesPerSecond(this double x) => PetabitPerSecond.toBytesPerSecond(x);
- public static double PetabitPerSecondToKilobytesPerSecond(this double x) => PetabitPerSecond.toKilobytesPerSecond(x);
- public static double PetabitPerSecondToMegabytesPerSecond(this double x) => PetabitPerSecond.toMegabytesPerSecond(x);
- public static double PetabitPerSecondToGigabytesPerSecond(this double x) => PetabitPerSecond.toGigabytesPerSecond(x);
- public static double PetabitPerSecondToTerabytesPerSecond(this double x) => PetabitPerSecond.toTerabytesPerSecond(x);
- public static double PetabitPerSecondToPetabytesPerSecond(this double x) => PetabitPerSecond.toPetabytesPerSecond(x);
-}
-
-public static class BytePerSecondExtensions
-{
- public static double BytePerSecondToBauds(this double x) => BytePerSecond.toBauds(x);
- public static double BytePerSecondToBitsPerSecond(this double x) => BytePerSecond.toBitsPerSecond(x);
- public static double BytePerSecondToKilobitsPerSecond(this double x) => BytePerSecond.toKilobitsPerSecond(x);
- public static double BytePerSecondToMegabitsPerSecond(this double x) => BytePerSecond.toMegabitsPerSecond(x);
- public static double BytePerSecondToGigabitsPerSecond(this double x) => BytePerSecond.toGigabitsPerSecond(x);
- public static double BytePerSecondToTerabitsPerSecond(this double x) => BytePerSecond.toTerabitsPerSecond(x);
- public static double BytePerSecondToPetabitsPerSecond(this double x) => BytePerSecond.toPetabitsPerSecond(x);
- public static double BytePerSecondToKilobytesPerSecond(this double x) => BytePerSecond.toKilobytesPerSecond(x);
- public static double BytePerSecondToMegabytesPerSecond(this double x) => BytePerSecond.toMegabytesPerSecond(x);
- public static double BytePerSecondToGigabytesPerSecond(this double x) => BytePerSecond.toGigabytesPerSecond(x);
- public static double BytePerSecondToTerabytesPerSecond(this double x) => BytePerSecond.toTerabytesPerSecond(x);
- public static double BytePerSecondToPetabytesPerSecond(this double x) => BytePerSecond.toPetabytesPerSecond(x);
-}
-
-public static class KilobytePerSecondExtensions
-{
- public static double KilobytePerSecondToBauds(this double x) => KilobytePerSecond.toBauds(x);
- public static double KilobytePerSecondToBitsPerSecond(this double x) => KilobytePerSecond.toBitsPerSecond(x);
- public static double KilobytePerSecondToKilobitsPerSecond(this double x) => KilobytePerSecond.toKilobitsPerSecond(x);
- public static double KilobytePerSecondToMegabitsPerSecond(this double x) => KilobytePerSecond.toMegabitsPerSecond(x);
- public static double KilobytePerSecondToGigabitsPerSecond(this double x) => KilobytePerSecond.toGigabitsPerSecond(x);
- public static double KilobytePerSecondToTerabitsPerSecond(this double x) => KilobytePerSecond.toTerabitsPerSecond(x);
- public static double KilobytePerSecondToPetabitsPerSecond(this double x) => KilobytePerSecond.toPetabitsPerSecond(x);
- public static double KilobytePerSecondToBytesPerSecond(this double x) => KilobytePerSecond.toBytesPerSecond(x);
- public static double KilobytePerSecondToMegabytesPerSecond(this double x) => KilobytePerSecond.toMegabytesPerSecond(x);
- public static double KilobytePerSecondToGigabytesPerSecond(this double x) => KilobytePerSecond.toGigabytesPerSecond(x);
- public static double KilobytePerSecondToTerabytesPerSecond(this double x) => KilobytePerSecond.toTerabytesPerSecond(x);
- public static double KilobytePerSecondToPetabytesPerSecond(this double x) => KilobytePerSecond.toPetabytesPerSecond(x);
-}
-
-public static class MegabytePerSecondExtensions
-{
- public static double MegabytePerSecondToBauds(this double x) => MegabytePerSecond.toBauds(x);
- public static double MegabytePerSecondToBitsPerSecond(this double x) => MegabytePerSecond.toBitsPerSecond(x);
- public static double MegabytePerSecondToKilobitsPerSecond(this double x) => MegabytePerSecond.toKilobitsPerSecond(x);
- public static double MegabytePerSecondToMegabitsPerSecond(this double x) => MegabytePerSecond.toMegabitsPerSecond(x);
- public static double MegabytePerSecondToGigabitsPerSecond(this double x) => MegabytePerSecond.toGigabitsPerSecond(x);
- public static double MegabytePerSecondToTerabitsPerSecond(this double x) => MegabytePerSecond.toTerabitsPerSecond(x);
- public static double MegabytePerSecondToPetabitsPerSecond(this double x) => MegabytePerSecond.toPetabitsPerSecond(x);
- public static double MegabytePerSecondToBytesPerSecond(this double x) => MegabytePerSecond.toBytesPerSecond(x);
- public static double MegabytePerSecondToKilobytesPerSecond(this double x) => MegabytePerSecond.toKilobytesPerSecond(x);
- public static double MegabytePerSecondToGigabytesPerSecond(this double x) => MegabytePerSecond.toGigabytesPerSecond(x);
- public static double MegabytePerSecondToTerabytesPerSecond(this double x) => MegabytePerSecond.toTerabytesPerSecond(x);
- public static double MegabytePerSecondToPetabytesPerSecond(this double x) => MegabytePerSecond.toPetabytesPerSecond(x);
-}
-
-public static class GigabytePerSecondExtensions
-{
- public static double GigabytePerSecondToBauds(this double x) => GigabytePerSecond.toBauds(x);
- public static double GigabytePerSecondToBitsPerSecond(this double x) => GigabytePerSecond.toBitsPerSecond(x);
- public static double GigabytePerSecondToKilobitsPerSecond(this double x) => GigabytePerSecond.toKilobitsPerSecond(x);
- public static double GigabytePerSecondToMegabitsPerSecond(this double x) => GigabytePerSecond.toMegabitsPerSecond(x);
- public static double GigabytePerSecondToGigabitsPerSecond(this double x) => GigabytePerSecond.toGigabitsPerSecond(x);
- public static double GigabytePerSecondToTerabitsPerSecond(this double x) => GigabytePerSecond.toTerabitsPerSecond(x);
- public static double GigabytePerSecondToPetabitsPerSecond(this double x) => GigabytePerSecond.toPetabitsPerSecond(x);
- public static double GigabytePerSecondToBytesPerSecond(this double x) => GigabytePerSecond.toBytesPerSecond(x);
- public static double GigabytePerSecondToKilobytesPerSecond(this double x) => GigabytePerSecond.toKilobytesPerSecond(x);
- public static double GigabytePerSecondToMegabytesPerSecond(this double x) => GigabytePerSecond.toMegabytesPerSecond(x);
- public static double GigabytePerSecondToTerabytesPerSecond(this double x) => GigabytePerSecond.toTerabytesPerSecond(x);
- public static double GigabytePerSecondToPetabytesPerSecond(this double x) => GigabytePerSecond.toPetabytesPerSecond(x);
-}
-
-public static class TerabytePerSecondExtensions
-{
- public static double TerabytePerSecondToBauds(this double x) => TerabytePerSecond.toBauds(x);
- public static double TerabytePerSecondToBitsPerSecond(this double x) => TerabytePerSecond.toBitsPerSecond(x);
- public static double TerabytePerSecondToKilobitsPerSecond(this double x) => TerabytePerSecond.toKilobitsPerSecond(x);
- public static double TerabytePerSecondToMegabitsPerSecond(this double x) => TerabytePerSecond.toMegabitsPerSecond(x);
- public static double TerabytePerSecondToGigabitsPerSecond(this double x) => TerabytePerSecond.toGigabitsPerSecond(x);
- public static double TerabytePerSecondToTerabitsPerSecond(this double x) => TerabytePerSecond.toTerabitsPerSecond(x);
- public static double TerabytePerSecondToPetabitsPerSecond(this double x) => TerabytePerSecond.toPetabitsPerSecond(x);
- public static double TerabytePerSecondToBytesPerSecond(this double x) => TerabytePerSecond.toBytesPerSecond(x);
- public static double TerabytePerSecondToKilobytesPerSecond(this double x) => TerabytePerSecond.toKilobytesPerSecond(x);
- public static double TerabytePerSecondToMegabytesPerSecond(this double x) => TerabytePerSecond.toMegabytesPerSecond(x);
- public static double TerabytePerSecondToGigabytesPerSecond(this double x) => TerabytePerSecond.toGigabytesPerSecond(x);
- public static double TerabytePerSecondToPetabytesPerSecond(this double x) => TerabytePerSecond.toPetabytesPerSecond(x);
-}
-
-public static class PetabytePerSecondExtensions
-{
- public static double PetabytePerSecondToBauds(this double x) => PetabytePerSecond.toBauds(x);
- public static double PetabytePerSecondToBitsPerSecond(this double x) => PetabytePerSecond.toBitsPerSecond(x);
- public static double PetabytePerSecondToKilobitsPerSecond(this double x) => PetabytePerSecond.toKilobitsPerSecond(x);
- public static double PetabytePerSecondToMegabitsPerSecond(this double x) => PetabytePerSecond.toMegabitsPerSecond(x);
- public static double PetabytePerSecondToGigabitsPerSecond(this double x) => PetabytePerSecond.toGigabitsPerSecond(x);
- public static double PetabytePerSecondToTerabitsPerSecond(this double x) => PetabytePerSecond.toTerabitsPerSecond(x);
- public static double PetabytePerSecondToPetabitsPerSecond(this double x) => PetabytePerSecond.toPetabitsPerSecond(x);
- public static double PetabytePerSecondToBytesPerSecond(this double x) => PetabytePerSecond.toBytesPerSecond(x);
- public static double PetabytePerSecondToKilobytesPerSecond(this double x) => PetabytePerSecond.toKilobytesPerSecond(x);
- public static double PetabytePerSecondToMegabytesPerSecond(this double x) => PetabytePerSecond.toMegabytesPerSecond(x);
- public static double PetabytePerSecondToGigabytesPerSecond(this double x) => PetabytePerSecond.toGigabytesPerSecond(x);
- public static double PetabytePerSecondToTerabytesPerSecond(this double x) => PetabytePerSecond.toTerabytesPerSecond(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/ElectromotiveForce.cs b/Fs.Units.CSharp/Compound/ElectromotiveForce.cs
deleted file mode 100644
index 91a53c7..0000000
--- a/Fs.Units.CSharp/Compound/ElectromotiveForce.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.ElectromotiveForce;
-
-public static class MicrovoltExtensions
-{
- public static double MicrovoltToMillivolts(this double x) => Microvolt.toMillivolts(x);
- public static double MicrovoltToVolts(this double x) => Microvolt.toVolts(x);
- public static double MicrovoltToKilovolts(this double x) => Microvolt.toKilovolts(x);
- public static double MicrovoltToMegavolts(this double x) => Microvolt.toMegavolts(x);
-}
-
-public static class MillivoltExtensions
-{
- public static double MillivoltToMicrovolts(this double x) => Millivolt.toMicrovolts(x);
- public static double MillivoltToVolts(this double x) => Millivolt.toVolts(x);
- public static double MillivoltToKilovolts(this double x) => Millivolt.toKilovolts(x);
- public static double MillivoltToMegavolts(this double x) => Millivolt.toMegavolts(x);
-}
-
-public static class VoltExtensions
-{
- public static double VoltToMicrovolts(this double x) => Volt.toMicrovolts(x);
- public static double VoltToMillivolts(this double x) => Volt.toMillivolts(x);
- public static double VoltToKilovolts(this double x) => Volt.toKilovolts(x);
- public static double VoltToMegavolts(this double x) => Volt.toMegavolts(x);
-}
-
-public static class KilovoltExtensions
-{
- public static double KilovoltToMicrovolts(this double x) => Kilovolt.toMicrovolts(x);
- public static double KilovoltToMillivolts(this double x) => Kilovolt.toMillivolts(x);
- public static double KilovoltToVolts(this double x) => Kilovolt.toVolts(x);
- public static double KilovoltToMegavolts(this double x) => Kilovolt.toMegavolts(x);
-}
-
-public static class MegavoltExtensions
-{
- public static double MegavoltToMicrovolts(this double x) => Megavolt.toMicrovolts(x);
- public static double MegavoltToMillivolts(this double x) => Megavolt.toMillivolts(x);
- public static double MegavoltToVolts(this double x) => Megavolt.toVolts(x);
- public static double MegavoltToKilovolts(this double x) => Megavolt.toKilovolts(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/Energy.cs b/Fs.Units.CSharp/Compound/Energy.cs
deleted file mode 100644
index 3e00328..0000000
--- a/Fs.Units.CSharp/Compound/Energy.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Energy;
-
-public static class JouleExtensions
-{
- public static double JouleToKilojoules(this double x) => Joule.toKilojoules(x);
- public static double JouleToBritishThermalUnits(this double x) => Joule.toBritishThermalUnits(x);
- public static double JouleToCalories(this double x) => Joule.toCalories(x);
- public static double JouleToQuads(this double x) => Joule.toQuads(x);
- public static double JouleToQs(this double x) => Joule.toQs(x);
-}
-
-public static class KilojouleExtensions
-{
- public static double KilojouleToJoules(this double x) => Kilojoule.toJoules(x);
- public static double KilojouleToBritishThermalUnits(this double x) => Kilojoule.toBritishThermalUnits(x);
- public static double KilojouleToCalories(this double x) => Kilojoule.toCalories(x);
- public static double KilojouleToQuads(this double x) => Kilojoule.toQuads(x);
- public static double KilojouleToQs(this double x) => Kilojoule.toQs(x);
-}
-
-public static class BritishThermalUnitExtensions
-{
- public static double BritishThermalUnitToJoules(this double x) => BritishThermalUnit.toJoules(x);
- public static double BritishThermalUnitToKilojoules(this double x) => BritishThermalUnit.toKilojoules(x);
- public static double BritishThermalUnitToCalories(this double x) => BritishThermalUnit.toCalories(x);
- public static double BritishThermalUnitToQuads(this double x) => BritishThermalUnit.toQuads(x);
- public static double BritishThermalUnitToQs(this double x) => BritishThermalUnit.toQs(x);
-}
-
-public static class CalorieExtensions
-{
- public static double CalorieToJoules(this double x) => Calorie.toJoules(x);
- public static double CalorieToKilojoules(this double x) => Calorie.toKilojoules(x);
- public static double CalorieToBritishThermalUnits(this double x) => Calorie.toBritishThermalUnits(x);
- public static double CalorieToQuads(this double x) => Calorie.toQuads(x);
- public static double CalorieToQs(this double x) => Calorie.toQs(x);
-}
-
-public static class QuadExtensions
-{
- public static double QuadToJoules(this double x) => Quad.toJoules(x);
- public static double QuadToKilojoules(this double x) => Quad.toKilojoules(x);
- public static double QuadToBritishThermalUnits(this double x) => Quad.toBritishThermalUnits(x);
- public static double QuadToCalories(this double x) => Quad.toCalories(x);
- public static double QuadToQs(this double x) => Quad.toQs(x);
-}
-
-public static class QExtensions
-{
- public static double QToJoules(this double x) => Q.toJoules(x);
- public static double QToKilojoules(this double x) => Q.toKilojoules(x);
- public static double QToBritishThermalUnits(this double x) => Q.toBritishThermalUnits(x);
- public static double QToCalories(this double x) => Q.toCalories(x);
- public static double QToQuads(this double x) => Q.toQuads(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/Force.cs b/Fs.Units.CSharp/Compound/Force.cs
deleted file mode 100644
index 2f9face..0000000
--- a/Fs.Units.CSharp/Compound/Force.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Force;
-
-public static class NewtonExtensions
-{
- public static double NewtonToPoundForce(this double x) => Newton.toPoundForce(x);
- public static double NewtonToDynes(this double x) => Newton.toDynes(x);
- public static double NewtonToKips(this double x) => Newton.toKips(x);
-}
-
-public static class PoundForceExtensions
-{
- public static double PoundForceToNewtons(this double x) => PoundForce.toNewtons(x);
- public static double PoundForceToDynes(this double x) => PoundForce.toDynes(x);
- public static double PoundForceToKips(this double x) => PoundForce.toKips(x);
-}
-
-public static class DyneExtensions
-{
- public static double DyneToNewtons(this double x) => Dyne.toNewtons(x);
- public static double DyneToPoundForce(this double x) => Dyne.toPoundForce(x);
- public static double DyneToKips(this double x) => Dyne.toKips(x);
-}
-
-public static class KipExtensions
-{
- public static double KipToNewtons(this double x) => Kip.toNewtons(x);
- public static double KipToPoundForce(this double x) => Kip.toPoundForce(x);
- public static double KipToDynes(this double x) => Kip.toDynes(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/Inductance.cs b/Fs.Units.CSharp/Compound/Inductance.cs
deleted file mode 100644
index dc3e830..0000000
--- a/Fs.Units.CSharp/Compound/Inductance.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Inductance;
-
-public static class MicroHenryExtensions
-{
- public static double MicroHenryToMilliHenrys(this double x) => MicroHenry.toMilliHenrys(x);
- public static double MicroHenryToHenrys(this double x) => MicroHenry.toHenrys(x);
-}
-
-public static class MilliHenryExtensions
-{
- public static double MilliHenryToMicroHenrys(this double x) => MilliHenry.toMicroHenrys(x);
- public static double MilliHenryToHenrys(this double x) => MilliHenry.toHenrys(x);
-}
-
-public static class HenryExtensions
-{
- public static double HenryToMicroHenrys(this double x) => Henry.toMicroHenrys(x);
- public static double HenryToMilliHenrys(this double x) => Henry.toMilliHenrys(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/Power.cs b/Fs.Units.CSharp/Compound/Power.cs
deleted file mode 100644
index 87fc2ac..0000000
--- a/Fs.Units.CSharp/Compound/Power.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Power;
-
-public static class WattExtensions
-{
- public static double WattToKilowatts(this double x) => Watt.toKilowatts(x);
- public static double WattToHorsepower(this double x) => Watt.toHorsepower(x);
- public static double WattToTonsOfRefrigeration(this double x) => Watt.toTonsOfRefrigeration(x);
-}
-
-public static class KilowattExtensions
-{
- public static double KilowattToWatts(this double x) => Kilowatt.toWatts(x);
- public static double KilowattToHorsepower(this double x) => Kilowatt.toHorsepower(x);
- public static double KilowattToTonsOfRefrigeration(this double x) => Kilowatt.toTonsOfRefrigeration(x);
-}
-
-public static class HorsepowerExtensions
-{
- public static double HorsepowerToWatts(this double x) => Horsepower.toWatts(x);
- public static double HorsepowerToKilowatts(this double x) => Horsepower.toKilowatts(x);
- public static double HorsepowerToTonsOfRefrigeration(this double x) => Horsepower.toTonsOfRefrigeration(x);
-}
-
-public static class TonOfRefrigerationExtensions
-{
- public static double TonOfRefrigerationToWatts(this double x) => TonOfRefrigeration.toWatts(x);
- public static double TonOfRefrigerationToKilowatts(this double x) => TonOfRefrigeration.toKilowatts(x);
- public static double TonOfRefrigerationToHorsepower(this double x) => TonOfRefrigeration.toHorsepower(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Compound/Volume.cs b/Fs.Units.CSharp/Compound/Volume.cs
deleted file mode 100644
index 9ed383b..0000000
--- a/Fs.Units.CSharp/Compound/Volume.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Volume;
-
-public static class CubicInchExtensions
-{
- public static double CubicInchToCubicFeet(this double x) => CubicInch.toCubicFeet(x);
- public static double CubicInchToCubicCentimeters(this double x) => CubicInch.toCubicCentimeters(x);
- public static double CubicInchToCubicMeters(this double x) => CubicInch.toCubicMeters(x);
-}
-
-public static class CubicFootExtensions
-{
- public static double CubicFootToCubicInches(this double x) => CubicFoot.toCubicInches(x);
- public static double CubicFootToCubicCentimeters(this double x) => CubicFoot.toCubicCentimeters(x);
- public static double CubicFootToCubicMeters(this double x) => CubicFoot.toCubicMeters(x);
-}
-
-public static class CubicCentimeterExtensions
-{
- public static double CubicCentimeterToCubicInches(this double x) => CubicCentimeter.toCubicInches(x);
- public static double CubicCentimeterToCubicFeet(this double x) => CubicCentimeter.toCubicFeet(x);
- public static double CubicCentimeterToCubicMeters(this double x) => CubicCentimeter.toCubicMeters(x);
-}
-
-public static class CubicMeterExtensions
-{
- public static double CubicMeterToCubicInches(this double x) => CubicMeter.toCubicInches(x);
- public static double CubicMeterToCubicFeet(this double x) => CubicMeter.toCubicFeet(x);
- public static double CubicMeterToCubicCentimeters(this double x) => CubicMeter.toCubicCentimeters(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Fs.Units.CSharp.csproj.DotSettings b/Fs.Units.CSharp/Fs.Units.CSharp.csproj.DotSettings
deleted file mode 100644
index 2195515..0000000
--- a/Fs.Units.CSharp/Fs.Units.CSharp.csproj.DotSettings
+++ /dev/null
@@ -1,3 +0,0 @@
-
- True
- True
\ No newline at end of file
diff --git a/Fs.Units.CSharp/GlobalUsings.cs b/Fs.Units.CSharp/GlobalUsings.cs
deleted file mode 100644
index 8c1f4c3..0000000
--- a/Fs.Units.CSharp/GlobalUsings.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-global using Fs.Units.Length;
-global using Fs.Units.Time;
-global using Fs.Units.Mass;
-global using Fs.Units.Temperature;
-global using Fs.Units.Angle;
-global using Fs.Units.DataStorage;
-global using Fs.Units.FuelEconomy;
-global using Fs.Units.Frequency;
-global using Fs.Units.Illuminance;
-global using Fs.Units.Current;
-global using Fs.Units.Area;
-global using Fs.Units.Volume;
-global using Fs.Units.Inertia;
-global using Fs.Units.Speed;
-global using Fs.Units.Force;
-global using Fs.Units.DataTransferRate;
-global using Fs.Units.Density;
-global using Fs.Units.Pressure;
-global using Fs.Units.Power;
-global using Fs.Units.Energy;
-global using Fs.Units.ElectricCharge;
-global using Fs.Units.ElectromotiveForce;
-global using Fs.Units.Capacitance;
-global using Fs.Units.Inductance;
diff --git a/Fs.Units.CSharp/Simple/Angle.cs b/Fs.Units.CSharp/Simple/Angle.cs
deleted file mode 100644
index d338a55..0000000
--- a/Fs.Units.CSharp/Simple/Angle.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Angle;
-
-public static class DegreeExtensions
-{
- public static double DegreeToRadians(this double x) => Degree.toRadians(x);
- public static double DegreeToGradians(this double x) => Degree.toGradians(x);
- public static double DegreeToRevolutions(this double x) => Degree.toRevolutions(x);
- public static double DegreeToArcMinutes(this double x) => Degree.toArcMinutes(x);
- public static double DegreeToArcSeconds(this double x) => Degree.toArcSeconds(x);
-}
-
-public static class RadianExtensions
-{
- public static double RadianToDegrees(this double x) => Radian.toDegrees(x);
- public static double RadianToGradians(this double x) => Radian.toGradians(x);
- public static double RadianToRevolutions(this double x) => Radian.toRevolutions(x);
- public static double RadianToArcMinutes(this double x) => Radian.toArcMinutes(x);
- public static double RadianToArcSeconds(this double x) => Radian.toArcSeconds(x);
-}
-
-public static class GradianExtensions
-{
- public static double GradianToDegrees(this double x) => Gradian.toDegrees(x);
- public static double GradianToRadians(this double x) => Gradian.toRadians(x);
- public static double GradianToRevolutions(this double x) => Gradian.toRevolutions(x);
- public static double GradianToArcMinutes(this double x) => Gradian.toArcMinutes(x);
- public static double GradianToArcSeconds(this double x) => Gradian.toArcSeconds(x);
-}
-
-public static class RevolutionExtensions
-{
- public static double RevolutionToDegrees(this double x) => Revolution.toDegrees(x);
- public static double RevolutionToRadians(this double x) => Revolution.toRadians(x);
- public static double RevolutionToGradians(this double x) => Revolution.toGradians(x);
- public static double RevolutionToArcMinutes(this double x) => Revolution.toArcMinutes(x);
- public static double RevolutionToArcSeconds(this double x) => Revolution.toArcSeconds(x);
-}
-
-public static class ArcMinuteExtensions
-{
- public static double ArcMinuteToDegrees(this double x) => ArcMinute.toDegrees(x);
- public static double ArcMinuteToRadians(this double x) => ArcMinute.toRadians(x);
- public static double ArcMinuteToGradians(this double x) => ArcMinute.toGradians(x);
- public static double ArcMinuteToRevolutions(this double x) => ArcMinute.toRevolutions(x);
- public static double ArcMinuteToArcSeconds(this double x) => ArcMinute.toArcSeconds(x);
-}
-
-public static class ArcSecondExtensions
-{
- public static double ArcSecondToDegrees(this double x) => ArcSecond.toDegrees(x);
- public static double ArcSecondToRadians(this double x) => ArcSecond.toRadians(x);
- public static double ArcSecondToGradians(this double x) => ArcSecond.toGradians(x);
- public static double ArcSecondToRevolutions(this double x) => ArcSecond.toRevolutions(x);
- public static double ArcSecondToArcMinutes(this double x) => ArcSecond.toArcMinutes(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Current.cs b/Fs.Units.CSharp/Simple/Current.cs
deleted file mode 100644
index 02023fe..0000000
--- a/Fs.Units.CSharp/Simple/Current.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Current;
-
-public static class MicroampereExtensions
-{
- public static double MicroampereToAmperes(this double x) => Microampere.toAmperes(x);
- public static double MicroampereToMilliamperes(this double x) => Microampere.toMilliamperes(x);
- public static double MicroampereToBiots(this double x) => Microampere.toBiots(x);
-}
-
-public static class MilliampereExtensions
-{
- public static double MilliampereToAmperes(this double x) => Milliampere.toAmperes(x);
- public static double MilliampereToMicroamperes(this double x) => Milliampere.toMicroamperes(x);
- public static double MilliampereToBiots(this double x) => Milliampere.toBiots(x);
-}
-
-public static class AmpereExtensions
-{
- public static double AmpereToMilliamperes(this double x) => Ampere.toMilliamperes(x);
- public static double AmpereToMicroamperes(this double x) => Ampere.toMicroamperes(x);
- public static double AmpereToBiots(this double x) => Ampere.toBiots(x);
-}
-
-public static class BiotExtensions
-{
- public static double BiotToAmperes(this double x) => Biot.toAmperes(x);
- public static double BiotToMilliamperes(this double x) => Biot.toMilliamperes(x);
- public static double BiotToMicroamperes(this double x) => Biot.toMicroamperes(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/DataStorage.cs b/Fs.Units.CSharp/Simple/DataStorage.cs
deleted file mode 100644
index 144129a..0000000
--- a/Fs.Units.CSharp/Simple/DataStorage.cs
+++ /dev/null
@@ -1,183 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.DataStorage;
-
-public static class BitExtensions
-{
- public static double BitToKilobits(this double x) => Bit.toKilobits(x);
- public static double BitToMegabits(this double x) => Bit.toMegabits(x);
- public static double BitToGigabits(this double x) => Bit.toGigabits(x);
- public static double BitToTerabits(this double x) => Bit.toTerabits(x);
- public static double BitToPetabits(this double x) => Bit.toPetabits(x);
- public static double BitToBytes(this double x) => Bit.toBytes(x);
- public static double BitToKilobytes(this double x) => Bit.toKilobytes(x);
- public static double BitToMegabytes(this double x) => Bit.toMegabytes(x);
- public static double BitToGigabytes(this double x) => Bit.toGigabytes(x);
- public static double BitToTerabytes(this double x) => Bit.toTerabytes(x);
- public static double BitToPetabytes(this double x) => Bit.toPetabytes(x);
-}
-
-public static class KilobitExtensions
-{
- public static double KilobitsToBits(this double x) => Kilobit.toBits(x);
- public static double KilobitsToMegabits(this double x) => Kilobit.toMegabits(x);
- public static double KilobitsToGigabits(this double x) => Kilobit.toGigabits(x);
- public static double KilobitsToTerabits(this double x) => Kilobit.toTerabits(x);
- public static double KilobitsToPetabits(this double x) => Kilobit.toPetabits(x);
- public static double KilobitsToBytes(this double x) => Kilobit.toBytes(x);
- public static double KilobitsToKilobytes(this double x) => Kilobit.toKilobytes(x);
- public static double KilobitsToMegabytes(this double x) => Kilobit.toMegabytes(x);
- public static double KilobitsToGigabytes(this double x) => Kilobit.toGigabytes(x);
- public static double KilobitsToTerabytes(this double x) => Kilobit.toTerabytes(x);
- public static double KilobitsToPetabytes(this double x) => Kilobit.toPetabytes(x);
-}
-
-public static class MegabitExtensions
-{
- public static double MegabitsToBits(this double x) => Megabit.toBits(x);
- public static double MegabitsToKilobits(this double x) => Megabit.toKilobits(x);
- public static double MegabitsToGigabits(this double x) => Megabit.toGigabits(x);
- public static double MegabitsToTerabits(this double x) => Megabit.toTerabits(x);
- public static double MegabitsToPetabits(this double x) => Megabit.toPetabits(x);
- public static double MegabitsToBytes(this double x) => Megabit.toBytes(x);
- public static double MegabitsToKilobytes(this double x) => Megabit.toKilobytes(x);
- public static double MegabitsToMegabytes(this double x) => Megabit.toMegabytes(x);
- public static double MegabitsToGigabytes(this double x) => Megabit.toGigabytes(x);
- public static double MegabitsToTerabytes(this double x) => Megabit.toTerabytes(x);
- public static double MegabitsToPetabytes(this double x) => Megabit.toPetabytes(x);
-}
-
-public static class GigabitExtensions
-{
- public static double GigabitsToBits(this double x) => Gigabit.toBits(x);
- public static double GigabitsToKilobits(this double x) => Gigabit.toKilobits(x);
- public static double GigabitsToMegabits(this double x) => Gigabit.toMegabits(x);
- public static double GigabitsToTerabits(this double x) => Gigabit.toTerabits(x);
- public static double GigabitsToPetabits(this double x) => Gigabit.toPetabits(x);
- public static double GigabitsToBytes(this double x) => Gigabit.toBytes(x);
- public static double GigabitsToKilobytes(this double x) => Gigabit.toKilobytes(x);
- public static double GigabitsToMegabytes(this double x) => Gigabit.toMegabytes(x);
- public static double GigabitsToGigabytes(this double x) => Gigabit.toGigabytes(x);
- public static double GigabitsToTerabytes(this double x) => Gigabit.toTerabytes(x);
- public static double GigabitsToPetabytes(this double x) => Gigabit.toPetabytes(x);
-}
-
-public static class TerabitExtensions
-{
- public static double TerabitsToBits(this double x) => Terabit.toBits(x);
- public static double TerabitsToKilobits(this double x) => Terabit.toKilobits(x);
- public static double TerabitsToMegabits(this double x) => Terabit.toMegabits(x);
- public static double TerabitsToGigabits(this double x) => Terabit.toGigabits(x);
- public static double TerabitsToPetabits(this double x) => Terabit.toPetabits(x);
- public static double TerabitsToBytes(this double x) => Terabit.toBytes(x);
- public static double TerabitsToKilobytes(this double x) => Terabit.toKilobytes(x);
- public static double TerabitsToMegabytes(this double x) => Terabit.toMegabytes(x);
- public static double TerabitsToGigabytes(this double x) => Terabit.toGigabytes(x);
- public static double TerabitsToTerabytes(this double x) => Terabit.toTerabytes(x);
- public static double TerabitsToPetabytes(this double x) => Terabit.toPetabytes(x);
-}
-
-public static class PetabitExtensions
-{
- public static double PetabitsToBits(this double x) => Petabit.toBits(x);
- public static double PetabitsToKilobits(this double x) => Petabit.toKilobits(x);
- public static double PetabitsToMegabits(this double x) => Petabit.toMegabits(x);
- public static double PetabitsToGigabits(this double x) => Petabit.toGigabits(x);
- public static double PetabitsToTerabits(this double x) => Petabit.toTerabits(x);
- public static double PetabitsToBytes(this double x) => Petabit.toBytes(x);
- public static double PetabitsToKilobytes(this double x) => Petabit.toKilobytes(x);
- public static double PetabitsToMegabytes(this double x) => Petabit.toMegabytes(x);
- public static double PetabitsToGigabytes(this double x) => Petabit.toGigabytes(x);
- public static double PetabitsToTerabytes(this double x) => Petabit.toTerabytes(x);
- public static double PetabitsToPetabytes(this double x) => Petabit.toPetabytes(x);
-}
-
-public static class ByteExtensions
-{
- public static double BytesToBits(this double x) => Units.DataStorage.Byte.toBits(x);
- public static double BytesToKilobits(this double x) => Units.DataStorage.Byte.toKilobits(x);
- public static double BytesToMegabits(this double x) => Units.DataStorage.Byte.toMegabits(x);
- public static double BytesToGigabits(this double x) => Units.DataStorage.Byte.toGigabits(x);
- public static double BytesToTerabits(this double x) => Units.DataStorage.Byte.toTerabits(x);
- public static double BytesToPetabits(this double x) => Units.DataStorage.Byte.toPetabits(x);
- public static double BytesToKilobytes(this double x) => Units.DataStorage.Byte.toKilobytes(x);
- public static double BytesToMegabytes(this double x) => Units.DataStorage.Byte.toMegabytes(x);
- public static double BytesToGigabytes(this double x) => Units.DataStorage.Byte.toGigabytes(x);
- public static double BytesToTerabytes(this double x) => Units.DataStorage.Byte.toTerabytes(x);
- public static double BytesToPetabytes(this double x) => Units.DataStorage.Byte.toPetabytes(x);
-}
-
-public static class KilobyteExtensions
-{
- public static double KilobytesToBits(this double x) => Kilobyte.toBits(x);
- public static double KilobytesToKilobits(this double x) => Kilobyte.toKilobits(x);
- public static double KilobytesToMegabits(this double x) => Kilobyte.toMegabits(x);
- public static double KilobytesToGigabits(this double x) => Kilobyte.toGigabits(x);
- public static double KilobytesToTerabits(this double x) => Kilobyte.toTerabits(x);
- public static double KilobytesToPetabits(this double x) => Kilobyte.toPetabits(x);
- public static double KilobytesToBytes(this double x) => Kilobyte.toBytes(x);
- public static double KilobytesToMegabytes(this double x) => Kilobyte.toMegabytes(x);
- public static double KilobytesToGigabytes(this double x) => Kilobyte.toGigabytes(x);
- public static double KilobytesToTerabytes(this double x) => Kilobyte.toTerabytes(x);
- public static double KilobytesToPetabytes(this double x) => Kilobyte.toPetabytes(x);
-}
-
-public static class MegabyteExtensions
-{
- public static double MegabytesToBits(this double x) => Megabyte.toBits(x);
- public static double MegabytesToKilobits(this double x) => Megabyte.toKilobits(x);
- public static double MegabytesToMegabits(this double x) => Megabyte.toMegabits(x);
- public static double MegabytesToGigabits(this double x) => Megabyte.toGigabits(x);
- public static double MegabytesToTerabits(this double x) => Megabyte.toTerabits(x);
- public static double MegabytesToPetabits(this double x) => Megabyte.toPetabits(x);
- public static double MegabytesToBytes(this double x) => Megabyte.toBytes(x);
- public static double MegabytesToKilobytes(this double x) => Megabyte.toKilobytes(x);
- public static double MegabytesToGigabytes(this double x) => Megabyte.toGigabytes(x);
- public static double MegabytesToTerabytes(this double x) => Megabyte.toTerabytes(x);
- public static double MegabytesToPetabytes(this double x) => Megabyte.toPetabytes(x);
-}
-
-public static class GigabyteExtensions
-{
- public static double GigabytesToBits(this double x) => Gigabyte.toBits(x);
- public static double GigabytesToKilobits(this double x) => Gigabyte.toKilobits(x);
- public static double GigabytesToMegabits(this double x) => Gigabyte.toMegabits(x);
- public static double GigabytesToGigabits(this double x) => Gigabyte.toGigabits(x);
- public static double GigabytesToTerabits(this double x) => Gigabyte.toTerabits(x);
- public static double GigabytesToPetabits(this double x) => Gigabyte.toPetabits(x);
- public static double GigabytesToBytes(this double x) => Gigabyte.toBytes(x);
- public static double GigabytesToKilobytes(this double x) => Gigabyte.toKilobytes(x);
- public static double GigabytesToMegabytes(this double x) => Gigabyte.toMegabytes(x);
- public static double GigabytesToTerabytes(this double x) => Gigabyte.toTerabytes(x);
- public static double GigabytesToPetabytes(this double x) => Gigabyte.toPetabytes(x);
-}
-
-public static class TerabyteExtensions
-{
- public static double TerabytesToBits(this double x) => Terabyte.toBits(x);
- public static double TerabytesToKilobits(this double x) => Terabyte.toKilobits(x);
- public static double TerabytesToMegabits(this double x) => Terabyte.toMegabits(x);
- public static double TerabytesToGigabits(this double x) => Terabyte.toGigabits(x);
- public static double TerabytesToTerabits(this double x) => Terabyte.toTerabits(x);
- public static double TerabytesToPetabits(this double x) => Terabyte.toPetabits(x);
- public static double TerabytesToBytes(this double x) => Terabyte.toBytes(x);
- public static double TerabytesToKilobytes(this double x) => Terabyte.toKilobytes(x);
- public static double TerabytesToMegabytes(this double x) => Terabyte.toMegabytes(x);
- public static double TerabytesToGigabytes(this double x) => Terabyte.toGigabytes(x);
- public static double TerabytesToPetabytes(this double x) => Terabyte.toPetabytes(x);
-}
-
-public static class PetabyteExtensions
-{
- public static double PetabytesToBits(this double x) => Petabyte.toBits(x);
- public static double PetabytesToKilobits(this double x) => Petabyte.toKilobits(x);
- public static double PetabytesToMegabits(this double x) => Petabyte.toMegabits(x);
- public static double PetabytesToGigabits(this double x) => Petabyte.toGigabits(x);
- public static double PetabytesToTerabits(this double x) => Petabyte.toTerabits(x);
- public static double PetabytesToPetabits(this double x) => Petabyte.toPetabits(x);
- public static double PetabytesToBytes(this double x) => Petabyte.toBytes(x);
- public static double PetabytesToKilobytes(this double x) => Petabyte.toKilobytes(x);
- public static double PetabytesToMegabytes(this double x) => Petabyte.toMegabytes(x);
- public static double PetabytesToGigabytes(this double x) => Petabyte.toGigabytes(x);
- public static double PetabytesToTerabytes(this double x) => Petabyte.toTerabytes(x);
-}
-
diff --git a/Fs.Units.CSharp/Simple/Frequency.cs b/Fs.Units.CSharp/Simple/Frequency.cs
deleted file mode 100644
index 91daac2..0000000
--- a/Fs.Units.CSharp/Simple/Frequency.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Frequency;
-
-public static class HertzExtensions
-{
- public static double HertzToKilohertz(this double x) => Hertz.toKilohertz(x);
- public static double HertzToMegahertz(this double x) => Hertz.toMegahertz(x);
- public static double HertzToGigahertz(this double x) => Hertz.toGigahertz(x);
-}
-
-public static class KilohertzExtensions
-{
- public static double KilohertzToHertz(this double x) => Kilohertz.toHertz(x);
- public static double KilohertzToMegahertz(this double x) => Kilohertz.toMegahertz(x);
- public static double KilohertzToGigahertz(this double x) => Kilohertz.toGigahertz(x);
-}
-
-public static class MegahertzExtensions
-{
- public static double MegahertzToHertz(this double x) => Megahertz.toHertz(x);
- public static double MegahertzToKilohertz(this double x) => Megahertz.toKilohertz(x);
- public static double MegahertzToGigahertz(this double x) => Megahertz.toGigahertz(x);
-}
-
-public static class GigahertzExtensions
-{
- public static double GigahertzToHertz(this double x) => Gigahertz.toHertz(x);
- public static double GigahertzToKilohertz(this double x) => Gigahertz.toKilohertz(x);
- public static double GigahertzToMegahertz(this double x) => Gigahertz.toMegahertz(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Illuminance.cs b/Fs.Units.CSharp/Simple/Illuminance.cs
deleted file mode 100644
index 956596c..0000000
--- a/Fs.Units.CSharp/Simple/Illuminance.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Illuminance;
-
-public static class FootcandleExtensions
-{
- public static double FootcandleToLux(this double x) => Footcandle.toLux(x);
- public static double FootcandleToPhot(this double x) => Footcandle.toPhot(x);
- public static double FootcandleToNox(this double x) => Footcandle.toNox(x);
-}
-
-public static class LuxExtensions
-{
- public static double LuxToFootcandle(this double x) => Lux.toFootcandle(x);
- public static double LuxToPhot(this double x) => Lux.toPhot(x);
- public static double LuxToNox(this double x) => Lux.toNox(x);
-}
-
-public static class PhotExtensions
-{
- public static double PhotToFootcandle(this double x) => Phot.toFootcandle(x);
- public static double PhotToLux(this double x) => Phot.toLux(x);
- public static double PhotToNox(this double x) => Phot.toNox(x);
-}
-
-public static class NoxExtensions
-{
- public static double NoxToFootcandle(this double x) => Nox.toFootcandle(x);
- public static double NoxToLux(this double x) => Nox.toLux(x);
- public static double NoxToPhot(this double x) => Nox.toPhot(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Length.cs b/Fs.Units.CSharp/Simple/Length.cs
deleted file mode 100644
index 924581c..0000000
--- a/Fs.Units.CSharp/Simple/Length.cs
+++ /dev/null
@@ -1,223 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Length;
-
-public static class InchExtensions
-{
- public static double InchToFeet(this double x) => Inch.toFeet(x);
- public static double InchToYards(this double x) => Inch.toYards(x);
- public static double InchToMiles(this double x) => Inch.toMiles(x);
- public static double InchToMillimeters(this double x) => Inch.toMillimeters(x);
- public static double InchToCentimeters(this double x) => Inch.toCentimeters(x);
- public static double InchToMeters(this double x) => Inch.toMeters(x);
- public static double InchToKilometers(this double x) => Inch.toKilometers(x);
- public static double InchToNauticalMiles(this double x) => Inch.toNauticalMiles(x);
- public static double InchToChains(this double x) => Inch.toChains(x);
- public static double InchToFurlongs(this double x) => Inch.toFurlongs(x);
- public static double InchToLeagues(this double x) => Inch.toLeagues(x);
- public static double InchToHands(this double x) => Inch.toHands(x);
- public static double InchToRods(this double x) => Inch.toRods(x);
-}
-
-public static class FootExtensions
-{
- public static double FootToInches(this double x) => Foot.toInches(x);
- public static double FootToYards(this double x) => Foot.toYards(x);
- public static double FootToMiles(this double x) => Foot.toMiles(x);
- public static double FootToMillimeters(this double x) => Foot.toMillimeters(x);
- public static double FootToCentimeters(this double x) => Foot.toCentimeters(x);
- public static double FootToMeters(this double x) => Foot.toMeters(x);
- public static double FootToKilometers(this double x) => Foot.toKilometers(x);
- public static double FootToNauticalMiles(this double x) => Foot.toNauticalMiles(x);
- public static double FootToChains(this double x) => Foot.toChains(x);
- public static double FootToFurlongs(this double x) => Foot.toFurlongs(x);
- public static double FootToLeagues(this double x) => Foot.toLeagues(x);
- public static double FootToHands(this double x) => Foot.toHands(x);
- public static double FootToRods(this double x) => Foot.toRods(x);
-}
-
-public static class YardExtensions
-{
- public static double YardToInches(this double x) => Yard.toInches(x);
- public static double YardToFeet(this double x) => Yard.toFeet(x);
- public static double YardToMiles(this double x) => Yard.toMiles(x);
- public static double YardToMillimeters(this double x) => Yard.toMillimeters(x);
- public static double YardToCentimeters(this double x) => Yard.toCentimeters(x);
- public static double YardToMeters(this double x) => Yard.toMeters(x);
- public static double YardToKilometers(this double x) => Yard.toKilometers(x);
- public static double YardToNauticalMiles(this double x) => Yard.toNauticalMiles(x);
- public static double YardToChains(this double x) => Yard.toChains(x);
- public static double YardToFurlongs(this double x) => Yard.toFurlongs(x);
- public static double YardToLeagues(this double x) => Yard.toLeagues(x);
- public static double YardToHands(this double x) => Yard.toHands(x);
- public static double YardToRods(this double x) => Yard.toRods(x);
-}
-
-public static class MileExtensions
-{
- public static double MileToInches(this double x) => Mile.toInches(x);
- public static double MileToFeet(this double x) => Mile.toFeet(x);
- public static double MileToYards(this double x) => Mile.toYards(x);
- public static double MileToMillimeters(this double x) => Mile.toMillimeters(x);
- public static double MileToCentimeters(this double x) => Mile.toCentimeters(x);
- public static double MileToMeters(this double x) => Mile.toMeters(x);
- public static double MileToKilometers(this double x) => Mile.toKilometers(x);
- public static double MileToNauticalMiles(this double x) => Mile.toNauticalMiles(x);
- public static double MileToChains(this double x) => Mile.toChains(x);
- public static double MileToFurlongs(this double x) => Mile.toFurlongs(x);
- public static double MileToLeagues(this double x) => Mile.toLeagues(x);
- public static double MileToHands(this double x) => Mile.toHands(x);
- public static double MileToRods(this double x) => Mile.toRods(x);
-}
-
-public static class MillimeterExtensions
-{
- public static double MillimeterToInches(this double x) => Millimeter.toInches(x);
- public static double MillimeterToFeet(this double x) => Millimeter.toFeet(x);
- public static double MillimeterToYards(this double x) => Millimeter.toYards(x);
- public static double MillimeterToMiles(this double x) => Millimeter.toMiles(x);
- public static double MillimeterToCentimeters(this double x) => Millimeter.toCentimeters(x);
- public static double MillimeterToMeters(this double x) => Millimeter.toMeters(x);
- public static double MillimeterToKilometers(this double x) => Millimeter.toKilometers(x);
- public static double MillimeterToNauticalMiles(this double x) => Millimeter.toNauticalMiles(x);
- public static double MillimeterToChains(this double x) => Millimeter.toChains(x);
- public static double MillimeterToFurlongs(this double x) => Millimeter.toFurlongs(x);
- public static double MillimeterToLeagues(this double x) => Millimeter.toLeagues(x);
- public static double MillimeterToHands(this double x) => Millimeter.toHands(x);
- public static double MillimeterToRods(this double x) => Millimeter.toRods(x);
-}
-
-public static class CentimeterExtensions
-{
- public static double CentimeterToInches(this double x) => Centimeter.toInches(x);
- public static double CentimeterToFeet(this double x) => Centimeter.toFeet(x);
- public static double CentimeterToYards(this double x) => Centimeter.toYards(x);
- public static double CentimeterToMiles(this double x) => Centimeter.toMiles(x);
- public static double CentimeterToMillimeters(this double x) => Centimeter.toMillimeters(x);
- public static double CentimeterToMeters(this double x) => Centimeter.toMeters(x);
- public static double CentimeterToKilometers(this double x) => Centimeter.toKilometers(x);
- public static double CentimeterToNauticalMiles(this double x) => Centimeter.toNauticalMiles(x);
- public static double CentimeterToChains(this double x) => Centimeter.toChains(x);
- public static double CentimeterToFurlongs(this double x) => Centimeter.toFurlongs(x);
- public static double CentimeterToLeagues(this double x) => Centimeter.toLeagues(x);
- public static double CentimeterToHands(this double x) => Centimeter.toHands(x);
- public static double CentimeterToRods(this double x) => Centimeter.toRods(x);
-}
-
-public static class MeterExtensions
-{
- public static double MeterToInches(this double x) => Meter.toInches(x);
- public static double MeterToFeet(this double x) => Meter.toFeet(x);
- public static double MeterToYards(this double x) => Meter.toYards(x);
- public static double MeterToMiles(this double x) => Meter.toMiles(x);
- public static double MeterToMillimeters(this double x) => Meter.toMillimeters(x);
- public static double MeterToCentimeters(this double x) => Meter.toCentimeters(x);
- public static double MeterToKilometers(this double x) => Meter.toKilometers(x);
- public static double MeterToNauticalMiles(this double x) => Meter.toNauticalMiles(x);
- public static double MeterToChains(this double x) => Meter.toChains(x);
- public static double MeterToFurlongs(this double x) => Meter.toFurlongs(x);
- public static double MeterToLeagues(this double x) => Meter.toLeagues(x);
- public static double MeterToHands(this double x) => Meter.toHands(x);
- public static double MeterToRods(this double x) => Meter.toRods(x);
-}
-
-public static class KilometerExtensions
-{
- public static double KilometerToInches(this double x) => Kilometer.toInches(x);
- public static double KilometerToFeet(this double x) => Kilometer.toFeet(x);
- public static double KilometerToYards(this double x) => Kilometer.toYards(x);
- public static double KilometerToMiles(this double x) => Kilometer.toMiles(x);
- public static double KilometerToMillimeters(this double x) => Kilometer.toMillimeters(x);
- public static double KilometerToCentimeters(this double x) => Kilometer.toCentimeters(x);
- public static double KilometerToMeters(this double x) => Kilometer.toMeters(x);
- public static double KilometerToNauticalMiles(this double x) => Kilometer.toNauticalMiles(x);
- public static double KilometerToChains(this double x) => Kilometer.toChains(x);
- public static double KilometerToFurlongs(this double x) => Kilometer.toFurlongs(x);
- public static double KilometerToLeagues(this double x) => Kilometer.toLeagues(x);
- public static double KilometerToHands(this double x) => Kilometer.toHands(x);
- public static double KilometerToRods(this double x) => Kilometer.toRods(x);
-}
-
-public static class NauticalMileExtensions
-{
- public static double NauticalMileToInches(this double x) => NauticalMile.toInches(x);
- public static double NauticalMileToFeet(this double x) => NauticalMile.toFeet(x);
- public static double NauticalMileToYards(this double x) => NauticalMile.toYards(x);
- public static double NauticalMileToMiles(this double x) => NauticalMile.toMiles(x);
- public static double NauticalMileToMillimeters(this double x) => NauticalMile.toMillimeters(x);
- public static double NauticalMileToCentimeters(this double x) => NauticalMile.toCentimeters(x);
- public static double NauticalMileToMeters(this double x) => NauticalMile.toMeters(x);
- public static double NauticalMileToKilometers(this double x) => NauticalMile.toKilometers(x);
- public static double NauticalMileToChains(this double x) => NauticalMile.toChains(x);
- public static double NauticalMileToFurlongs(this double x) => NauticalMile.toFurlongs(x);
- public static double NauticalMileToLeagues(this double x) => NauticalMile.toLeagues(x);
- public static double NauticalMileToHands(this double x) => NauticalMile.toHands(x);
- public static double NauticalMileToRods(this double x) => NauticalMile.toRods(x);
-}
-
-public static class ChainExtensions
-{
- public static double ChainToInches(this double x) => Chain.toInches(x);
- public static double ChainToFeet(this double x) => Chain.toFeet(x);
- public static double ChainToYards(this double x) => Chain.toYards(x);
- public static double ChainToMiles(this double x) => Chain.toMiles(x);
- public static double ChainToMillimeters(this double x) => Chain.toMillimeters(x);
- public static double ChainToCentimeters(this double x) => Chain.toCentimeters(x);
- public static double ChainToMeters(this double x) => Chain.toMeters(x);
- public static double ChainToKilometers(this double x) => Chain.toKilometers(x);
- public static double ChainToNauticalMiles(this double x) => Chain.toNauticalMiles(x);
- public static double ChainToFurlongs(this double x) => Chain.toFurlongs(x);
- public static double ChainToLeagues(this double x) => Chain.toLeagues(x);
- public static double ChainToHands(this double x) => Chain.toHands(x);
- public static double ChainToRods(this double x) => Chain.toRods(x);
-}
-
-public static class FurlongExtensions
-{
- public static double FurlongToInches(this double x) => Furlong.toInches(x);
- public static double FurlongToFeet(this double x) => Furlong.toFeet(x);
- public static double FurlongToYards(this double x) => Furlong.toYards(x);
- public static double FurlongToMiles(this double x) => Furlong.toMiles(x);
- public static double FurlongToMillimeters(this double x) => Furlong.toMillimeters(x);
- public static double FurlongToCentimeters(this double x) => Furlong.toCentimeters(x);
- public static double FurlongToMeters(this double x) => Furlong.toMeters(x);
- public static double FurlongToKilometers(this double x) => Furlong.toKilometers(x);
- public static double FurlongToNauticalMiles(this double x) => Furlong.toNauticalMiles(x);
- public static double FurlongToChains(this double x) => Furlong.toChains(x);
- public static double FurlongToLeagues(this double x) => Furlong.toLeagues(x);
- public static double FurlongToHands(this double x) => Furlong.toHands(x);
- public static double FurlongToRods(this double x) => Furlong.toRods(x);
-}
-
-public static class LeagueExtensions
-{
- public static double LeagueToInches(this double x) => League.toInches(x);
- public static double LeagueToFeet(this double x) => League.toFeet(x);
- public static double LeagueToYards(this double x) => League.toYards(x);
- public static double LeagueToMiles(this double x) => League.toMiles(x);
- public static double LeagueToMillimeters(this double x) => League.toMillimeters(x);
- public static double LeagueToCentimeters(this double x) => League.toCentimeters(x);
- public static double LeagueToMeters(this double x) => League.toMeters(x);
- public static double LeagueToKilometers(this double x) => League.toKilometers(x);
- public static double LeagueToNauticalMiles(this double x) => League.toNauticalMiles(x);
- public static double LeagueToChains(this double x) => League.toChains(x);
- public static double LeagueToFurlongs(this double x) => League.toFurlongs(x);
- public static double LeagueToHands(this double x) => League.toHands(x);
- public static double LeagueToRods(this double x) => League.toRods(x);
-}
-
-public static class HandExtensions
-{
- public static double HandToInches(this double x) => Hand.toInches(x);
- public static double HandToFeet(this double x) => Hand.toFeet(x);
- public static double HandToYards(this double x) => Hand.toYards(x);
- public static double HandToMiles(this double x) => Hand.toMiles(x);
- public static double HandToMillimeters(this double x) => Hand.toMillimeters(x);
- public static double HandToCentimeters(this double x) => Hand.toCentimeters(x);
- public static double HandToMeters(this double x) => Hand.toMeters(x);
- public static double HandToKilometers(this double x) => Hand.toKilometers(x);
- public static double HandToNauticalMiles(this double x) => Hand.toNauticalMiles(x);
- public static double HandToChains(this double x) => Hand.toChains(x);
- public static double HandToFurlongs(this double x) => Hand.toFurlongs(x);
- public static double HandToLeagues(this double x) => Hand.toLeagues(x);
- public static double HandToRods(this double x) => Hand.toRods(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Mass.cs b/Fs.Units.CSharp/Simple/Mass.cs
deleted file mode 100644
index 83281fd..0000000
--- a/Fs.Units.CSharp/Simple/Mass.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Mass;
-
-public static class MilligramExtensions
-{
- public static double MilligramToGrams(this double x) => Milligram.toGrams(x);
- public static double MilligramToKilograms(this double x) => Milligram.toKilograms(x);
- public static double MilligramToPoundMass(this double x) => Milligram.toPoundMass(x);
-}
-
-public static class GramExtensions
-{
- public static double GramToMilligrams(this double x) => Gram.toMilligrams(x);
- public static double GramToKilograms(this double x) => Gram.toKilograms(x);
- public static double GramToPoundMass(this double x) => Gram.toPoundMass(x);
-}
-
-public static class KilogramExtensions
-{
- public static double KilogramToMilligrams(this double x) => Kilogram.toMilligrams(x);
- public static double KilogramToGrams(this double x) => Kilogram.toGrams(x);
- public static double KilogramToPoundMass(this double x) => Kilogram.toPoundMass(x);
-}
-
-public static class PoundMassExtensions
-{
- public static double PoundMassToMilligrams(this double x) => PoundMass.toMilligrams(x);
- public static double PoundMassToGrams(this double x) => PoundMass.toGrams(x);
- public static double PoundMassToKilograms(this double x) => PoundMass.toKilograms(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Temperature.cs b/Fs.Units.CSharp/Simple/Temperature.cs
deleted file mode 100644
index ce26ddb..0000000
--- a/Fs.Units.CSharp/Simple/Temperature.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Temperature;
-
-public static class KelvinExtensions
-{
- public static double KelvinToCelsius(this double x) => Kelvin.toCelsius(x);
- public static double KelvinToFahrenheit(this double x) => Kelvin.toFahrenheit(x);
- public static double KelvinToRankine(this double x) => Kelvin.toRankine(x);
-}
-
-public static class CelsiusExtensions
-{
- public static double CelsiusToKelvin(this double x) => Celsius.toKelvin(x);
- public static double CelsiusToFahrenheit(this double x) => Celsius.toFahrenheit(x);
- public static double CelsiusToRankine(this double x) => Celsius.toRankine(x);
-}
-
-public static class FahrenheitExtensions
-{
- public static double FahrenheitToKelvin(this double x) => Fahrenheit.toKelvin(x);
- public static double FahrenheitToCelsius(this double x) => Fahrenheit.toCelsius(x);
- public static double FahrenheitToRankine(this double x) => Fahrenheit.toRankine(x);
-}
-
-public static class RankineExtensions
-{
- public static double RankineToKelvin(this double x) => Rankine.toKelvin(x);
- public static double RankineToCelsius(this double x) => Rankine.toCelsius(x);
- public static double RankineToFahrenheit(this double x) => Rankine.toFahrenheit(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.CSharp/Simple/Time.cs b/Fs.Units.CSharp/Simple/Time.cs
deleted file mode 100644
index 520f66e..0000000
--- a/Fs.Units.CSharp/Simple/Time.cs
+++ /dev/null
@@ -1,272 +0,0 @@
-// ReSharper disable once CheckNamespace
-namespace Fs.Units.CSharp.Time;
-
-public static class NanosecondExtensions
-{
- public static double NanosecondToMicroseconds(this double x) => Nanosecond.toMicroSeconds(x);
- public static double NanosecondToMilliseconds(this double x) => Nanosecond.toMilliSeconds(x);
- public static double NanosecondToSeconds(this double x) => Nanosecond.toSeconds(x);
- public static double NanosecondToMinutes(this double x) => Nanosecond.toMinutes(x);
- public static double NanosecondToHours(this double x) => Nanosecond.toHours(x);
- public static double NanosecondToDays(this double x) => Nanosecond.toDays(x);
- public static double NanosecondToWeeks(this double x) => Nanosecond.toWeeks(x);
- public static double NanosecondToFortnights(this double x) => Nanosecond.toFortnights(x);
- public static double NanosecondToMonths(this double x) => Nanosecond.toMonths(x);
- public static double NanosecondToYears(this double x) => Nanosecond.toYears(x);
- public static double NanosecondToDecades(this double x) => Nanosecond.toDecades(x);
- public static double NanosecondToCenturies(this double x) => Nanosecond.toCenturies(x);
- public static double NanosecondToMillennia(this double x) => Nanosecond.toMillennia(x);
- public static double NanosecondToEons(this double x) => Nanosecond.toEons(x);
-}
-
-public static class MicrosecondExtensions
-{
- public static double MicrosecondToNanoseconds(this double x) => Microsecond.toNanoSeconds(x);
- public static double MicrosecondToMilliseconds(this double x) => Microsecond.toMilliSeconds(x);
- public static double MicrosecondToSeconds(this double x) => Microsecond.toSeconds(x);
- public static double MicrosecondToMinutes(this double x) => Microsecond.toMinutes(x);
- public static double MicrosecondToHours(this double x) => Microsecond.toHours(x);
- public static double MicrosecondToDays(this double x) => Microsecond.toDays(x);
- public static double MicrosecondToWeeks(this double x) => Microsecond.toWeeks(x);
- public static double MicrosecondToFortnights(this double x) => Microsecond.toFortnights(x);
- public static double MicrosecondToMonths(this double x) => Microsecond.toMonths(x);
- public static double MicrosecondToYears(this double x) => Microsecond.toYears(x);
- public static double MicrosecondToDecades(this double x) => Microsecond.toDecades(x);
- public static double MicrosecondToCenturies(this double x) => Microsecond.toCenturies(x);
- public static double MicrosecondToMillennia(this double x) => Microsecond.toMillennia(x);
- public static double MicrosecondToEons(this double x) => Microsecond.toEons(x);
-}
-
-public static class MillisecondExtensions
-{
- public static double MillisecondToNanoseconds(this double x) => Millisecond.toNanoSeconds(x);
- public static double MillisecondToMicroseconds(this double x) => Millisecond.toMicroSeconds(x);
- public static double MillisecondToSeconds(this double x) => Millisecond.toSeconds(x);
- public static double MillisecondToMinutes(this double x) => Millisecond.toMinutes(x);
- public static double MillisecondToHours(this double x) => Millisecond.toHours(x);
- public static double MillisecondToDays(this double x) => Millisecond.toDays(x);
- public static double MillisecondToWeeks(this double x) => Millisecond.toWeeks(x);
- public static double MillisecondToFortnights(this double x) => Millisecond.toFortnights(x);
- public static double MillisecondToMonths(this double x) => Millisecond.toMonths(x);
- public static double MillisecondToYears(this double x) => Millisecond.toYears(x);
- public static double MillisecondToDecades(this double x) => Millisecond.toDecades(x);
- public static double MillisecondToCenturies(this double x) => Millisecond.toCenturies(x);
- public static double MillisecondToMillennia(this double x) => Millisecond.toMillennia(x);
- public static double MillisecondToEons(this double x) => Millisecond.toEons(x);
-}
-
-public static class SecondExtensions
-{
- public static double SecondToNanoseconds(this double x) => Second.toNanoSeconds(x);
- public static double SecondToMicroseconds(this double x) => Second.toMicroSeconds(x);
- public static double SecondToMilliseconds(this double x) => Second.toMilliSeconds(x);
- public static double SecondToMinutes(this double x) => Second.toMinutes(x);
- public static double SecondToHours(this double x) => Second.toHours(x);
- public static double SecondToDays(this double x) => Second.toDays(x);
- public static double SecondToWeeks(this double x) => Second.toWeeks(x);
- public static double SecondToFortnights(this double x) => Second.toFortnights(x);
- public static double SecondToMonths(this double x) => Second.toMonths(x);
- public static double SecondToYears(this double x) => Second.toYears(x);
- public static double SecondToDecades(this double x) => Second.toDecades(x);
- public static double SecondToCenturies(this double x) => Second.toCenturies(x);
- public static double SecondToMillennia(this double x) => Second.toMillennia(x);
- public static double SecondToEons(this double x) => Second.toEons(x);
-}
-
-public static class MinuteExtensions
-{
- public static double MinuteToNanoseconds(this double x) => Minute.toNanoSeconds(x);
- public static double MinuteToMicroseconds(this double x) => Minute.toMicroSeconds(x);
- public static double MinuteToMilliseconds(this double x) => Minute.toMilliSeconds(x);
- public static double MinuteToSeconds(this double x) => Minute.toSeconds(x);
- public static double MinuteToHours(this double x) => Minute.toHours(x);
- public static double MinuteToDays(this double x) => Minute.toDays(x);
- public static double MinuteToWeeks(this double x) => Minute.toWeeks(x);
- public static double MinuteToFortnights(this double x) => Minute.toFortnights(x);
- public static double MinuteToMonths(this double x) => Minute.toMonths(x);
- public static double MinuteToYears(this double x) => Minute.toYears(x);
- public static double MinuteToDecades(this double x) => Minute.toDecades(x);
- public static double MinuteToCenturies(this double x) => Minute.toCenturies(x);
- public static double MinuteToMillennia(this double x) => Minute.toMillennia(x);
- public static double MinuteToEons(this double x) => Minute.toEons(x);
-}
-
-public static class HourExtensions
-{
- public static double HourToNanoseconds(this double x) => Hour.toNanoSeconds(x);
- public static double HourToMicroseconds(this double x) => Hour.toMicroSeconds(x);
- public static double HourToMilliseconds(this double x) => Hour.toMilliSeconds(x);
- public static double HourToSeconds(this double x) => Hour.toSeconds(x);
- public static double HourToMinutes(this double x) => Hour.toMinutes(x);
- public static double HourToDays(this double x) => Hour.toDays(x);
- public static double HourToWeeks(this double x) => Hour.toWeeks(x);
- public static double HourToFortnights(this double x) => Hour.toFortnights(x);
- public static double HourToMonths(this double x) => Hour.toMonths(x);
- public static double HourToYears(this double x) => Hour.toYears(x);
- public static double HourToDecades(this double x) => Hour.toDecades(x);
- public static double HourToCenturies(this double x) => Hour.toCenturies(x);
- public static double HourToMillennia(this double x) => Hour.toMillennia(x);
- public static double HourToEons(this double x) => Hour.toEons(x);
-}
-
-public static class DayExtensions
-{
- public static double DayToNanoseconds(this double x) => Day.toNanoSeconds(x);
- public static double DayToMicroseconds(this double x) => Day.toMicroSeconds(x);
- public static double DayToMilliseconds(this double x) => Day.toMilliSeconds(x);
- public static double DayToSeconds(this double x) => Day.toSeconds(x);
- public static double DayToMinutes(this double x) => Day.toMinutes(x);
- public static double DayToHours(this double x) => Day.toHours(x);
- public static double DayToWeeks(this double x) => Day.toWeeks(x);
- public static double DayToFortnights(this double x) => Day.toFortnights(x);
- public static double DayToMonths(this double x) => Day.toMonths(x);
- public static double DayToYears(this double x) => Day.toYears(x);
- public static double DayToDecades(this double x) => Day.toDecades(x);
- public static double DayToCenturies(this double x) => Day.toCenturies(x);
- public static double DayToMillennia(this double x) => Day.toMillennia(x);
- public static double DayToEons(this double x) => Day.toEons(x);
-}
-
-public static class WeekExtensions
-{
- public static double WeekToNanoseconds(this double x) => Week.toNanoSeconds(x);
- public static double WeekToMicroseconds(this double x) => Week.toMicroSeconds(x);
- public static double WeekToMilliseconds(this double x) => Week.toMilliSeconds(x);
- public static double WeekToSeconds(this double x) => Week.toSeconds(x);
- public static double WeekToMinutes(this double x) => Week.toMinutes(x);
- public static double WeekToHours(this double x) => Week.toHours(x);
- public static double WeekToDays(this double x) => Week.toDays(x);
- public static double WeekToFortnights(this double x) => Week.toFortnights(x);
- public static double WeekToMonths(this double x) => Week.toMonths(x);
- public static double WeekToYears(this double x) => Week.toYears(x);
- public static double WeekToDecades(this double x) => Week.toDecades(x);
- public static double WeekToCenturies(this double x) => Week.toCenturies(x);
- public static double WeekToMillennia(this double x) => Week.toMillennia(x);
- public static double WeekToEons(this double x) => Week.toEons(x);
-}
-
-public static class FortnightExtensions
-{
- public static double FortnightToNanoseconds(this double x) => Fortnight.toNanoSeconds(x);
- public static double FortnightToMicroseconds(this double x) => Fortnight.toMicroSeconds(x);
- public static double FortnightToMilliseconds(this double x) => Fortnight.toMilliSeconds(x);
- public static double FortnightToSeconds(this double x) => Fortnight.toSeconds(x);
- public static double FortnightToMinutes(this double x) => Fortnight.toMinutes(x);
- public static double FortnightToHours(this double x) => Fortnight.toHours(x);
- public static double FortnightToDays(this double x) => Fortnight.toDays(x);
- public static double FortnightToWeeks(this double x) => Fortnight.toWeeks(x);
- public static double FortnightToMonths(this double x) => Fortnight.toMonths(x);
- public static double FortnightToYears(this double x) => Fortnight.toYears(x);
- public static double FortnightToDecades(this double x) => Fortnight.toDecades(x);
- public static double FortnightToCenturies(this double x) => Fortnight.toCenturies(x);
- public static double FortnightToMillennia(this double x) => Fortnight.toMillennia(x);
- public static double FortnightToEons(this double x) => Fortnight.toEons(x);
-}
-
-public static class MonthExtensions
-{
- public static double MonthToNanoseconds(this double x) => Month.toNanoSeconds(x);
- public static double MonthToMicroseconds(this double x) => Month.toMicroSeconds(x);
- public static double MonthToMilliseconds(this double x) => Month.toMilliSeconds(x);
- public static double MonthToSeconds(this double x) => Month.toSeconds(x);
- public static double MonthToMinutes(this double x) => Month.toMinutes(x);
- public static double MonthToHours(this double x) => Month.toHours(x);
- public static double MonthToDays(this double x) => Month.toDays(x);
- public static double MonthToWeeks(this double x) => Month.toWeeks(x);
- public static double MonthToFortnights(this double x) => Month.toFortnights(x);
- public static double MonthToYears(this double x) => Month.toYears(x);
- public static double MonthToDecades(this double x) => Month.toDecades(x);
- public static double MonthToCenturies(this double x) => Month.toCenturies(x);
- public static double MonthToMillennia(this double x) => Month.toMillennia(x);
- public static double MonthToEons(this double x) => Month.toEons(x);
-}
-
-public static class YearExtensions
-{
- public static double YearToNanoseconds(this double x) => Year.toNanoSeconds(x);
- public static double YearToMicroseconds(this double x) => Year.toMicroSeconds(x);
- public static double YearToMilliseconds(this double x) => Year.toMilliSeconds(x);
- public static double YearToSeconds(this double x) => Year.toSeconds(x);
- public static double YearToMinutes(this double x) => Year.toMinutes(x);
- public static double YearToHours(this double x) => Year.toHours(x);
- public static double YearToDays(this double x) => Year.toDays(x);
- public static double YearToWeeks(this double x) => Year.toWeeks(x);
- public static double YearToFortnights(this double x) => Year.toFortnights(x);
- public static double YearToMonths(this double x) => Year.toMonths(x);
- public static double YearToDecades(this double x) => Year.toDecades(x);
- public static double YearToCenturies(this double x) => Year.toCenturies(x);
- public static double YearToMillennia(this double x) => Year.toMillennia(x);
- public static double YearToEons(this double x) => Year.toEons(x);
-}
-
-public static class DecadeExtensions
-{
- public static double DecadeToNanoseconds(this double x) => Decade.toNanoSeconds(x);
- public static double DecadeToMicroseconds(this double x) => Decade.toMicroSeconds(x);
- public static double DecadeToMilliseconds(this double x) => Decade.toMilliSeconds(x);
- public static double DecadeToSeconds(this double x) => Decade.toSeconds(x);
- public static double DecadeToMinutes(this double x) => Decade.toMinutes(x);
- public static double DecadeToHours(this double x) => Decade.toHours(x);
- public static double DecadeToDays(this double x) => Decade.toDays(x);
- public static double DecadeToWeeks(this double x) => Decade.toWeeks(x);
- public static double DecadeToFortnights(this double x) => Decade.toFortnights(x);
- public static double DecadeToMonths(this double x) => Decade.toMonths(x);
- public static double DecadeToYears(this double x) => Decade.toYears(x);
- public static double DecadeToCenturies(this double x) => Decade.toCenturies(x);
- public static double DecadeToMillennia(this double x) => Decade.toMillennia(x);
- public static double DecadeToEons(this double x) => Decade.toEons(x);
-}
-
-public static class CenturyExtensions
-{
- public static double CenturyToNanoseconds(this double x) => Century.toNanoSeconds(x);
- public static double CenturyToMicroseconds(this double x) => Century.toMicroSeconds(x);
- public static double CenturyToMilliseconds(this double x) => Century.toMilliSeconds(x);
- public static double CenturyToSeconds(this double x) => Century.toSeconds(x);
- public static double CenturyToMinutes(this double x) => Century.toMinutes(x);
- public static double CenturyToHours(this double x) => Century.toHours(x);
- public static double CenturyToDays(this double x) => Century.toDays(x);
- public static double CenturyToWeeks(this double x) => Century.toWeeks(x);
- public static double CenturyToFortnights(this double x) => Century.toFortnights(x);
- public static double CenturyToMonths(this double x) => Century.toMonths(x);
- public static double CenturyToYears(this double x) => Century.toYears(x);
- public static double CenturyToDecades(this double x) => Century.toDecades(x);
- public static double CenturyToMillennia(this double x) => Century.toMillennia(x);
- public static double CenturyToEons(this double x) => Century.toEons(x);
-}
-
-public static class MillenniumExtensions
-{
- public static double MillenniumToNanoseconds(this double x) => Millennium.toNanoSeconds(x);
- public static double MillenniumToMicroseconds(this double x) => Millennium.toMicroSeconds(x);
- public static double MillenniumToMilliseconds(this double x) => Millennium.toMilliSeconds(x);
- public static double MillenniumToSeconds(this double x) => Millennium.toSeconds(x);
- public static double MillenniumToMinutes(this double x) => Millennium.toMinutes(x);
- public static double MillenniumToHours(this double x) => Millennium.toHours(x);
- public static double MillenniumToDays(this double x) => Millennium.toDays(x);
- public static double MillenniumToWeeks(this double x) => Millennium.toWeeks(x);
- public static double MillenniumToFortnights(this double x) => Millennium.toFortnights(x);
- public static double MillenniumToMonths(this double x) => Millennium.toMonths(x);
- public static double MillenniumToYears(this double x) => Millennium.toYears(x);
- public static double MillenniumToDecades(this double x) => Millennium.toDecades(x);
- public static double MillenniumToCenturies(this double x) => Millennium.toCenturies(x);
- public static double MillenniumToEons(this double x) => Millennium.toEons(x);
-}
-
-public static class EonExtensions
-{
- public static double EonToNanoseconds(this double x) => Eon.toNanoSeconds(x);
- public static double EonToMicroseconds(this double x) => Eon.toMicroSeconds(x);
- public static double EonToMilliseconds(this double x) => Eon.toMilliSeconds(x);
- public static double EonToSeconds(this double x) => Eon.toSeconds(x);
- public static double EonToMinutes(this double x) => Eon.toMinutes(x);
- public static double EonToHours(this double x) => Eon.toHours(x);
- public static double EonToDays(this double x) => Eon.toDays(x);
- public static double EonToWeeks(this double x) => Eon.toWeeks(x);
- public static double EonToFortnights(this double x) => Eon.toFortnights(x);
- public static double EonToMonths(this double x) => Eon.toMonths(x);
- public static double EonToYears(this double x) => Eon.toYears(x);
- public static double EonToDecades(this double x) => Eon.toDecades(x);
- public static double EonToCenturies(this double x) => Eon.toCenturies(x);
- public static double EonToMillennia(this double x) => Eon.toMillennia(x);
-}
\ No newline at end of file
diff --git a/Fs.Units.Tests.Benchmark/Program.fs b/Fs.Units.Tests.Benchmark/Program.fs
deleted file mode 100644
index e05e7f3..0000000
--- a/Fs.Units.Tests.Benchmark/Program.fs
+++ /dev/null
@@ -1,57 +0,0 @@
-open BenchmarkDotNet.Attributes
-open BenchmarkDotNet.Running
-open Fs.Units.Area
-open Fs.Units.Force
-open Fs.Units.Force.Units
-open Fs.Units.Length
-open Fs.Units.Area.Units
-open Fs.Units.Mass
-open Fs.Units.Time
-
-let myTestData = [1.;2.;3.;4.;5.]
-let ft2Data =
- myTestData
- |> List.map SquareFoot.create
-
-let newtonData =
- myTestData
- |> List.map Newton.create
-
-[]
-type Benchmarks () =
-
- //ft2 to in2
- let testFunction1 (x: float) =
- x * 144.0 / 1.0
-
- //ft2 to in2
- let testFunction2 (x: float) =
- let a = Foot.create 1 |> Foot.toInches
- x * (a * a) / 1.0
-
- // newton to lbf
- let testFunction3 (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toPoundMass
- let length = Meter.create 1 |> Meter.toFeet
- let time = Second.create 1
- x * mass * length / time / time / 1.0
-
- []
- member _.CompoundUnitOfMeasureConvert1 () =
- ft2Data
- |> List.map testFunction1
-
- []
- member _.CompoundUnitOfMeasureConvert2 () =
- ft2Data
- |> List.map testFunction2
-
- []
- member _.CompoundUnitOfMeasureConvert3 () =
- newtonData
- |> List.map testFunction3
-
-[]
-let main _ =
- let _ = BenchmarkRunner.Run()
- 0
\ No newline at end of file
diff --git a/Fs.Units.Tests.Benchmark/paket.references b/Fs.Units.Tests.Benchmark/paket.references
deleted file mode 100644
index ae048ac..0000000
--- a/Fs.Units.Tests.Benchmark/paket.references
+++ /dev/null
@@ -1,2 +0,0 @@
-BenchmarkDotNet
-FSharp.Core
\ No newline at end of file
diff --git a/Fs.Units.Tests.Unit/CompoundUnitsOfMeasureTests.fs b/Fs.Units.Tests.Unit/CompoundUnitsOfMeasureTests.fs
deleted file mode 100644
index d2a00dc..0000000
--- a/Fs.Units.Tests.Unit/CompoundUnitsOfMeasureTests.fs
+++ /dev/null
@@ -1,718 +0,0 @@
-module CompoundUnitOfMeasureTests
-
-open Expecto
-open Fs.Units.Area
-open Fs.Units.Volume
-open Fs.Units.Inertia
-open Fs.Units.Speed
-open Fs.Units.Force
-open Fs.Units.DataTransferRate
-open Fs.Units.Density
-open Fs.Units.Pressure
-open Fs.Units.Power
-open Fs.Units.Energy
-open Fs.Units.ElectricCharge
-open Fs.Units.ElectromotiveForce
-open Fs.Units.Inductance
-open Helpers
-
-[]
-let areaTests config =
-
- let squareInchConversionTests =
- [
- "From square inch to square feet and back", (fun x -> SquareInch.create x |> SquareInch.toSquareFeet |> SquareFoot.toSquareInches)
- "From square inch to square centimeters and back", (fun x -> SquareInch.create x |> SquareInch.toSquareCentimeters |> SquareCentimeter.toSquareInches)
- "From square inch to square meters and back", (fun x -> SquareInch.create x |> SquareInch.toSquareMeters |> SquareMeter.toSquareInches)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let squareFootConversionTests =
- [
- "From square foot to square inches and back", (fun x -> SquareFoot.create x |> SquareFoot.toSquareInches |> SquareInch.toSquareFeet)
- "From square foot to square centimeters and back", (fun x -> SquareFoot.create x |> SquareFoot.toSquareCentimeters |> SquareCentimeter.toSquareFeet)
- "From square foot to square meters and back", (fun x -> SquareFoot.create x |> SquareFoot.toSquareMeters |> SquareMeter.toSquareFeet)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let squareCentimeterConversionTests =
- [
- "From square centimeter to square inches and back", (fun x -> SquareCentimeter.create x |> SquareCentimeter.toSquareInches |> SquareInch.toSquareCentimeters)
- "From square centimeter to square feet and back", (fun x -> SquareCentimeter.create x |> SquareCentimeter.toSquareFeet |> SquareFoot.toSquareCentimeters)
- "From square centimeter to square meters and back", (fun x -> SquareCentimeter.create x |> SquareCentimeter.toSquareMeters |> SquareMeter.toSquareCentimeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let squareMeterConversionTests =
- [
- "From square meter to square inches and back", (fun x -> SquareMeter.create x |> SquareMeter.toSquareInches |> SquareInch.toSquareMeters)
- "From square meter to square feet and back", (fun x -> SquareMeter.create x |> SquareMeter.toSquareFeet |> SquareFoot.toSquareMeters)
- "From square meter to square centimeters and back", (fun x -> SquareMeter.create x |> SquareMeter.toSquareCentimeters |> SquareCentimeter.toSquareMeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Area tests -> " [
- testList "Square inch conversion tests -> " squareInchConversionTests
- testList "Square foot conversion tests -> " squareFootConversionTests
- testList "Square centimeter conversion tests -> " squareCentimeterConversionTests
- testList "Square meter conversion tests -> " squareMeterConversionTests
- ]
-
-[]
-let volumeTests config =
-
- let cubicInchConversionTests =
- [
- "From cubic inch to cubic feet and back", (fun x -> CubicInch.create x |> CubicInch.toCubicFeet |> CubicFoot.toCubicInches)
- "From cubic inch to cubic centimeters and back", (fun x -> CubicInch.create x |> CubicInch.toCubicCentimeters |> CubicCentimeter.toCubicInches)
- "From cubic inch to cubic meters and back", (fun x -> CubicInch.create x |> CubicInch.toCubicMeters |> CubicMeter.toCubicInches)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let cubicFootConversionTests =
- [
- "From cubic foot to cubic inches and back", (fun x -> CubicFoot.create x |> CubicFoot.toCubicInches |> CubicInch.toCubicFeet)
- "From cubic foot to cubic centimeters and back", (fun x -> CubicFoot.create x |> CubicFoot.toCubicCentimeters |> CubicCentimeter.toCubicFeet)
- "From cubic foot to cubic meters and back", (fun x -> CubicFoot.create x |> CubicFoot.toCubicMeters |> CubicMeter.toCubicFeet)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let cubicCentimeterConversionTests =
- [
- "From cubic centimeter to cubic inches and back", (fun x -> CubicCentimeter.create x |> CubicCentimeter.toCubicInches |> CubicInch.toCubicCentimeters)
- "From cubic centimeter to cubic feet and back", (fun x -> CubicCentimeter.create x |> CubicCentimeter.toCubicFeet |> CubicFoot.toCubicCentimeters)
- "From cubic centimeter to cubic meters and back", (fun x -> CubicCentimeter.create x |> CubicCentimeter.toCubicMeters |> CubicMeter.toCubicCentimeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let cubicMeterConversionTests =
- [
- "From cubic meter to cubic inches and back", (fun x -> CubicMeter.create x |> CubicMeter.toCubicInches |> CubicInch.toCubicMeters)
- "From cubic meter to cubic feet and back", (fun x -> CubicMeter.create x |> CubicMeter.toCubicFeet |> CubicFoot.toCubicMeters)
- "From cubic meter to cubic centimeters and back", (fun x -> CubicMeter.create x |> CubicMeter.toCubicCentimeters |> CubicCentimeter.toCubicMeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Volume tests -> " [
- testList "Cubic inch conversion tests -> " cubicInchConversionTests
- testList "Cubic foot conversion tests -> " cubicFootConversionTests
- testList "Cubic centimeter conversion tests -> " cubicCentimeterConversionTests
- testList "Cubic meter conversion tests -> " cubicMeterConversionTests
- ]
-
-[]
-let inertiaTests config =
-
- let quarticInchConversionTests =
- [
- "From quartic inch to quartic centimeters and back", (fun x -> QuarticInch.create x |> QuarticInch.toQuarticCentimeters |> QuarticCentimeter.toQuarticInches)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let quarticCentimeterConversionTests =
- [
- "From quartic centimeter to quartic inches and back", (fun x -> QuarticCentimeter.create x |> QuarticCentimeter.toQuarticInches |> QuarticInch.toQuarticCentimeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Inertia tests -> " [
- testList "Quartic inch conversion tests -> " quarticInchConversionTests
- testList "Quartic centimeter conversion tests -> " quarticCentimeterConversionTests
- ]
-
-[]
-
-let speedTests config =
-
- let feetPerSecondTests =
- [
- "From feet per second to meters per second and back", (fun x -> FootPerSecond.create x |> FootPerSecond.toMetersPerSecond |> MeterPerSecond.toFeetPerSecond)
- "From feet per second to kilometers per hour and back", (fun x -> FootPerSecond.create x |> FootPerSecond.toKilometersPerHour |> KilometerPerHour.toFeetPerSecond)
- "From feet per second to miles per hour and back", (fun x -> FootPerSecond.create x |> FootPerSecond.toMilesPerHour |> MilePerHour.toFeetPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let metersPerSecondTests =
- [
- "From meter per second to feet per second and back", (fun x -> MeterPerSecond.create x |> MeterPerSecond.toFeetPerSecond |> FootPerSecond.toMetersPerSecond)
- "From meter per second to kilometers per hour and back", (fun x -> MeterPerSecond.create x |> MeterPerSecond.toKilometersPerHour |> KilometerPerHour.toMetersPerSecond)
- "From meter per second to miles per hour and back", (fun x -> MeterPerSecond.create x |> MeterPerSecond.toMilesPerHour |> MilePerHour.toMetersPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilometersPerHourTests =
- [
- "From kilometer per hour to feet per second and back", (fun x -> KilometerPerHour.create x |> KilometerPerHour.toFeetPerSecond |> FootPerSecond.toKilometersPerHour)
- "From kilometer per hour to meters per second and back", (fun x -> KilometerPerHour.create x |> KilometerPerHour.toMetersPerSecond |> MeterPerSecond.toKilometersPerHour)
- "From kilometer per hour to miles per hour and back", (fun x -> KilometerPerHour.create x |> KilometerPerHour.toMilesPerHour |> MilePerHour.toKilometersPerHour)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let milesPerHourTests =
- [
- "From mile per hour to feet per second and back", (fun x -> MilePerHour.create x |> MilePerHour.toFeetPerSecond |> FootPerSecond.toMilesPerHour)
- "From mile per hour to meters per second and back", (fun x -> MilePerHour.create x |> MilePerHour.toMetersPerSecond |> MeterPerSecond.toMilesPerHour)
- "From mile per hour to kilometers per hour and back", (fun x -> MilePerHour.create x |> MilePerHour.toKilometersPerHour |> KilometerPerHour.toMilesPerHour)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Speed tests -> " [
- testList "Feet per second tests -> " feetPerSecondTests
- testList "Meters per second tests -> " metersPerSecondTests
- testList "Kilometers per hour tests -> " kilometersPerHourTests
- testList "Miles per hour tests -> " milesPerHourTests
- ]
-
-[]
-let forceTests config =
-
- let newtonConversionTests =
- [
- "From newton to pound force and back", (fun x -> Newton.create x |> Newton.toPoundForce |> PoundForce.toNewtons)
- "From newton to dynes and back", (fun x -> Newton.create x |> Newton.toDynes |> Dyne.toNewtons)
- "From newton to kips and back", (fun x -> Newton.create x |> Newton.toKips |> Kip.toNewtons)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let poundForceConversionTests =
- [
- "From pound force to newtons and back", (fun x -> PoundForce.create x |> PoundForce.toNewtons |> Newton.toPoundForce)
- "From pound force to dynes and back", (fun x -> PoundForce.create x |> PoundForce.toDynes |> Dyne.toPoundForce)
- "From pound force to kips and back", (fun x -> PoundForce.create x |> PoundForce.toKips |> Kip.toPoundForce)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let dyneConversionTests =
- [
- "From dyne to newtons and back", (fun x -> Dyne.create x |> Dyne.toNewtons |> Newton.toDynes)
- "From dyne to pound force and back", (fun x -> Dyne.create x |> Dyne.toPoundForce |> PoundForce.toDynes)
- "From dyne to kips and back", (fun x -> Dyne.create x |> Dyne.toKips |> Kip.toDynes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kipConversionTests =
- [
- "From kip to newtons and back", (fun x -> Kip.create x |> Kip.toNewtons |> Newton.toKips)
- "From kip to pound force and back", (fun x -> Kip.create x |> Kip.toPoundForce |> PoundForce.toKips)
- "From kip to dynes and back", (fun x -> Kip.create x |> Kip.toDynes |> Dyne.toKips)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Force tests -> " [
- testList "Newton conversion tests -> " newtonConversionTests
- testList "Pound force conversion tests -> " poundForceConversionTests
- testList "Dyne conversion tests -> " dyneConversionTests
- testList "Kip conversion tests -> " kipConversionTests
- ]
-
-[]
-let dataTransferRateTests config =
-
- let baudPerSecondConversionTests =
- [
- "From baud to bits per second", (fun x -> Baud.create x |> Baud.toBitsPerSecond |> BitPerSecond.toBauds)
- "From baud to kilobits per second", (fun x -> Baud.create x |> Baud.toKilobitsPerSecond |> KilobitPerSecond.toBauds)
- "From baud to megabits per second", (fun x -> Baud.create x |> Baud.toMegabitsPerSecond |> MegabitPerSecond.toBauds)
- "From baud to gigabits per second", (fun x -> Baud.create x |> Baud.toGigabitsPerSecond |> GigabitPerSecond.toBauds)
- "From baud to terabits per second", (fun x -> Baud.create x |> Baud.toTerabitsPerSecond |> TerabitPerSecond.toBauds)
- "From baud to petabits per second", (fun x -> Baud.create x |> Baud.toPetabitsPerSecond |> PetabitPerSecond.toBauds)
- "From baud to bytes per second", (fun x -> Baud.create x |> Baud.toBytesPerSecond |> BytePerSecond.toBauds)
- "From baud to kilobytes per second", (fun x -> Baud.create x |> Baud.toKilobytesPerSecond |> KilobytePerSecond.toBauds)
- "From baud to megabytes per second", (fun x -> Baud.create x |> Baud.toMegabytesPerSecond |> MegabytePerSecond.toBauds)
- "From baud to gigabytes per second", (fun x -> Baud.create x |> Baud.toGigabytesPerSecond |> GigabytePerSecond.toBauds)
- "From baud to terabytes per second", (fun x -> Baud.create x |> Baud.toTerabytesPerSecond |> TerabytePerSecond.toBauds)
- "From baud to petabytes per second", (fun x -> Baud.create x |> Baud.toPetabytesPerSecond |> PetabytePerSecond.toBauds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let bitPerSecondConversionTests =
- [
- "From bit per second to baud", (fun x -> BitPerSecond.create x |> BitPerSecond.toBauds |> Baud.toBitsPerSecond)
- "From bit per second to kilobits per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toKilobitsPerSecond |> KilobitPerSecond.toBitsPerSecond)
- "From bit per second to megabits per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toMegabitsPerSecond |> MegabitPerSecond.toBitsPerSecond)
- "From bit per second to gigabits per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toGigabitsPerSecond |> GigabitPerSecond.toBitsPerSecond)
- "From bit per second to terabits per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toTerabitsPerSecond |> TerabitPerSecond.toBitsPerSecond)
- "From bit per second to petabits per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toPetabitsPerSecond |> PetabitPerSecond.toBitsPerSecond)
- "From bit per second to bytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toBytesPerSecond |> BytePerSecond.toBitsPerSecond)
- "From bit per second to kilobytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toBitsPerSecond)
- "From bit per second to megabytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toBitsPerSecond)
- "From bit per second to gigabytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toBitsPerSecond)
- "From bit per second to terabytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toTerabytesPerSecond |> TerabytePerSecond.toBitsPerSecond)
- "From bit per second to petabytes per second", (fun x -> BitPerSecond.create x |> BitPerSecond.toPetabytesPerSecond |> PetabytePerSecond.toBitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilobitPerSecondConversionTests =
- [
- "From kilobit per second to baud", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toBauds |> Baud.toKilobitsPerSecond)
- "From kilobit per second to bits per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toBitsPerSecond |> BitPerSecond.toKilobitsPerSecond)
- "From kilobit per second to megabits per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toMegabitsPerSecond |> MegabitPerSecond.toKilobitsPerSecond)
- "From kilobit per second to gigabits per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toGigabitsPerSecond |> GigabitPerSecond.toKilobitsPerSecond)
- "From kilobit per second to terabits per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toTerabitsPerSecond |> TerabitPerSecond.toKilobitsPerSecond)
- "From kilobit per second to petabits per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toPetabitsPerSecond |> PetabitPerSecond.toKilobitsPerSecond)
- "From kilobit per second to bytes per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toBytesPerSecond |> BytePerSecond.toKilobitsPerSecond)
- "From kilobit per second to kilobytes per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toKilobitsPerSecond)
- "From kilobit per second to megabytes per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toKilobitsPerSecond)
- "From kilobit per second to gigabytes per second", (fun x -> KilobitPerSecond.create x |> KilobitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toKilobitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megabitPerSecondConversionTests =
- [
- "From megabit per second to baud", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toBauds |> Baud.toMegabitsPerSecond)
- "From megabit per second to bits per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toBitsPerSecond |> BitPerSecond.toMegabitsPerSecond)
- "From megabit per second to kilobits per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toKilobitsPerSecond |> KilobitPerSecond.toMegabitsPerSecond)
- "From megabit per second to gigabits per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toGigabitsPerSecond |> GigabitPerSecond.toMegabitsPerSecond)
- "From megabit per second to terabits per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toTerabitsPerSecond |> TerabitPerSecond.toMegabitsPerSecond)
- "From megabit per second to petabits per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toPetabitsPerSecond |> PetabitPerSecond.toMegabitsPerSecond)
- "From megabit per second to bytes per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toBytesPerSecond |> BytePerSecond.toMegabitsPerSecond)
- "From megabit per second to kilobytes per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toMegabitsPerSecond)
- "From megabit per second to megabytes per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toMegabitsPerSecond)
- "From megabit per second to gigabytes per second", (fun x -> MegabitPerSecond.create x |> MegabitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toMegabitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gigabitPerSecondConversionTests =
- [
- "From gigabit per second to baud", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toBauds |> Baud.toGigabitsPerSecond)
- "From gigabit per second to bits per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toBitsPerSecond |> BitPerSecond.toGigabitsPerSecond)
- "From gigabit per second to kilobits per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toKilobitsPerSecond |> KilobitPerSecond.toGigabitsPerSecond)
- "From gigabit per second to megabits per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toMegabitsPerSecond |> MegabitPerSecond.toGigabitsPerSecond)
- "From gigabit per second to terabits per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toTerabitsPerSecond |> TerabitPerSecond.toGigabitsPerSecond)
- "From gigabit per second to petabits per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toPetabitsPerSecond |> PetabitPerSecond.toGigabitsPerSecond)
- "From gigabit per second to bytes per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toBytesPerSecond |> BytePerSecond.toGigabitsPerSecond)
- "From gigabit per second to kilobytes per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toGigabitsPerSecond)
- "From gigabit per second to megabytes per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toGigabitsPerSecond)
- "From gigabit per second to gigabytes per second", (fun x -> GigabitPerSecond.create x |> GigabitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toGigabitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let terabitPerSecondConversionTests =
- [
- "From terabit per second to baud", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toBauds |> Baud.toTerabitsPerSecond)
- "From terabit per second to bits per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toBitsPerSecond |> BitPerSecond.toTerabitsPerSecond)
- "From terabit per second to kilobits per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toKilobitsPerSecond |> KilobitPerSecond.toTerabitsPerSecond)
- "From terabit per second to megabits per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toMegabitsPerSecond |> MegabitPerSecond.toTerabitsPerSecond)
- "From terabit per second to gigabits per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toGigabitsPerSecond |> GigabitPerSecond.toTerabitsPerSecond)
- "From terabit per second to petabits per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toPetabitsPerSecond |> PetabitPerSecond.toTerabitsPerSecond)
- "From terabit per second to bytes per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toBytesPerSecond |> BytePerSecond.toTerabitsPerSecond)
- "From terabit per second to kilobytes per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toTerabitsPerSecond)
- "From terabit per second to megabytes per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toTerabitsPerSecond)
- "From terabit per second to gigabytes per second", (fun x -> TerabitPerSecond.create x |> TerabitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toTerabitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let petabitPerSecondConversionTests =
- [
- "From petabit per second to baud", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toBauds |> Baud.toPetabitsPerSecond)
- "From petabit per second to bits per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toBitsPerSecond |> BitPerSecond.toPetabitsPerSecond)
- "From petabit per second to kilobits per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toKilobitsPerSecond |> KilobitPerSecond.toPetabitsPerSecond)
- "From petabit per second to megabits per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toMegabitsPerSecond |> MegabitPerSecond.toPetabitsPerSecond)
- "From petabit per second to gigabits per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toGigabitsPerSecond |> GigabitPerSecond.toPetabitsPerSecond)
- "From petabit per second to terabits per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toTerabitsPerSecond |> TerabitPerSecond.toPetabitsPerSecond)
- "From petabit per second to bytes per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toBytesPerSecond |> BytePerSecond.toPetabitsPerSecond)
- "From petabit per second to kilobytes per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toKilobytesPerSecond |> KilobytePerSecond.toPetabitsPerSecond)
- "From petabit per second to megabytes per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toMegabytesPerSecond |> MegabytePerSecond.toPetabitsPerSecond)
- "From petabit per second to gigabytes per second", (fun x -> PetabitPerSecond.create x |> PetabitPerSecond.toGigabytesPerSecond |> GigabytePerSecond.toPetabitsPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let bytePerSecondConversionTests =
- [
- "From byte per second to baud", (fun x -> BytePerSecond.create x |> BytePerSecond.toBauds |> Baud.toBytesPerSecond)
- "From byte per second to bits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toBitsPerSecond |> BitPerSecond.toBytesPerSecond)
- "From byte per second to kilobits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toBytesPerSecond)
- "From byte per second to megabits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toBytesPerSecond)
- "From byte per second to gigabits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toBytesPerSecond)
- "From byte per second to terabits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toBytesPerSecond)
- "From byte per second to petabits per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toBytesPerSecond)
- "From byte per second to kilobytes per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toKilobytesPerSecond |> KilobytePerSecond.toBytesPerSecond)
- "From byte per second to megabytes per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toMegabytesPerSecond |> MegabytePerSecond.toBytesPerSecond)
- "From byte per second to gigabytes per second", (fun x -> BytePerSecond.create x |> BytePerSecond.toGigabytesPerSecond |> GigabytePerSecond.toBytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilobytePerSecondConversionTests =
- [
- "From kilobyte per second to baud", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toBauds |> Baud.toKilobytesPerSecond)
- "From kilobyte per second to bits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toBitsPerSecond |> BitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to kilobits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to megabits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to gigabits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to terabits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to petabits per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toKilobytesPerSecond)
- "From kilobyte per second to bytes per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toBytesPerSecond |> BytePerSecond.toKilobytesPerSecond)
- "From kilobyte per second to megabytes per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toMegabytesPerSecond |> MegabytePerSecond.toKilobytesPerSecond)
- "From kilobyte per second to gigabytes per second", (fun x -> KilobytePerSecond.create x |> KilobytePerSecond.toGigabytesPerSecond |> GigabytePerSecond.toKilobytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megabytePerSecondConversionTests =
- [
- "From megabyte per second to baud", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toBauds |> Baud.toMegabytesPerSecond)
- "From megabyte per second to bits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toBitsPerSecond |> BitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to kilobits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to megabits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to gigabits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to terabits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to petabits per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toMegabytesPerSecond)
- "From megabyte per second to bytes per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toBytesPerSecond |> BytePerSecond.toMegabytesPerSecond)
- "From megabyte per second to kilobytes per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toKilobytesPerSecond |> KilobytePerSecond.toMegabytesPerSecond)
- "From megabyte per second to gigabytes per second", (fun x -> MegabytePerSecond.create x |> MegabytePerSecond.toGigabytesPerSecond |> GigabytePerSecond.toMegabytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gigabytePerSecondConversionTests =
- [
- "From gigabyte per second to baud", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toBauds |> Baud.toGigabytesPerSecond)
- "From gigabyte per second to bits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toBitsPerSecond |> BitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to kilobits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to megabits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to gigabits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to terabits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to petabits per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toGigabytesPerSecond)
- "From gigabyte per second to bytes per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toBytesPerSecond |> BytePerSecond.toGigabytesPerSecond)
- "From gigabyte per second to kilobytes per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toKilobytesPerSecond |> KilobytePerSecond.toGigabytesPerSecond)
- "From gigabyte per second to megabytes per second", (fun x -> GigabytePerSecond.create x |> GigabytePerSecond.toMegabytesPerSecond |> MegabytePerSecond.toGigabytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let terabytePerSecondConversionTests =
- [
- "From terabyte per second to baud", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toBauds |> Baud.toTerabytesPerSecond)
- "From terabyte per second to bits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toBitsPerSecond |> BitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to kilobits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to megabits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to gigabits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to terabits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to petabits per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toTerabytesPerSecond)
- "From terabyte per second to bytes per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toBytesPerSecond |> BytePerSecond.toTerabytesPerSecond)
- "From terabyte per second to kilobytes per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toKilobytesPerSecond |> KilobytePerSecond.toTerabytesPerSecond)
- "From terabyte per second to megabytes per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toMegabytesPerSecond |> MegabytePerSecond.toTerabytesPerSecond)
- "From terabyte per second to gigabytes per second", (fun x -> TerabytePerSecond.create x |> TerabytePerSecond.toGigabytesPerSecond |> GigabytePerSecond.toTerabytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let petabytePerSecondConversionTests =
- [
- "From petabyte per second to baud", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toBauds |> Baud.toPetabytesPerSecond)
- "From petabyte per second to bits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toBitsPerSecond |> BitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to kilobits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toKilobitsPerSecond |> KilobitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to megabits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toMegabitsPerSecond |> MegabitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to gigabits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toGigabitsPerSecond |> GigabitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to terabits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toTerabitsPerSecond |> TerabitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to petabits per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toPetabitsPerSecond |> PetabitPerSecond.toPetabytesPerSecond)
- "From petabyte per second to bytes per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toBytesPerSecond |> BytePerSecond.toPetabytesPerSecond)
- "From petabyte per second to kilobytes per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toKilobytesPerSecond |> KilobytePerSecond.toPetabytesPerSecond)
- "From petabyte per second to megabytes per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toMegabytesPerSecond |> MegabytePerSecond.toPetabytesPerSecond)
- "From petabyte per second to gigabytes per second", (fun x -> PetabytePerSecond.create x |> PetabytePerSecond.toGigabytesPerSecond |> GigabytePerSecond.toPetabytesPerSecond)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Data transfer rate tests -> " [
- testList "Baud per second conversion tests -> " baudPerSecondConversionTests
- testList "Bit per second conversion tests -> " bitPerSecondConversionTests
- testList "Kilobit per second conversion tests -> " kilobitPerSecondConversionTests
- testList "Megabit per second conversion tests -> " megabitPerSecondConversionTests
- testList "Gigabit per second conversion tests -> " gigabitPerSecondConversionTests
- testList "Terabit per second conversion tests -> " terabitPerSecondConversionTests
- testList "Petabit per second conversion tests -> " petabitPerSecondConversionTests
- testList "Byte per second conversion tests -> " bytePerSecondConversionTests
- testList "Kilobyte per second conversion tests -> " kilobytePerSecondConversionTests
- testList "Megabyte per second conversion tests -> " megabytePerSecondConversionTests
- testList "Gigabyte per second conversion tests -> " gigabytePerSecondConversionTests
- testList "Terabyte per second conversion tests -> " terabytePerSecondConversionTests
- testList "Petabyte per second conversion tests -> " petabytePerSecondConversionTests
- ]
-
-[]
-let densityTests config =
-
- let kilogramPerCubicMeterConversionTests =
- [
- "From kilogram per cubic meter to grams per cubic centimeter", (fun x -> KilogramPerCubicMeter.create x |> KilogramPerCubicMeter.toGramsPerCubicCentimeter |> GramPerCubicCentimeter.toKilogramsPerCubicMeter)
- "From kilogram per cubic meter to pound mass per cubic foot", (fun x -> KilogramPerCubicMeter.create x |> KilogramPerCubicMeter.toPoundMassPerCubicFoot |> PoundMassPerCubicFoot.toKilogramsPerCubicMeter)
- "From kilogram per cubic meter to pound mass per cubic inch", (fun x -> KilogramPerCubicMeter.create x |> KilogramPerCubicMeter.toPoundMassPerCubicInch |> PoundMassPerCubicInch.toKilogramsPerCubicMeter)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gramPerCubicCentimeterConversionTests =
- [
- "From gram per cubic centimeter to kilogram per cubic meter", (fun x -> GramPerCubicCentimeter.create x |> GramPerCubicCentimeter.toKilogramsPerCubicMeter |> KilogramPerCubicMeter.toGramsPerCubicCentimeter)
- "From gram per cubic centimeter to pound mass per cubic foot", (fun x -> GramPerCubicCentimeter.create x |> GramPerCubicCentimeter.toPoundMassPerCubicFoot |> PoundMassPerCubicFoot.toGramsPerCubicCentimeter)
- "From gram per cubic centimeter to pound mass per cubic inch", (fun x -> GramPerCubicCentimeter.create x |> GramPerCubicCentimeter.toPoundMassPerCubicInch |> PoundMassPerCubicInch.toGramsPerCubicCentimeter)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let poundMassPerCubicFootConversionTests =
- [
- "From pound mass per cubic foot to kilogram per cubic meter", (fun x -> PoundMassPerCubicFoot.create x |> PoundMassPerCubicFoot.toKilogramsPerCubicMeter |> KilogramPerCubicMeter.toPoundMassPerCubicFoot)
- "From pound mass per cubic foot to grams per cubic centimeter", (fun x -> PoundMassPerCubicFoot.create x |> PoundMassPerCubicFoot.toGramsPerCubicCentimeter |> GramPerCubicCentimeter.toPoundMassPerCubicFoot)
- "From pound mass per cubic foot to pound mass per cubic inch", (fun x -> PoundMassPerCubicFoot.create x |> PoundMassPerCubicFoot.toPoundMassPerCubicInch |> PoundMassPerCubicInch.toPoundMassPerCubicFoot)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let poundMassPerCubicInchConversionTests =
- [
- "From pound mass per cubic inch to kilogram per cubic meter", (fun x -> PoundMassPerCubicInch.create x |> PoundMassPerCubicInch.toKilogramsPerCubicMeter |> KilogramPerCubicMeter.toPoundMassPerCubicInch)
- "From pound mass per cubic inch to grams per cubic centimeter", (fun x -> PoundMassPerCubicInch.create x |> PoundMassPerCubicInch.toGramsPerCubicCentimeter |> GramPerCubicCentimeter.toPoundMassPerCubicInch)
- "From pound mass per cubic inch to pound mass per cubic foot", (fun x -> PoundMassPerCubicInch.create x |> PoundMassPerCubicInch.toPoundMassPerCubicFoot |> PoundMassPerCubicFoot.toPoundMassPerCubicInch)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Density tests -> " [
- testList "Kilogram per cubic meter conversion tests -> " kilogramPerCubicMeterConversionTests
- testList "Gram per cubic centimeter conversion tests -> " gramPerCubicCentimeterConversionTests
- testList "Pound mass per cubic foot conversion tests -> " poundMassPerCubicFootConversionTests
- testList "Pound mass per cubic inch conversion tests -> " poundMassPerCubicInchConversionTests
- ]
-
-[]
-let pressureTests config =
-
- let pascalConversionTests =
- [
- "From pascal to pounds per square inch", (fun x -> Pascal.create x |> Pascal.toPoundsPerSquareInch |> PoundPerSquareInch.toPascals)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let poundPerSquareInchConversionTests =
- [
- "From pounds per square inch to pascal", (fun x -> PoundPerSquareInch.create x |> PoundPerSquareInch.toPascals |> Pascal.toPoundsPerSquareInch)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Pressure tests -> " [
- testList "Pascal conversion tests -> " pascalConversionTests
- testList "Pound per square inch conversion tests -> " poundPerSquareInchConversionTests
- ]
-
-[]
-let powerTests config =
-
- let wattConversionTests =
- [
- "From watt to kilowatt", (fun x -> Watt.create x |> Watt.toKilowatts |> Kilowatt.toWatts)
- "From watt to horsepower", (fun x -> Watt.create x |> Watt.toHorsepower |> Horsepower.toWatts)
- "From watt to tons of refrigeration", (fun x -> Watt.create x |> Watt.toTonsOfRefrigeration |> TonOfRefrigeration.toWatts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilowattConversionTests =
- [
- "From kilowatt to watt", (fun x -> Kilowatt.create x |> Kilowatt.toWatts |> Watt.toKilowatts)
- "From kilowatt to horsepower", (fun x -> Kilowatt.create x |> Kilowatt.toHorsepower |> Horsepower.toKilowatts)
- "From kilowatt to tons of refrigeration", (fun x -> Kilowatt.create x |> Kilowatt.toTonsOfRefrigeration |> TonOfRefrigeration.toKilowatts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let horsepowerConversionTests =
- [
- "From horsepower to watt", (fun x -> Horsepower.create x |> Horsepower.toWatts |> Watt.toHorsepower)
- "From horsepower to kiloWatt", (fun x -> Horsepower.create x |> Horsepower.toKilowatts |> Kilowatt.toHorsepower)
- "From horsepower to tons of refrigeration", (fun x -> Horsepower.create x |> Horsepower.toTonsOfRefrigeration |> TonOfRefrigeration.toHorsepower)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let tonOfRefrigerationConversionTests =
- [
- "From tons of refrigeration to watt", (fun x -> TonOfRefrigeration.create x |> TonOfRefrigeration.toWatts |> Watt.toTonsOfRefrigeration)
- "From tons of refrigeration to kilowatt", (fun x -> TonOfRefrigeration.create x |> TonOfRefrigeration.toKilowatts |> Kilowatt.toTonsOfRefrigeration)
- "From tons of refrigeration to horsepower", (fun x -> TonOfRefrigeration.create x |> TonOfRefrigeration.toHorsepower |> Horsepower.toTonsOfRefrigeration)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Power tests -> " [
- testList "Watt conversion tests -> " wattConversionTests
- testList "Kilowatt conversion tests -> " kilowattConversionTests
- testList "Horsepower conversion tests -> " horsepowerConversionTests
- testList "Ton of refrigeration conversion tests -> " tonOfRefrigerationConversionTests
- ]
-
-[]
-let energyTests config =
-
- let jouleConversionTests =
- [
- "From joule to kilojoule and back", (fun x -> Joule.create x |> Joule.toKilojoules |> Kilojoule.toJoules)
- "From joule to british thermal units and back", (fun x -> Joule.create x |> Joule.toBritishThermalUnits |> BritishThermalUnit.toJoules)
- "From joule to calories and back", (fun x -> Joule.create x |> Joule.toCalories |> Calorie.toJoules)
- "From joule to quads and back", (fun x -> Joule.create x |> Joule.toQuads |> Quad.toJoules)
- "From joule to Qs and back", (fun x -> Joule.create x |> Joule.toQs |> Q.toJoules)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilojouleConversionTests =
- [
- "From kilojoule to joule and back", (fun x -> Kilojoule.create x |> Kilojoule.toJoules |> Joule.toKilojoules)
- "From kilojoule to british thermal units and back", (fun x -> Kilojoule.create x |> Kilojoule.toBritishThermalUnits |> BritishThermalUnit.toKilojoules)
- "From kilojoule to calories and back", (fun x -> Kilojoule.create x |> Kilojoule.toCalories |> Calorie.toKilojoules)
- "From kilojoule to quads and back", (fun x -> Kilojoule.create x |> Kilojoule.toQuads |> Quad.toKilojoules)
- "From kilojoule to Qs and back", (fun x -> Kilojoule.create x |> Kilojoule.toQs |> Q.toKilojoules)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let britishThermalUnitConversionTests =
- [
- "From british thermal unit to joule and back", (fun x -> BritishThermalUnit.create x |> BritishThermalUnit.toJoules |> Joule.toBritishThermalUnits)
- "From british thermal unit to kilojoule and back", (fun x -> BritishThermalUnit.create x |> BritishThermalUnit.toKilojoules |> Kilojoule.toBritishThermalUnits)
- "From british thermal unit to calories and back", (fun x -> BritishThermalUnit.create x |> BritishThermalUnit.toCalories |> Calorie.toBritishThermalUnits)
- "From british thermal unit to quads and back", (fun x -> BritishThermalUnit.create x |> BritishThermalUnit.toQuads |> Quad.toBritishThermalUnits)
- "From british thermal unit to Qs and back", (fun x -> BritishThermalUnit.create x |> BritishThermalUnit.toQs |> Q.toBritishThermalUnits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let calorieConversionTests =
- [
- "From calorie to joule and back", (fun x -> Calorie.create x |> Calorie.toJoules |> Joule.toCalories)
- "From calorie to kilojoule and back", (fun x -> Calorie.create x |> Calorie.toKilojoules |> Kilojoule.toCalories)
- "From calorie to british thermal units and back", (fun x -> Calorie.create x |> Calorie.toBritishThermalUnits |> BritishThermalUnit.toCalories)
- "From calorie to quads and back", (fun x -> Calorie.create x |> Calorie.toQuads |> Quad.toCalories)
- "From calorie to Qs and back", (fun x -> Calorie.create x |> Calorie.toQs |> Q.toCalories)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let quadConversionTests =
- [
- "From quad to joule and back", (fun x -> Quad.create x |> Quad.toJoules |> Joule.toQuads)
- "From quad to kilojoule and back", (fun x -> Quad.create x |> Quad.toKilojoules |> Kilojoule.toQuads)
- "From quad to british thermal units and back", (fun x -> Quad.create x |> Quad.toBritishThermalUnits |> BritishThermalUnit.toQuads)
- "From quad to calories and back", (fun x -> Quad.create x |> Quad.toCalories |> Calorie.toQuads)
- "From quad to Qs and back", (fun x -> Quad.create x |> Quad.toQs |> Q.toQuads)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let qConversionTests =
- [
- "From Q to joule and back", (fun x -> Q.create x |> Q.toJoules |> Joule.toQs)
- "From Q to kilojoule and back", (fun x -> Q.create x |> Q.toKilojoules |> Kilojoule.toQs)
- "From Q to british thermal units and back", (fun x -> Q.create x |> Q.toBritishThermalUnits |> BritishThermalUnit.toQs)
- "From Q to calories and back", (fun x -> Q.create x |> Q.toCalories |> Calorie.toQs)
- "From Q to quads and back", (fun x -> Q.create x |> Q.toQuads |> Quad.toQs)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Energy tests-> " [
- testList "Joule conversion tests-> " jouleConversionTests
- testList "Kilojoule conversion tests -> " kilojouleConversionTests
- testList "British thermal unit conversion tests -> " britishThermalUnitConversionTests
- testList "Calorie conversion tests -> " calorieConversionTests
- testList "Quad conversion tests -> " quadConversionTests
- testList "Q conversion tests -> " qConversionTests
- ]
-
-[]
-let electricChargeTests config =
-
- let coloumbConversionTests =
- [
- "From coloumb to ampere hours and back", (fun x -> Coloumb.create x |> Coloumb.toAmpereHours |> AmpereHour.toColoumbs)
- "From coloumb to ampere seconds and back", (fun x -> Coloumb.create x |> Coloumb.toAmpereSeconds |> AmpereSecond.toColoumbs)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let ampereHourConversionTests =
- [
- "From ampere hour to coloumbs and back", (fun x -> AmpereHour.create x |> AmpereHour.toColoumbs |> Coloumb.toAmpereHours)
- "From ampere hour to ampere seconds and back", (fun x -> AmpereHour.create x |> AmpereHour.toAmpereSeconds |> AmpereSecond.toAmpereHours)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let ampereSecondConversionTests =
- [
- "From ampere second to coloumbs and back", (fun x -> AmpereSecond.create x |> AmpereSecond.toColoumbs |> Coloumb.toAmpereSeconds)
- "From ampere second to ampere hours and back", (fun x -> AmpereSecond.create x |> AmpereSecond.toAmpereHours |> AmpereHour.toAmpereSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Electric charge tests-> " [
- testList "Coloumb conversion tests-> " coloumbConversionTests
- testList "Ampere hour conversion tests -> " ampereHourConversionTests
- testList "Ampere second conversion tests -> " ampereSecondConversionTests
- ]
-
-[]
-let electromotiveForceTests config =
-
- let microvoltConversionTests =
- [
- "From microvolt to millivolts and back", (fun x -> Microvolt.create x |> Microvolt.toMillivolts |> Millivolt.toMicrovolts)
- "From microvolt to volts and back", (fun x -> Microvolt.create x |> Microvolt.toVolts |> Volt.toMicrovolts)
- "From microvolt to kilovolts and back", (fun x -> Microvolt.create x |> Microvolt.toKilovolts |> Kilovolt.toMicrovolts)
- "From microvolt to megavolts and back", (fun x -> Microvolt.create x |> Microvolt.toMegavolts |> Megavolt.toMicrovolts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let millivoltConversionTests =
- [
- "From millivolt to microvolts and back", (fun x -> Millivolt.create x |> Millivolt.toMicrovolts |> Microvolt.toMillivolts)
- "From millivolt to volts and back", (fun x -> Millivolt.create x |> Millivolt.toVolts |> Volt.toMillivolts)
- "From millivolt to kilovolts and back", (fun x -> Millivolt.create x |> Millivolt.toKilovolts |> Kilovolt.toMillivolts)
- "From millivolt to megavolts and back", (fun x -> Millivolt.create x |> Millivolt.toMegavolts |> Megavolt.toMillivolts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let voltConversionTests =
- [
- "From volt to microvolts and back", (fun x -> Volt.create x |> Volt.toMicrovolts |> Microvolt.toVolts)
- "From volt to millivolts and back", (fun x -> Volt.create x |> Volt.toMillivolts |> Millivolt.toVolts)
- "From volt to kilovolts and back", (fun x -> Volt.create x |> Volt.toKilovolts |> Kilovolt.toVolts)
- "From volt to megavolts and back", (fun x -> Volt.create x |> Volt.toMegavolts |> Megavolt.toVolts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilovoltConversionTests =
- [
- "From kilovolt to microvolts and back", (fun x -> Kilovolt.create x |> Kilovolt.toMicrovolts |> Microvolt.toKilovolts)
- "From kilovolt to millivolts and back", (fun x -> Kilovolt.create x |> Kilovolt.toMillivolts |> Millivolt.toKilovolts)
- "From kilovolt to volts and back", (fun x -> Kilovolt.create x |> Kilovolt.toVolts |> Volt.toKilovolts)
- "From kilovolt to megavolts and back", (fun x -> Kilovolt.create x |> Kilovolt.toMegavolts |> Megavolt.toKilovolts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megavoltConversionTests =
- [
- "From megavolt to microvolts and back", (fun x -> Megavolt.create x |> Megavolt.toMicrovolts |> Microvolt.toMegavolts)
- "From megavolt to millivolts and back", (fun x -> Megavolt.create x |> Megavolt.toMillivolts |> Millivolt.toMegavolts)
- "From megavolt to volts and back", (fun x -> Megavolt.create x |> Megavolt.toVolts |> Volt.toMegavolts)
- "From megavolt to kilovolts and back", (fun x -> Megavolt.create x |> Megavolt.toKilovolts |> Kilovolt.toMegavolts)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Electromotive force tests-> " [
- testList "Microvolt conversion tests-> " microvoltConversionTests
- testList "Millivolt conversion tests -> " millivoltConversionTests
- testList "Volt conversion tests -> " voltConversionTests
- testList "Kilovolt conversion tests -> " kilovoltConversionTests
- testList "Megavolt conversion tests -> " megavoltConversionTests
- ]
-
-[]
-let inductanceTests config =
-
- let microHenryConversionTest =
- [
- "From micro Henry to milli Henry and back", (fun x -> MicroHenry.create x |> MicroHenry.toMilliHenrys |> MilliHenry.toMicroHenrys)
- "From micro Henry to Henry and back", (fun x -> MicroHenry.create x |> MicroHenry.toHenrys |> Henry.toMicroHenrys)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let milliHenryConversionTest =
- [
- "From milli Henry to micro Henry and back", (fun x -> MilliHenry.create x |> MilliHenry.toMicroHenrys |> MicroHenry.toMilliHenrys)
- "From milli Henry to Henry and back", (fun x -> MilliHenry.create x |> MilliHenry.toHenrys |> Henry.toMilliHenrys)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let henryConversionTest =
- [
- "From Henry to micro Henry and back", (fun x -> Henry.create x |> Henry.toMicroHenrys |> MicroHenry.toHenrys)
- "From Henry to milli Henry and back", (fun x -> Henry.create x |> Henry.toMilliHenrys |> MilliHenry.toHenrys)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Inductance tests-> " [
- testList "MicroHenry conversion tests-> " microHenryConversionTest
- testList "MilliHenry conversion tests -> " milliHenryConversionTest
- testList "Henry conversion tests -> " henryConversionTest
- ]
\ No newline at end of file
diff --git a/Fs.Units.Tests.Unit/Helpers.fs b/Fs.Units.Tests.Unit/Helpers.fs
deleted file mode 100644
index ee0da83..0000000
--- a/Fs.Units.Tests.Unit/Helpers.fs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Helpers
-
-open FsCheck
-open Expecto
-
-let testRange f value =
- let inRange v = (v > -1E+10) && (v < 1E+10)
- inRange value ==> lazy (f value)
-
-let removeUnits<[]'u> value = float value
-
-let unwrapFloat a =
- match a with
- | NormalFloat v -> v
-
-let testNormalFloat x f =
- let y = x |> unwrapFloat
- f y
-
-let testConversionRoundingError config accuracy testName (f: float -> float<'Measure>) =
- testPropertyWithConfig config testName <| fun (input: NormalFloat) ->
- testNormalFloat input <| fun x ->
- let convert = f x
- Expect.floatClose accuracy (float convert) x "There is some rounding error"
\ No newline at end of file
diff --git a/Fs.Units.Tests.Unit/Main.fs b/Fs.Units.Tests.Unit/Main.fs
deleted file mode 100644
index d124351..0000000
--- a/Fs.Units.Tests.Unit/Main.fs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Fs.Units.Tests
-
-open Expecto
-
-[]
-let main _ =
- let config = FsCheckConfig.defaultConfig
-
- [
- SimpleUnitOfMeasureTests.lengthTests
- SimpleUnitOfMeasureTests.timeTests
- SimpleUnitOfMeasureTests.massTests
- SimpleUnitOfMeasureTests.temperatureTests
- SimpleUnitOfMeasureTests.angleTests
- SimpleUnitOfMeasureTests.dataStorageTests
- SimpleUnitOfMeasureTests.fuelEconomyTests
- SimpleUnitOfMeasureTests.frequencyTests
- SimpleUnitOfMeasureTests.illuminanceTests
- SimpleUnitOfMeasureTests.currentTests
- CompoundUnitOfMeasureTests.areaTests
- CompoundUnitOfMeasureTests.volumeTests
- CompoundUnitOfMeasureTests.inertiaTests
- CompoundUnitOfMeasureTests.speedTests
- CompoundUnitOfMeasureTests.forceTests
- CompoundUnitOfMeasureTests.dataTransferRateTests
- CompoundUnitOfMeasureTests.densityTests
- CompoundUnitOfMeasureTests.pressureTests
- CompoundUnitOfMeasureTests.powerTests
- CompoundUnitOfMeasureTests.energyTests
- CompoundUnitOfMeasureTests.electricChargeTests
- CompoundUnitOfMeasureTests.electromotiveForceTests
- CompoundUnitOfMeasureTests.inductanceTests
- ]
- |> List.map (fun x -> x config)
- |> testList "Fs.Unit"
- |> runTestsWithCLIArgs [] [||]
\ No newline at end of file
diff --git a/Fs.Units.Tests.Unit/SimpleUnitsOfMeasureTests.fs b/Fs.Units.Tests.Unit/SimpleUnitsOfMeasureTests.fs
deleted file mode 100644
index 5613cda..0000000
--- a/Fs.Units.Tests.Unit/SimpleUnitsOfMeasureTests.fs
+++ /dev/null
@@ -1,1104 +0,0 @@
-module SimpleUnitOfMeasureTests
-
-open Expecto
-open Fs.Units.Length
-open Fs.Units.Time
-open Fs.Units.Mass
-open Fs.Units.Temperature
-open Fs.Units.Angle
-open Fs.Units.DataStorage
-open Fs.Units.FuelEconomy
-open Fs.Units.Frequency
-open Fs.Units.Illuminance
-open Fs.Units.Current
-open Helpers
-
-[]
-let lengthTests config =
- let inchConversionTests =
- [
- "From inch to feet and back", (fun x -> Inch.create x |> Inch.toFeet |> Foot.toInches)
- "From inch to yard and back", (fun x -> Inch.create x |> Inch.toYards |> Yard.toInches)
- "From inch to mile and back", (fun x -> Inch.create x |> Inch.toMiles |> Mile.toInches)
- "From inch to millimeter and back", (fun x -> Inch.create x |> Inch.toMillimeters |> Millimeter.toInches)
- "From inch to centimeter and back", (fun x -> Inch.create x |> Inch.toCentimeters |> Centimeter.toInches)
- "From inch to meter and back", (fun x -> Inch.create x |> Inch.toMeters |> Meter.toInches)
- "From inch to kilometer and back", (fun x -> Inch.create x |> Inch.toKilometers |> Kilometer.toInches)
- "From inch to nautical mile and back", (fun x -> Inch.create x |> Inch.toNauticalMiles |> NauticalMile.toInches)
- "From inch to chain and back", (fun x -> Inch.create x |> Inch.toChains |> Chain.toInches)
- "From inch to furlong and back", (fun x -> Inch.create x |> Inch.toFurlongs |> Furlong.toInches)
- "From inch to league and back", (fun x -> Inch.create x |> Inch.toLeagues |> League.toInches)
- "From inch to hand and back", (fun x -> Inch.create x |> Inch.toHands |> Hand.toInches)
- "From inch to rod and back", (fun x -> Inch.create x |> Inch.toRods |> Rod.toInches)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let footConversionTests =
- [
- "From foot to inches and back", (fun x -> Foot.create x |> Foot.toInches |> Inch.toFeet)
- "From foot to yard and back", (fun x -> Foot.create x |> Foot.toYards |> Yard.toFeet)
- "From foot to mile and back", (fun x -> Foot.create x |> Foot.toMiles |> Mile.toFeet)
- "From foot to millimeter and back", (fun x -> Foot.create x |> Foot.toMillimeters |> Millimeter.toFeet)
- "From foot to centimeter and back", (fun x -> Foot.create x |> Foot.toCentimeters |> Centimeter.toFeet)
- "From foot to meter and back", (fun x -> Foot.create x |> Foot.toMeters |> Meter.toFeet)
- "From foot to kilometer and back", (fun x -> Foot.create x |> Foot.toKilometers |> Kilometer.toFeet)
- "From foot to nautical mile and back", (fun x -> Foot.create x |> Foot.toNauticalMiles |> NauticalMile.toFeet)
- "From foot to chain and back", (fun x -> Foot.create x |> Foot.toChains |> Chain.toFeet)
- "From foot to furlong and back", (fun x -> Foot.create x |> Foot.toFurlongs |> Furlong.toFeet)
- "From foot to league and back", (fun x -> Foot.create x |> Foot.toLeagues |> League.toFeet)
- "From foot to hand and back", (fun x -> Foot.create x |> Foot.toHands |> Hand.toFeet)
- "From foot to rod and back", (fun x -> Foot.create x |> Foot.toRods |> Rod.toFeet)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let yardConversionTests =
- [
- "From yard to inches and back", (fun x -> Yard.create x |> Yard.toInches |> Inch.toYards)
- "From yard to foot and back", (fun x -> Yard.create x |> Yard.toFeet |> Foot.toYards)
- "From yard to mile and back", (fun x -> Yard.create x |> Yard.toMiles |> Mile.toYards)
- "From yard to millimeter and back", (fun x -> Yard.create x |> Yard.toMillimeters |> Millimeter.toYards)
- "From yard to centimeter and back", (fun x -> Yard.create x |> Yard.toCentimeters |> Centimeter.toYards)
- "From yard to meter and back", (fun x -> Yard.create x |> Yard.toMeters |> Meter.toYards)
- "From yard to kilometer and back", (fun x -> Yard.create x |> Yard.toKilometers |> Kilometer.toYards)
- "From yard to nautical mile and back", (fun x -> Yard.create x |> Yard.toNauticalMiles |> NauticalMile.toYards)
- "From yard to chain and back", (fun x -> Yard.create x |> Yard.toChains |> Chain.toYards)
- "From yard to furlong and back", (fun x -> Yard.create x |> Yard.toFurlongs |> Furlong.toYards)
- "From yard to league and back", (fun x -> Yard.create x |> Yard.toLeagues |> League.toYards)
- "From yard to hand and back", (fun x -> Yard.create x |> Yard.toHands |> Hand.toYards)
- "From yard to rod and back", (fun x -> Yard.create x |> Yard.toRods |> Rod.toYards)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let mileConversionTests =
- [
- "From mile to inches and back", (fun x -> Mile.create x |> Mile.toInches |> Inch.toMiles)
- "From mile to foot and back", (fun x -> Mile.create x |> Mile.toFeet |> Foot.toMiles)
- "From mile to yard and back", (fun x -> Mile.create x |> Mile.toYards |> Yard.toMiles)
- "From mile to millimeter and back", (fun x -> Mile.create x |> Mile.toMillimeters |> Millimeter.toMiles)
- "From mile to centimeter and back", (fun x -> Mile.create x |> Mile.toCentimeters |> Centimeter.toMiles)
- "From mile to meter and back", (fun x -> Mile.create x |> Mile.toMeters |> Meter.toMiles)
- "From mile to kilometer and back", (fun x -> Mile.create x |> Mile.toKilometers |> Kilometer.toMiles)
- "From mile to nautical mile and back", (fun x -> Mile.create x |> Mile.toNauticalMiles |> NauticalMile.toMiles)
- "From mile to chain and back", (fun x -> Mile.create x |> Mile.toChains |> Chain.toMiles)
- "From mile to furlong and back", (fun x -> Mile.create x |> Mile.toFurlongs |> Furlong.toMiles)
- "From mile to league and back", (fun x -> Mile.create x |> Mile.toLeagues |> League.toMiles)
- "From mile to hand and back", (fun x -> Mile.create x |> Mile.toHands |> Hand.toMiles)
- "From mile to rod and back", (fun x -> Mile.create x |> Mile.toRods |> Rod.toMiles)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let millimeterConversionTests =
- [
- "From millimeter to inches and back", (fun x -> Millimeter.create x |> Millimeter.toInches |> Inch.toMillimeters)
- "From millimeter to foot and back", (fun x -> Millimeter.create x |> Millimeter.toFeet |> Foot.toMillimeters)
- "From millimeter to yard and back", (fun x -> Millimeter.create x |> Millimeter.toYards |> Yard.toMillimeters)
- "From millimeter to mile and back", (fun x -> Millimeter.create x |> Millimeter.toMiles |> Mile.toMillimeters)
- "From millimeter to centimeter and back", (fun x -> Millimeter.create x |> Millimeter.toCentimeters |> Centimeter.toMillimeters)
- "From millimeter to meter and back", (fun x -> Millimeter.create x |> Millimeter.toMeters |> Meter.toMillimeters)
- "From millimeter to kilometer and back", (fun x -> Millimeter.create x |> Millimeter.toKilometers |> Kilometer.toMillimeters)
- "From millimeter to nautical mile and back", (fun x -> Millimeter.create x |> Millimeter.toNauticalMiles |> NauticalMile.toMillimeters)
- "From millimeter to chain and back", (fun x -> Millimeter.create x |> Millimeter.toChains |> Chain.toMillimeters)
- "From millimeter to furlong and back", (fun x -> Millimeter.create x |> Millimeter.toFurlongs |> Furlong.toMillimeters)
- "From millimeter to league and back", (fun x -> Millimeter.create x |> Millimeter.toLeagues |> League.toMillimeters)
- "From millimeter to hand and back", (fun x -> Millimeter.create x |> Millimeter.toHands |> Hand.toMillimeters)
- "From millimeter to rod and back", (fun x -> Millimeter.create x |> Millimeter.toRods |> Rod.toMillimeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let centimeterConversionTests =
- [
- "From centimeter to inches and back", (fun x -> Centimeter.create x |> Centimeter.toInches |> Inch.toCentimeters)
- "From centimeter to foot and back", (fun x -> Centimeter.create x |> Centimeter.toFeet |> Foot.toCentimeters)
- "From centimeter to yard and back", (fun x -> Centimeter.create x |> Centimeter.toYards |> Yard.toCentimeters)
- "From centimeter to mile and back", (fun x -> Centimeter.create x |> Centimeter.toMiles |> Mile.toCentimeters)
- "From centimeter to millimeter and back", (fun x -> Centimeter.create x |> Centimeter.toMillimeters |> Millimeter.toCentimeters)
- "From centimeter to meter and back", (fun x -> Centimeter.create x |> Centimeter.toMeters |> Meter.toCentimeters)
- "From centimeter to kilometer and back", (fun x -> Centimeter.create x |> Centimeter.toKilometers |> Kilometer.toCentimeters)
- "From centimeter to nautical mile and back", (fun x -> Centimeter.create x |> Centimeter.toNauticalMiles |> NauticalMile.toCentimeters)
- "From centimeter to chain and back", (fun x -> Centimeter.create x |> Centimeter.toChains |> Chain.toCentimeters)
- "From centimeter to furlong and back", (fun x -> Centimeter.create x |> Centimeter.toFurlongs |> Furlong.toCentimeters)
- "From centimeter to league and back", (fun x -> Centimeter.create x |> Centimeter.toLeagues |> League.toCentimeters)
- "From centimeter to hand and back", (fun x -> Centimeter.create x |> Centimeter.toHands |> Hand.toCentimeters)
- "From centimeter to rod and back", (fun x -> Centimeter.create x |> Centimeter.toRods |> Rod.toCentimeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let meterConversionTests =
- [
- "From meter to inches and back", (fun x -> Meter.create x |> Meter.toInches |> Inch.toMeters)
- "From meter to foot and back", (fun x -> Meter.create x |> Meter.toFeet |> Foot.toMeters)
- "From meter to yard and back", (fun x -> Meter.create x |> Meter.toYards |> Yard.toMeters)
- "From meter to mile and back", (fun x -> Meter.create x |> Meter.toMiles |> Mile.toMeters)
- "From meter to millimeter and back", (fun x -> Meter.create x |> Meter.toMillimeters |> Millimeter.toMeters)
- "From meter to centimeter and back", (fun x -> Meter.create x |> Meter.toCentimeters |> Centimeter.toMeters)
- "From meter to kilometer and back", (fun x -> Meter.create x |> Meter.toKilometers |> Kilometer.toMeters)
- "From meter to nautical mile and back", (fun x -> Meter.create x |> Meter.toNauticalMiles |> NauticalMile.toMeters)
- "From meter to chain and back", (fun x -> Meter.create x |> Meter.toChains |> Chain.toMeters)
- "From meter to furlong and back", (fun x -> Meter.create x |> Meter.toFurlongs |> Furlong.toMeters)
- "From meter to league and back", (fun x -> Meter.create x |> Meter.toLeagues |> League.toMeters)
- "From meter to hand and back", (fun x -> Meter.create x |> Meter.toHands |> Hand.toMeters)
- "From meter to rod and back", (fun x -> Meter.create x |> Meter.toRods |> Rod.toMeters)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilometerConversionTests =
- [
- "From kilometer to inches and back", (fun x -> Kilometer.create x |> Kilometer.toInches |> Inch.toKilometers)
- "From kilometer to foot and back", (fun x -> Kilometer.create x |> Kilometer.toFeet |> Foot.toKilometers)
- "From kilometer to yard and back", (fun x -> Kilometer.create x |> Kilometer.toYards |> Yard.toKilometers)
- "From kilometer to mile and back", (fun x -> Kilometer.create x |> Kilometer.toMiles |> Mile.toKilometers)
- "From kilometer to millimeter and back", (fun x -> Kilometer.create x |> Kilometer.toMillimeters |> Millimeter.toKilometers)
- "From kilometer to centimeter and back", (fun x -> Kilometer.create x |> Kilometer.toCentimeters |> Centimeter.toKilometers)
- "From kilometer to meter and back", (fun x -> Kilometer.create x |> Kilometer.toMeters |> Meter.toKilometers)
- "From kilometer to nautical mile and back", (fun x -> Kilometer.create x |> Kilometer.toNauticalMiles |> NauticalMile.toKilometers)
- "From kilometer to chain and back", (fun x -> Kilometer.create x |> Kilometer.toChains |> Chain.toKilometers)
- "From kilometer to furlong and back", (fun x -> Kilometer.create x |> Kilometer.toFurlongs |> Furlong.toKilometers)
- "From kilometer to league and back", (fun x -> Kilometer.create x |> Kilometer.toLeagues |> League.toKilometers)
- "From kilometer to hand and back", (fun x -> Kilometer.create x |> Kilometer.toHands |> Hand.toKilometers)
- "From kilometer to rod and back", (fun x -> Kilometer.create x |> Kilometer.toRods |> Rod.toKilometers)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let nauticalMileConversionTests =
- [
- "From nautical mile to inches and back", (fun x -> NauticalMile.create x |> NauticalMile.toInches |> Inch.toNauticalMiles)
- "From nautical mile to foot and back", (fun x -> NauticalMile.create x |> NauticalMile.toFeet |> Foot.toNauticalMiles)
- "From nautical mile to yard and back", (fun x -> NauticalMile.create x |> NauticalMile.toYards |> Yard.toNauticalMiles)
- "From nautical mile to mile and back", (fun x -> NauticalMile.create x |> NauticalMile.toMiles |> Mile.toNauticalMiles)
- "From nautical mile to millimeter and back", (fun x -> NauticalMile.create x |> NauticalMile.toMillimeters |> Millimeter.toNauticalMiles)
- "From nautical mile to centimeter and back", (fun x -> NauticalMile.create x |> NauticalMile.toCentimeters |> Centimeter.toNauticalMiles)
- "From nautical mile to meter and back", (fun x -> NauticalMile.create x |> NauticalMile.toMeters |> Meter.toNauticalMiles)
- "From nautical mile to kilometer and back", (fun x -> NauticalMile.create x |> NauticalMile.toKilometers |> Kilometer.toNauticalMiles)
- "From nautical mile to chain and back", (fun x -> NauticalMile.create x |> NauticalMile.toChains |> Chain.toNauticalMiles)
- "From nautical mile to furlong and back", (fun x -> NauticalMile.create x |> NauticalMile.toFurlongs |> Furlong.toNauticalMiles)
- "From nautical mile to league and back", (fun x -> NauticalMile.create x |> NauticalMile.toLeagues |> League.toNauticalMiles)
- "From nautical mile to hand and back", (fun x -> NauticalMile.create x |> NauticalMile.toHands |> Hand.toNauticalMiles)
- "From nautical mile to rod and back", (fun x -> NauticalMile.create x |> NauticalMile.toRods |> Rod.toNauticalMiles)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let chainConversionTests =
- [
- "From chain to inches and back", (fun x -> Chain.create x |> Chain.toInches |> Inch.toChains)
- "From chain to foot and back", (fun x -> Chain.create x |> Chain.toFeet |> Foot.toChains)
- "From chain to yard and back", (fun x -> Chain.create x |> Chain.toYards |> Yard.toChains)
- "From chain to mile and back", (fun x -> Chain.create x |> Chain.toMiles |> Mile.toChains)
- "From chain to millimeter and back", (fun x -> Chain.create x |> Chain.toMillimeters |> Millimeter.toChains)
- "From chain to centimeter and back", (fun x -> Chain.create x |> Chain.toCentimeters |> Centimeter.toChains)
- "From chain to meter and back", (fun x -> Chain.create x |> Chain.toMeters |> Meter.toChains)
- "From chain to kilometer and back", (fun x -> Chain.create x |> Chain.toKilometers |> Kilometer.toChains)
- "From chain to nautical mile and back", (fun x -> Chain.create x |> Chain.toNauticalMiles |> NauticalMile.toChains)
- "From chain to furlong and back", (fun x -> Chain.create x |> Chain.toFurlongs |> Furlong.toChains)
- "From chain to league and back", (fun x -> Chain.create x |> Chain.toLeagues |> League.toChains)
- "From chain to hand and back", (fun x -> Chain.create x |> Chain.toHands |> Hand.toChains)
- "From chain to rod and back", (fun x -> Chain.create x |> Chain.toRods |> Rod.toChains)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let furlongConversionTests =
- [
- "From furlong to inches and back", (fun x -> Furlong.create x |> Furlong.toInches |> Inch.toFurlongs)
- "From furlong to foot and back", (fun x -> Furlong.create x |> Furlong.toFeet |> Foot.toFurlongs)
- "From furlong to yard and back", (fun x -> Furlong.create x |> Furlong.toYards |> Yard.toFurlongs)
- "From furlong to mile and back", (fun x -> Furlong.create x |> Furlong.toMiles |> Mile.toFurlongs)
- "From furlong to millimeter and back", (fun x -> Furlong.create x |> Furlong.toMillimeters |> Millimeter.toFurlongs)
- "From furlong to centimeter and back", (fun x -> Furlong.create x |> Furlong.toCentimeters |> Centimeter.toFurlongs)
- "From furlong to meter and back", (fun x -> Furlong.create x |> Furlong.toMeters |> Meter.toFurlongs)
- "From furlong to kilometer and back", (fun x -> Furlong.create x |> Furlong.toKilometers |> Kilometer.toFurlongs)
- "From furlong to nautical mile and back", (fun x -> Furlong.create x |> Furlong.toNauticalMiles |> NauticalMile.toFurlongs)
- "From furlong to chain and back", (fun x -> Furlong.create x |> Furlong.toChains |> Chain.toFurlongs)
- "From furlong to league and back", (fun x -> Furlong.create x |> Furlong.toLeagues |> League.toFurlongs)
- "From furlong to hand and back", (fun x -> Furlong.create x |> Furlong.toHands |> Hand.toFurlongs)
- "From furlong to rod and back", (fun x -> Furlong.create x |> Furlong.toRods |> Rod.toFurlongs)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let leagueConversionTests =
- [
- "From league to inches and back", (fun x -> League.create x |> League.toInches |> Inch.toLeagues)
- "From league to foot and back", (fun x -> League.create x |> League.toFeet |> Foot.toLeagues)
- "From league to yard and back", (fun x -> League.create x |> League.toYards |> Yard.toLeagues)
- "From league to mile and back", (fun x -> League.create x |> League.toMiles |> Mile.toLeagues)
- "From league to millimeter and back", (fun x -> League.create x |> League.toMillimeters |> Millimeter.toLeagues)
- "From league to centimeter and back", (fun x -> League.create x |> League.toCentimeters |> Centimeter.toLeagues)
- "From league to meter and back", (fun x -> League.create x |> League.toMeters |> Meter.toLeagues)
- "From league to kilometer and back", (fun x -> League.create x |> League.toKilometers |> Kilometer.toLeagues)
- "From league to nautical mile and back", (fun x -> League.create x |> League.toNauticalMiles |> NauticalMile.toLeagues)
- "From league to chain and back", (fun x -> League.create x |> League.toChains |> Chain.toLeagues)
- "From league to furlong and back", (fun x -> League.create x |> League.toFurlongs |> Furlong.toLeagues)
- "From league to hand and back", (fun x -> League.create x |> League.toHands |> Hand.toLeagues)
- "From league to rod and back", (fun x -> League.create x |> League.toRods |> Rod.toLeagues)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let handConversionTests =
- [
- "From hand to inches and back", (fun x -> Hand.create x |> Hand.toInches |> Inch.toHands)
- "From hand to foot and back", (fun x -> Hand.create x |> Hand.toFeet |> Foot.toHands)
- "From hand to yard and back", (fun x -> Hand.create x |> Hand.toYards |> Yard.toHands)
- "From hand to mile and back", (fun x -> Hand.create x |> Hand.toMiles |> Mile.toHands)
- "From hand to millimeter and back", (fun x -> Hand.create x |> Hand.toMillimeters |> Millimeter.toHands)
- "From hand to centimeter and back", (fun x -> Hand.create x |> Hand.toCentimeters |> Centimeter.toHands)
- "From hand to meter and back", (fun x -> Hand.create x |> Hand.toMeters |> Meter.toHands)
- "From hand to kilometer and back", (fun x -> Hand.create x |> Hand.toKilometers |> Kilometer.toHands)
- "From hand to nautical mile and back", (fun x -> Hand.create x |> Hand.toNauticalMiles |> NauticalMile.toHands)
- "From hand to chain and back", (fun x -> Hand.create x |> Hand.toChains |> Chain.toHands)
- "From hand to furlong and back", (fun x -> Hand.create x |> Hand.toFurlongs |> Furlong.toHands)
- "From hand to league and back", (fun x -> Hand.create x |> Hand.toLeagues |> League.toHands)
- "From hand to rod and back", (fun x -> Hand.create x |> Hand.toRods |> Rod.toHands)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let rodConversionTests =
- [
- "From rod to inches and back", (fun x -> Rod.create x |> Rod.toInches |> Inch.toRods)
- "From rod to foot and back", (fun x -> Rod.create x |> Rod.toFeet |> Foot.toRods)
- "From rod to yard and back", (fun x -> Rod.create x |> Rod.toYards |> Yard.toRods)
- "From rod to mile and back", (fun x -> Rod.create x |> Rod.toMiles |> Mile.toRods)
- "From rod to millimeter and back", (fun x -> Rod.create x |> Rod.toMillimeters |> Millimeter.toRods)
- "From rod to centimeter and back", (fun x -> Rod.create x |> Rod.toCentimeters |> Centimeter.toRods)
- "From rod to meter and back", (fun x -> Rod.create x |> Rod.toMeters |> Meter.toRods)
- "From rod to kilometer and back", (fun x -> Rod.create x |> Rod.toKilometers |> Kilometer.toRods)
- "From rod to nautical mile and back", (fun x -> Rod.create x |> Rod.toNauticalMiles |> NauticalMile.toRods)
- "From rod to chain and back", (fun x -> Rod.create x |> Rod.toChains |> Chain.toRods)
- "From rod to furlong and back", (fun x -> Rod.create x |> Rod.toFurlongs |> Furlong.toRods)
- "From rod to league and back", (fun x -> Rod.create x |> Rod.toLeagues |> League.toRods)
- "From rod to hand and back", (fun x -> Rod.create x |> Rod.toHands |> Hand.toRods)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Length Tests -> " [
- testList "Convert inch to other and back -> " inchConversionTests
- testList "Convert foot to other and back -> " footConversionTests
- testList "Convert yard to other and back -> " yardConversionTests
- testList "Convert mile to other and back -> " mileConversionTests
- testList "Convert millimeter to other and back -> " millimeterConversionTests
- testList "Convert centimeter to other and back -> " centimeterConversionTests
- testList "Convert meter to other and back -> " meterConversionTests
- testList "Convert kilometer to other and back -> " kilometerConversionTests
- testList "Convert nautical mile to other and back -> " nauticalMileConversionTests
- testList "Convert chain to other and back -> " chainConversionTests
- testList "Convert furlong to other and back -> " furlongConversionTests
- testList "Convert league to other and back -> " leagueConversionTests
- testList "Convert hand to other and back -> " handConversionTests
- testList "Convert rod to other and back -> " rodConversionTests
- ]
-
-[]
-let timeTests config =
-
- let nanoSecondConversionTests =
- [
- "From nanosecond to microsecond and back", (fun x -> Nanosecond.create x |> Nanosecond.toMicroSeconds |> Microsecond.toNanoSeconds)
- "From nanosecond to millisecond and back", (fun x -> Nanosecond.create x |> Nanosecond.toMilliSeconds |> Millisecond.toNanoSeconds)
- "From nanosecond to second and back", (fun x -> Nanosecond.create x |> Nanosecond.toSeconds |> Second.toNanoSeconds)
- "From nanosecond to minute and back", (fun x -> Nanosecond.create x |> Nanosecond.toMinutes |> Minute.toNanoSeconds)
- "From nanosecond to hour and back", (fun x -> Nanosecond.create x |> Nanosecond.toHours |> Hour.toNanoSeconds)
- "From nanosecond to day and back", (fun x -> Nanosecond.create x |> Nanosecond.toDays |> Day.toNanoSeconds)
- "From nanosecond to week and back", (fun x -> Nanosecond.create x |> Nanosecond.toWeeks |> Week.toNanoSeconds)
- "From nanosecond to fortnight and back", (fun x -> Nanosecond.create x |> Nanosecond.toFortnights |> Fortnight.toNanoSeconds)
- "From nanosecond to month and back", (fun x -> Nanosecond.create x |> Nanosecond.toMonths |> Month.toNanoSeconds)
- "From nanosecond to year and back", (fun x -> Nanosecond.create x |> Nanosecond.toYears |> Year.toNanoSeconds)
- "From nanosecond to decade and back", (fun x -> Nanosecond.create x |> Nanosecond.toDecades |> Decade.toNanoSeconds)
- "From nanosecond to century and back", (fun x -> Nanosecond.create x |> Nanosecond.toCenturies |> Century.toNanoSeconds)
- "From nanosecond to millennium and back", (fun x -> Nanosecond.create x |> Nanosecond.toMillennia |> Millennium.toNanoSeconds)
- "From nanosecond to eon and back", (fun x -> Nanosecond.create x |> Nanosecond.toEons |> Eon.toNanoSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let microSecondConversionTests =
- [
- "From microsecond to nanosecond and back", (fun x -> Microsecond.create x |> Microsecond.toNanoSeconds |> Nanosecond.toMicroSeconds)
- "From microsecond to millisecond and back", (fun x -> Microsecond.create x |> Microsecond.toMilliSeconds |> Millisecond.toMicroSeconds)
- "From microsecond to second and back", (fun x -> Microsecond.create x |> Microsecond.toSeconds |> Second.toMicroSeconds)
- "From microsecond to minute and back", (fun x -> Microsecond.create x |> Microsecond.toMinutes |> Minute.toMicroSeconds)
- "From microsecond to hour and back", (fun x -> Microsecond.create x |> Microsecond.toHours |> Hour.toMicroSeconds)
- "From microsecond to day and back", (fun x -> Microsecond.create x |> Microsecond.toDays |> Day.toMicroSeconds)
- "From microsecond to week and back", (fun x -> Microsecond.create x |> Microsecond.toWeeks |> Week.toMicroSeconds)
- "From microsecond to fortnight and back", (fun x -> Microsecond.create x |> Microsecond.toFortnights |> Fortnight.toMicroSeconds)
- "From microsecond to month and back", (fun x -> Microsecond.create x |> Microsecond.toMonths |> Month.toMicroSeconds)
- "From microsecond to year and back", (fun x -> Microsecond.create x |> Microsecond.toYears |> Year.toMicroSeconds)
- "From microsecond to decade and back", (fun x -> Microsecond.create x |> Microsecond.toDecades |> Decade.toMicroSeconds)
- "From microsecond to century and back", (fun x -> Microsecond.create x |> Microsecond.toCenturies |> Century.toMicroSeconds)
- "From microsecond to millennium and back", (fun x -> Microsecond.create x |> Microsecond.toMillennia |> Millennium.toMicroSeconds)
- "From microsecond to eon and back", (fun x -> Microsecond.create x |> Microsecond.toEons |> Eon.toMicroSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let milliSecondConversionTests =
- [
- "From millisecond to nanosecond and back", (fun x -> Millisecond.create x |> Millisecond.toNanoSeconds |> Nanosecond.toMilliSeconds)
- "From millisecond to microsecond and back", (fun x -> Millisecond.create x |> Millisecond.toMicroSeconds |> Microsecond.toMilliSeconds)
- "From millisecond to second and back", (fun x -> Millisecond.create x |> Millisecond.toSeconds |> Second.toMilliSeconds)
- "From millisecond to minute and back", (fun x -> Millisecond.create x |> Millisecond.toMinutes |> Minute.toMilliSeconds)
- "From millisecond to hour and back", (fun x -> Millisecond.create x |> Millisecond.toHours |> Hour.toMilliSeconds)
- "From millisecond to day and back", (fun x -> Millisecond.create x |> Millisecond.toDays |> Day.toMilliSeconds)
- "From millisecond to week and back", (fun x -> Millisecond.create x |> Millisecond.toWeeks |> Week.toMilliSeconds)
- "From millisecond to fortnight and back", (fun x -> Millisecond.create x |> Millisecond.toFortnights |> Fortnight.toMilliSeconds)
- "From millisecond to month and back", (fun x -> Millisecond.create x |> Millisecond.toMonths |> Month.toMilliSeconds)
- "From millisecond to year and back", (fun x -> Millisecond.create x |> Millisecond.toYears |> Year.toMilliSeconds)
- "From millisecond to decade and back", (fun x -> Millisecond.create x |> Millisecond.toDecades |> Decade.toMilliSeconds)
- "From millisecond to century and back", (fun x -> Millisecond.create x |> Millisecond.toCenturies |> Century.toMilliSeconds)
- "From millisecond to millennium and back", (fun x -> Millisecond.create x |> Millisecond.toMillennia |> Millennium.toMilliSeconds)
- "From millisecond to eon and back", (fun x -> Millisecond.create x |> Millisecond.toEons |> Eon.toMilliSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let secondConversionTests =
- [
- "From second to nanosecond and back", (fun x -> Second.create x |> Second.toNanoSeconds |> Nanosecond.toSeconds)
- "From second to microsecond and back", (fun x -> Second.create x |> Second.toMicroSeconds |> Microsecond.toSeconds)
- "From second to millisecond and back", (fun x -> Second.create x |> Second.toMilliSeconds |> Millisecond.toSeconds)
- "From second to minute and back", (fun x -> Second.create x |> Second.toMinutes |> Minute.toSeconds)
- "From second to hour and back", (fun x -> Second.create x |> Second.toHours |> Hour.toSeconds)
- "From second to day and back", (fun x -> Second.create x |> Second.toDays |> Day.toSeconds)
- "From second to week and back", (fun x -> Second.create x |> Second.toWeeks |> Week.toSeconds)
- "From second to fortnight and back", (fun x -> Second.create x |> Second.toFortnights |> Fortnight.toSeconds)
- "From second to month and back", (fun x -> Second.create x |> Second.toMonths |> Month.toSeconds)
- "From second to year and back", (fun x -> Second.create x |> Second.toYears |> Year.toSeconds)
- "From second to decade and back", (fun x -> Second.create x |> Second.toDecades |> Decade.toSeconds)
- "From second to century and back", (fun x -> Second.create x |> Second.toCenturies |> Century.toSeconds)
- "From second to millennium and back", (fun x -> Second.create x |> Second.toMillennia |> Millennium.toSeconds)
- "From second to eon and back", (fun x -> Second.create x |> Second.toEons |> Eon.toSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let minuteConversionTests =
- [
- "From minute to nanosecond and back", (fun x -> Minute.create x |> Minute.toNanoSeconds |> Nanosecond.toMinutes)
- "From minute to microsecond and back", (fun x -> Minute.create x |> Minute.toMicroSeconds |> Microsecond.toMinutes)
- "From minute to millisecond and back", (fun x -> Minute.create x |> Minute.toMilliSeconds |> Millisecond.toMinutes)
- "From minute to second and back", (fun x -> Minute.create x |> Minute.toSeconds |> Second.toMinutes)
- "From minute to hour and back", (fun x -> Minute.create x |> Minute.toHours |> Hour.toMinutes)
- "From minute to day and back", (fun x -> Minute.create x |> Minute.toDays |> Day.toMinutes)
- "From minute to week and back", (fun x -> Minute.create x |> Minute.toWeeks |> Week.toMinutes)
- "From minute to fortnight and back", (fun x -> Minute.create x |> Minute.toFortnights |> Fortnight.toMinutes)
- "From minute to month and back", (fun x -> Minute.create x |> Minute.toMonths |> Month.toMinutes)
- "From minute to year and back", (fun x -> Minute.create x |> Minute.toYears |> Year.toMinutes)
- "From minute to decade and back", (fun x -> Minute.create x |> Minute.toDecades |> Decade.toMinutes)
- "From minute to century and back", (fun x -> Minute.create x |> Minute.toCenturies |> Century.toMinutes)
- "From minute to millennium and back", (fun x -> Minute.create x |> Minute.toMillennia |> Millennium.toMinutes)
- "From minute to eon and back", (fun x -> Minute.create x |> Minute.toEons |> Eon.toMinutes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let hourConversionTests =
- [
- "From hour to nanosecond and back", (fun x -> Hour.create x |> Hour.toNanoSeconds |> Nanosecond.toHours)
- "From hour to microsecond and back", (fun x -> Hour.create x |> Hour.toMicroSeconds |> Microsecond.toHours)
- "From hour to millisecond and back", (fun x -> Hour.create x |> Hour.toMilliSeconds |> Millisecond.toHours)
- "From hour to second and back", (fun x -> Hour.create x |> Hour.toSeconds |> Second.toHours)
- "From hour to minute and back", (fun x -> Hour.create x |> Hour.toMinutes |> Minute.toHours)
- "From hour to day and back", (fun x -> Hour.create x |> Hour.toDays |> Day.toHours)
- "From hour to week and back", (fun x -> Hour.create x |> Hour.toWeeks |> Week.toHours)
- "From hour to fortnight and back", (fun x -> Hour.create x |> Hour.toFortnights |> Fortnight.toHours)
- "From hour to month and back", (fun x -> Hour.create x |> Hour.toMonths |> Month.toHours)
- "From hour to year and back", (fun x -> Hour.create x |> Hour.toYears |> Year.toHours)
- "From hour to decade and back", (fun x -> Hour.create x |> Hour.toDecades |> Decade.toHours)
- "From hour to century and back", (fun x -> Hour.create x |> Hour.toCenturies |> Century.toHours)
- "From hour to millennium and back", (fun x -> Hour.create x |> Hour.toMillennia |> Millennium.toHours)
- "From hour to eon and back", (fun x -> Hour.create x |> Hour.toEons |> Eon.toHours)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let dayConversionTests =
- [
- "From day to nanosecond and back", (fun x -> Day.create x |> Day.toNanoSeconds |> Nanosecond.toDays)
- "From day to microsecond and back", (fun x -> Day.create x |> Day.toMicroSeconds |> Microsecond.toDays)
- "From day to millisecond and back", (fun x -> Day.create x |> Day.toMilliSeconds |> Millisecond.toDays)
- "From day to second and back", (fun x -> Day.create x |> Day.toSeconds |> Second.toDays)
- "From day to minute and back", (fun x -> Day.create x |> Day.toMinutes |> Minute.toDays)
- "From day to hour and back", (fun x -> Day.create x |> Day.toHours |> Hour.toDays)
- "From day to week and back", (fun x -> Day.create x |> Day.toWeeks |> Week.toDays)
- "From day to fortnight and back", (fun x -> Day.create x |> Day.toFortnights |> Fortnight.toDays)
- "From day to month and back", (fun x -> Day.create x |> Day.toMonths |> Month.toDays)
- "From day to year and back", (fun x -> Day.create x |> Day.toYears |> Year.toDays)
- "From day to decade and back", (fun x -> Day.create x |> Day.toDecades |> Decade.toDays)
- "From day to century and back", (fun x -> Day.create x |> Day.toCenturies |> Century.toDays)
- "From day to millennium and back", (fun x -> Day.create x |> Day.toMillennia |> Millennium.toDays)
- "From day to eon and back", (fun x -> Day.create x |> Day.toEons |> Eon.toDays)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let weekConversionTests =
- [
- "From week to nanosecond and back", (fun x -> Week.create x |> Week.toNanoSeconds |> Nanosecond.toWeeks)
- "From week to microsecond and back", (fun x -> Week.create x |> Week.toMicroSeconds |> Microsecond.toWeeks)
- "From week to millisecond and back", (fun x -> Week.create x |> Week.toMilliSeconds |> Millisecond.toWeeks)
- "From week to second and back", (fun x -> Week.create x |> Week.toSeconds |> Second.toWeeks)
- "From week to minute and back", (fun x -> Week.create x |> Week.toMinutes |> Minute.toWeeks)
- "From week to hour and back", (fun x -> Week.create x |> Week.toHours |> Hour.toWeeks)
- "From week to day and back", (fun x -> Week.create x |> Week.toDays |> Day.toWeeks)
- "From week to fortnight and back", (fun x -> Week.create x |> Week.toFortnights |> Fortnight.toWeeks)
- "From week to month and back", (fun x -> Week.create x |> Week.toMonths |> Month.toWeeks)
- "From week to year and back", (fun x -> Week.create x |> Week.toYears |> Year.toWeeks)
- "From week to decade and back", (fun x -> Week.create x |> Week.toDecades |> Decade.toWeeks)
- "From week to century and back", (fun x -> Week.create x |> Week.toCenturies |> Century.toWeeks)
- "From week to millennium and back", (fun x -> Week.create x |> Week.toMillennia |> Millennium.toWeeks)
- "From week to eon and back", (fun x -> Week.create x |> Week.toEons |> Eon.toWeeks)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let fortnightConversionTests =
- [
- "From fortnight to nanosecond and back", (fun x -> Fortnight.create x |> Fortnight.toNanoSeconds |> Nanosecond.toFortnights)
- "From fortnight to microsecond and back", (fun x -> Fortnight.create x |> Fortnight.toMicroSeconds |> Microsecond.toFortnights)
- "From fortnight to millisecond and back", (fun x -> Fortnight.create x |> Fortnight.toMilliSeconds |> Millisecond.toFortnights)
- "From fortnight to second and back", (fun x -> Fortnight.create x |> Fortnight.toSeconds |> Second.toFortnights)
- "From fortnight to minute and back", (fun x -> Fortnight.create x |> Fortnight.toMinutes |> Minute.toFortnights)
- "From fortnight to hour and back", (fun x -> Fortnight.create x |> Fortnight.toHours |> Hour.toFortnights)
- "From fortnight to day and back", (fun x -> Fortnight.create x |> Fortnight.toDays |> Day.toFortnights)
- "From fortnight to week and back", (fun x -> Fortnight.create x |> Fortnight.toWeeks |> Week.toFortnights)
- "From fortnight to month and back", (fun x -> Fortnight.create x |> Fortnight.toMonths |> Month.toFortnights)
- "From fortnight to year and back", (fun x -> Fortnight.create x |> Fortnight.toYears |> Year.toFortnights)
- "From fortnight to decade and back", (fun x -> Fortnight.create x |> Fortnight.toDecades |> Decade.toFortnights)
- "From fortnight to century and back", (fun x -> Fortnight.create x |> Fortnight.toCenturies |> Century.toFortnights)
- "From fortnight to millennium and back", (fun x -> Fortnight.create x |> Fortnight.toMillennia |> Millennium.toFortnights)
- "From fortnight to eon and back", (fun x -> Fortnight.create x |> Fortnight.toEons |> Eon.toFortnights)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let monthConversionTests =
- [
- "From month to nanosecond and back", (fun x -> Month.create x |> Month.toNanoSeconds |> Nanosecond.toMonths)
- "From month to microsecond and back", (fun x -> Month.create x |> Month.toMicroSeconds |> Microsecond.toMonths)
- "From month to millisecond and back", (fun x -> Month.create x |> Month.toMilliSeconds |> Millisecond.toMonths)
- "From month to second and back", (fun x -> Month.create x |> Month.toSeconds |> Second.toMonths)
- "From month to minute and back", (fun x -> Month.create x |> Month.toMinutes |> Minute.toMonths)
- "From month to hour and back", (fun x -> Month.create x |> Month.toHours |> Hour.toMonths)
- "From month to day and back", (fun x -> Month.create x |> Month.toDays |> Day.toMonths)
- "From month to week and back", (fun x -> Month.create x |> Month.toWeeks |> Week.toMonths)
- "From month to fortnight and back", (fun x -> Month.create x |> Month.toFortnights |> Fortnight.toMonths)
- "From month to year and back", (fun x -> Month.create x |> Month.toYears |> Year.toMonths)
- "From month to decade and back", (fun x -> Month.create x |> Month.toDecades |> Decade.toMonths)
- "From month to century and back", (fun x -> Month.create x |> Month.toCenturies |> Century.toMonths)
- "From month to millennium and back", (fun x -> Month.create x |> Month.toMillennia |> Millennium.toMonths)
- "From month to eon and back", (fun x -> Month.create x |> Month.toEons |> Eon.toMonths)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let yearConversionTests =
- [
- "From year to nanosecond and back", (fun x -> Year.create x |> Year.toNanoSeconds |> Nanosecond.toYears)
- "From year to microsecond and back", (fun x -> Year.create x |> Year.toMicroSeconds |> Microsecond.toYears)
- "From year to millisecond and back", (fun x -> Year.create x |> Year.toMilliSeconds |> Millisecond.toYears)
- "From year to second and back", (fun x -> Year.create x |> Year.toSeconds |> Second.toYears)
- "From year to minute and back", (fun x -> Year.create x |> Year.toMinutes |> Minute.toYears)
- "From year to hour and back", (fun x -> Year.create x |> Year.toHours |> Hour.toYears)
- "From year to day and back", (fun x -> Year.create x |> Year.toDays |> Day.toYears)
- "From year to week and back", (fun x -> Year.create x |> Year.toWeeks |> Week.toYears)
- "From year to fortnight and back", (fun x -> Year.create x |> Year.toFortnights |> Fortnight.toYears)
- "From year to month and back", (fun x -> Year.create x |> Year.toMonths |> Month.toYears)
- "From year to decade and back", (fun x -> Year.create x |> Year.toDecades |> Decade.toYears)
- "From year to century and back", (fun x -> Year.create x |> Year.toCenturies |> Century.toYears)
- "From year to millennium and back", (fun x -> Year.create x |> Year.toMillennia |> Millennium.toYears)
- "From year to eon and back", (fun x -> Year.create x |> Year.toEons |> Eon.toYears)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let decadeConversionTests =
- [
- "From decade to nanosecond and back", (fun x -> Decade.create x |> Decade.toNanoSeconds |> Nanosecond.toDecades)
- "From decade to microsecond and back", (fun x -> Decade.create x |> Decade.toMicroSeconds |> Microsecond.toDecades)
- "From decade to millisecond and back", (fun x -> Decade.create x |> Decade.toMilliSeconds |> Millisecond.toDecades)
- "From decade to second and back", (fun x -> Decade.create x |> Decade.toSeconds |> Second.toDecades)
- "From decade to minute and back", (fun x -> Decade.create x |> Decade.toMinutes |> Minute.toDecades)
- "From decade to hour and back", (fun x -> Decade.create x |> Decade.toHours |> Hour.toDecades)
- "From decade to day and back", (fun x -> Decade.create x |> Decade.toDays |> Day.toDecades)
- "From decade to week and back", (fun x -> Decade.create x |> Decade.toWeeks |> Week.toDecades)
- "From decade to fortnight and back", (fun x -> Decade.create x |> Decade.toFortnights |> Fortnight.toDecades)
- "From decade to month and back", (fun x -> Decade.create x |> Decade.toMonths |> Month.toDecades)
- "From decade to year and back", (fun x -> Decade.create x |> Decade.toYears |> Year.toDecades)
- "From decade to century and back", (fun x -> Decade.create x |> Decade.toCenturies |> Century.toDecades)
- "From decade to millennium and back", (fun x -> Decade.create x |> Decade.toMillennia |> Millennium.toDecades)
- "From decade to eon and back", (fun x -> Decade.create x |> Decade.toEons |> Eon.toDecades)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let centuryConversionTests =
- [
- "From century to nanosecond and back", (fun x -> Century.create x |> Century.toNanoSeconds |> Nanosecond.toCenturies)
- "From century to microsecond and back", (fun x -> Century.create x |> Century.toMicroSeconds |> Microsecond.toCenturies)
- "From century to millisecond and back", (fun x -> Century.create x |> Century.toMilliSeconds |> Millisecond.toCenturies)
- "From century to second and back", (fun x -> Century.create x |> Century.toSeconds |> Second.toCenturies)
- "From century to minute and back", (fun x -> Century.create x |> Century.toMinutes |> Minute.toCenturies)
- "From century to hour and back", (fun x -> Century.create x |> Century.toHours |> Hour.toCenturies)
- "From century to day and back", (fun x -> Century.create x |> Century.toDays |> Day.toCenturies)
- "From century to week and back", (fun x -> Century.create x |> Century.toWeeks |> Week.toCenturies)
- "From century to fortnight and back", (fun x -> Century.create x |> Century.toFortnights |> Fortnight.toCenturies)
- "From century to month and back", (fun x -> Century.create x |> Century.toMonths |> Month.toCenturies)
- "From century to year and back", (fun x -> Century.create x |> Century.toYears |> Year.toCenturies)
- "From century to decade and back", (fun x -> Century.create x |> Century.toDecades |> Decade.toCenturies)
- "From century to millennium and back", (fun x -> Century.create x |> Century.toMillennia |> Millennium.toCenturies)
- "From century to eon and back", (fun x -> Century.create x |> Century.toEons |> Eon.toCenturies)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let millenniumConversionTests =
- [
- "From millennium to nanosecond and back", (fun x -> Millennium.create x |> Millennium.toNanoSeconds |> Nanosecond.toMillennia)
- "From millennium to microsecond and back", (fun x -> Millennium.create x |> Millennium.toMicroSeconds |> Microsecond.toMillennia)
- "From millennium to millisecond and back", (fun x -> Millennium.create x |> Millennium.toMilliSeconds |> Millisecond.toMillennia)
- "From millennium to second and back", (fun x -> Millennium.create x |> Millennium.toSeconds |> Second.toMillennia)
- "From millennium to minute and back", (fun x -> Millennium.create x |> Millennium.toMinutes |> Minute.toMillennia)
- "From millennium to hour and back", (fun x -> Millennium.create x |> Millennium.toHours |> Hour.toMillennia)
- "From millennium to day and back", (fun x -> Millennium.create x |> Millennium.toDays |> Day.toMillennia)
- "From millennium to week and back", (fun x -> Millennium.create x |> Millennium.toWeeks |> Week.toMillennia)
- "From millennium to fortnight and back", (fun x -> Millennium.create x |> Millennium.toFortnights |> Fortnight.toMillennia)
- "From millennium to month and back", (fun x -> Millennium.create x |> Millennium.toMonths |> Month.toMillennia)
- "From millennium to year and back", (fun x -> Millennium.create x |> Millennium.toYears |> Year.toMillennia)
- "From millennium to decade and back", (fun x -> Millennium.create x |> Millennium.toDecades |> Decade.toMillennia)
- "From millennium to century and back", (fun x -> Millennium.create x |> Millennium.toCenturies |> Century.toMillennia)
- "From millennium to eon and back", (fun x -> Millennium.create x |> Millennium.toEons |> Eon.toMillennia)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let eonConversionTests =
- [
- "From eon to nanosecond and back", (fun x -> Eon.create x |> Eon.toNanoSeconds |> Nanosecond.toEons)
- "From eon to microsecond and back", (fun x -> Eon.create x |> Eon.toMicroSeconds |> Microsecond.toEons)
- "From eon to millisecond and back", (fun x -> Eon.create x |> Eon.toMilliSeconds |> Millisecond.toEons)
- "From eon to second and back", (fun x -> Eon.create x |> Eon.toSeconds |> Second.toEons)
- "From eon to minute and back", (fun x -> Eon.create x |> Eon.toMinutes |> Minute.toEons)
- "From eon to hour and back", (fun x -> Eon.create x |> Eon.toHours |> Hour.toEons)
- "From eon to day and back", (fun x -> Eon.create x |> Eon.toDays |> Day.toEons)
- "From eon to week and back", (fun x -> Eon.create x |> Eon.toWeeks |> Week.toEons)
- "From eon to fortnight and back", (fun x -> Eon.create x |> Eon.toFortnights |> Fortnight.toEons)
- "From eon to month and back", (fun x -> Eon.create x |> Eon.toMonths |> Month.toEons)
- "From eon to year and back", (fun x -> Eon.create x |> Eon.toYears |> Year.toEons)
- "From eon to decade and back", (fun x -> Eon.create x |> Eon.toDecades |> Decade.toEons)
- "From eon to century and back", (fun x -> Eon.create x |> Eon.toCenturies |> Century.toEons)
- "From eon to millennium and back", (fun x -> Eon.create x |> Eon.toMillennia |> Millennium.toEons)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
-
- testList "Time Tests -> " [
- testList "Nanosecond conversion tests -> " nanoSecondConversionTests
- testList "Microsecond conversion tests -> " microSecondConversionTests
- testList "Millisecond conversion tests -> " milliSecondConversionTests
- testList "Second conversion tests -> " secondConversionTests
- testList "Minute conversion tests -> " minuteConversionTests
- testList "Hour conversion tests -> " hourConversionTests
- testList "Day conversion tests -> " dayConversionTests
- testList "Week conversion tests -> " weekConversionTests
- testList "Fortnight conversion tests -> " fortnightConversionTests
- testList "Month conversion tests -> " monthConversionTests
- testList "Year conversion tests -> " yearConversionTests
- testList "Decade conversion tests -> " decadeConversionTests
- testList "Century conversion tests -> " centuryConversionTests
- testList "Millennium conversion tests -> " millenniumConversionTests
- testList "Eon conversion tests -> " eonConversionTests
- ]
-
-[]
-let massTests config =
-
- let milligramConversionTests =
- [
- "From milligram to gram and back", (fun x -> Milligram.create x |> Milligram.toGrams |> Gram.toMilligrams)
- "From milligram to kilogram and back", (fun x -> Milligram.create x |> Milligram.toKilograms |> Kilogram.toMilligrams)
- "From milligram to pound and back", (fun x -> Milligram.create x |> Milligram.toPoundMass |> PoundMass.toMilligrams)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gramConversionTests =
- [
- "From gram to milligram and back", (fun x -> Gram.create x |> Gram.toMilligrams |> Milligram.toGrams)
- "From gram to kilogram and back", (fun x -> Gram.create x |> Gram.toKilograms |> Kilogram.toGrams)
- "From gram to pound and back", (fun x -> Gram.create x |> Gram.toPoundMass |> PoundMass.toGrams)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilogramConversionTests =
- [
- "From kilogram to milligram and back", (fun x -> Kilogram.create x |> Kilogram.toMilligrams |> Milligram.toKilograms)
- "From kilogram to gram and back", (fun x -> Kilogram.create x |> Kilogram.toGrams |> Gram.toKilograms)
- "From kilogram to pound and back", (fun x -> Kilogram.create x |> Kilogram.toPoundMass |> PoundMass.toKilograms)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let poundConversionTests =
- [
- "From pound to milligram and back", (fun x -> PoundMass.create x |> PoundMass.toMilligrams |> Milligram.toPoundMass)
- "From pound to gram and back", (fun x -> PoundMass.create x |> PoundMass.toGrams |> Gram.toPoundMass)
- "From pound to kilogram and back", (fun x -> PoundMass.create x |> PoundMass.toKilograms |> Kilogram.toPoundMass)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Mass tests -> " [
- testList "Milligram conversion tests -> " milligramConversionTests
- testList "Gram conversion tests -> " gramConversionTests
- testList "Kilogram conversion tests -> " kilogramConversionTests
- testList "Pound conversion tests -> " poundConversionTests
- ]
-
-[]
-let temperatureTests config =
-
- let kelvinConversionTests =
- [
- "From kelvin to celsius and back", (fun x -> Kelvin.create x |> Kelvin.toCelsius |> Celsius.toKelvin)
- "From kelvin to fahrenheit and back", (fun x -> Kelvin.create x |> Kelvin.toFahrenheit |> Fahrenheit.toKelvin)
- "From kelvin to rankine and back", (fun x -> Kelvin.create x |> Kelvin.toRankine |> Rankine.toKelvin)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let celsiusConversionTests =
- [
- "From celsius to kelvin and back", (fun x -> Celsius.create x |> Celsius.toKelvin |> Kelvin.toCelsius)
- "From celsius to fahrenheit and back", (fun x -> Celsius.create x |> Celsius.toFahrenheit |> Fahrenheit.toCelsius)
- "From celsius to rankine and back", (fun x -> Celsius.create x |> Celsius.toRankine |> Rankine.toCelsius)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let fahrenheitConversionTests =
- [
- "From fahrenheit to kelvin and back", (fun x -> Fahrenheit.create x |> Fahrenheit.toKelvin |> Kelvin.toFahrenheit)
- "From fahrenheit to celsius and back", (fun x -> Fahrenheit.create x |> Fahrenheit.toCelsius |> Celsius.toFahrenheit)
- "From fahrenheit to rankine and back", (fun x -> Fahrenheit.create x |> Fahrenheit.toRankine |> Rankine.toFahrenheit)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let rankineConversionTests =
- [
- "From rankine to kelvin and back", (fun x -> Rankine.create x |> Rankine.toKelvin |> Kelvin.toRankine)
- "From rankine to celsius and back", (fun x -> Rankine.create x |> Rankine.toCelsius |> Celsius.toRankine)
- "From rankine to fahrenheit and back", (fun x -> Rankine.create x |> Rankine.toFahrenheit |> Fahrenheit.toRankine)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Temperature Tests -> " [
- testList "Kelvin conversion tests -> " kelvinConversionTests
- testList "Celsius conversion tests -> " celsiusConversionTests
- testList "Fahrenheit conversion tests -> " fahrenheitConversionTests
- testList "Rankine conversion tests -> " rankineConversionTests
- ]
-
-[]
-let angleTests config =
-
- let degreeConversionTests =
- [
- "From degrees to radians and back", (fun x -> Degree.create x |> Degree.toRadians |> Radian.toDegrees)
- "From degrees to gradians and back", (fun x -> Degree.create x |> Degree.toGradians |> Gradian.toDegrees)
- "From degrees to revolutions and back", (fun x -> Degree.create x |> Degree.toRevolutions |> Revolution.toDegrees)
- "From degrees to arcminutes and back", (fun x -> Degree.create x |> Degree.toArcMinutes |> ArcMinute.toDegrees)
- "From degrees to arcseconds and back", (fun x -> Degree.create x |> Degree.toArcSeconds |> ArcSecond.toDegrees)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let radianConversionTests =
- [
- "From radians to degrees and back", (fun x -> Radian.create x |> Radian.toDegrees |> Degree.toRadians)
- "From radians to gradians and back", (fun x -> Radian.create x |> Radian.toGradians |> Gradian.toRadians)
- "From radians to revolutions and back", (fun x -> Radian.create x |> Radian.toRevolutions |> Revolution.toRadians)
- "From radians to arcminutes and back", (fun x -> Radian.create x |> Radian.toArcMinutes |> ArcMinute.toRadians)
- "From radians to arcseconds and back", (fun x -> Radian.create x |> Radian.toArcSeconds |> ArcSecond.toRadians)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gradianConversionTests =
- [
- "From gradians to degrees and back", (fun x -> Gradian.create x |> Gradian.toDegrees |> Degree.toGradians)
- "From gradians to radians and back", (fun x -> Gradian.create x |> Gradian.toRadians |> Radian.toGradians)
- "From gradians to revolutions and back", (fun x -> Gradian.create x |> Gradian.toRevolutions |> Revolution.toGradians)
- "From gradians to arcminutes and back", (fun x -> Gradian.create x |> Gradian.toArcMinutes |> ArcMinute.toGradians)
- "From gradians to arcseconds and back", (fun x -> Gradian.create x |> Gradian.toArcSeconds |> ArcSecond.toGradians)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let revolutionConversionTests =
- [
- "From revolutions to degrees and back", (fun x -> Revolution.create x |> Revolution.toDegrees |> Degree.toRevolutions)
- "From revolutions to radians and back", (fun x -> Revolution.create x |> Revolution.toRadians |> Radian.toRevolutions)
- "From revolutions to gradians and back", (fun x -> Revolution.create x |> Revolution.toGradians |> Gradian.toRevolutions)
- "From revolutions to arcminutes and back", (fun x -> Revolution.create x |> Revolution.toArcMinutes |> ArcMinute.toRevolutions)
- "From revolutions to arcseconds and back", (fun x -> Revolution.create x |> Revolution.toArcSeconds |> ArcSecond.toRevolutions)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let arcMinuteConversionTests =
- [
- "From arcminutes to degrees and back", (fun x -> ArcMinute.create x |> ArcMinute.toDegrees |> Degree.toArcMinutes)
- "From arcminutes to radians and back", (fun x -> ArcMinute.create x |> ArcMinute.toRadians |> Radian.toArcMinutes)
- "From arcminutes to gradians and back", (fun x -> ArcMinute.create x |> ArcMinute.toGradians |> Gradian.toArcMinutes)
- "From arcminutes to revolutions and back", (fun x -> ArcMinute.create x |> ArcMinute.toRevolutions |> Revolution.toArcMinutes)
- "From arcminutes to arcseconds and back", (fun x -> ArcMinute.create x |> ArcMinute.toArcSeconds |> ArcSecond.toArcMinutes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let arcSecondConversionTests =
- [
- "From arcseconds to degrees and back", (fun x -> ArcSecond.create x |> ArcSecond.toDegrees |> Degree.toArcSeconds)
- "From arcseconds to radians and back", (fun x -> ArcSecond.create x |> ArcSecond.toRadians |> Radian.toArcSeconds)
- "From arcseconds to gradians and back", (fun x -> ArcSecond.create x |> ArcSecond.toGradians |> Gradian.toArcSeconds)
- "From arcseconds to revolutions and back", (fun x -> ArcSecond.create x |> ArcSecond.toRevolutions |> Revolution.toArcSeconds)
- "From arcseconds to arcminutes and back", (fun x -> ArcSecond.create x |> ArcSecond.toArcMinutes |> ArcMinute.toArcSeconds)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Angle Tests -> " [
- testList "Degree conversion tests -> " degreeConversionTests
- testList "Radian conversion tests -> " radianConversionTests
- testList "Gradian conversion tests -> " gradianConversionTests
- testList "Revolution conversion tests -> " revolutionConversionTests
- testList "ArcMinute conversion tests -> " arcMinuteConversionTests
- testList "ArcSecond conversion tests -> " arcSecondConversionTests
- ]
-
-[]
-let dataStorageTests config =
-
- let bitConversionTests =
- [
- "From bit to kilobit and back", (fun x -> Bit.create x |> Bit.toKilobits |> Kilobit.toBits)
- "From bit to megabit and back", (fun x -> Bit.create x |> Bit.toMegabits |> Megabit.toBits)
- "From bit to gigabit and back", (fun x -> Bit.create x |> Bit.toGigabits |> Gigabit.toBits)
- "From bit to terabit and back", (fun x -> Bit.create x |> Bit.toTerabits |> Terabit.toBits)
- "From bit to petabit and back", (fun x -> Bit.create x |> Bit.toPetabits |> Petabit.toBits)
- "From bit to byte and back", (fun x -> Bit.create x |> Bit.toBytes |> Byte.toBits)
- "From bit to kilobyte and back", (fun x -> Bit.create x |> Bit.toKilobytes |> Kilobyte.toBits)
- "From bit to megabyte and back", (fun x -> Bit.create x |> Bit.toMegabytes |> Megabyte.toBits)
- "From bit to gigabyte and back", (fun x -> Bit.create x |> Bit.toGigabytes |> Gigabyte.toBits)
- "From bit to terabyte and back", (fun x -> Bit.create x |> Bit.toTerabytes |> Terabyte.toBits)
- "From bit to petabyte and back", (fun x -> Bit.create x |> Bit.toPetabytes |> Petabyte.toBits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilobitConversionTests =
- [
- "From kilobit to bit and back", (fun x -> Kilobit.create x |> Kilobit.toBits |> Bit.toKilobits)
- "From kilobit to megabit and back", (fun x -> Kilobit.create x |> Kilobit.toMegabits |> Megabit.toKilobits)
- "From kilobit to gigabit and back", (fun x -> Kilobit.create x |> Kilobit.toGigabits |> Gigabit.toKilobits)
- "From kilobit to terabit and back", (fun x -> Kilobit.create x |> Kilobit.toTerabits |> Terabit.toKilobits)
- "From kilobit to petabit and back", (fun x -> Kilobit.create x |> Kilobit.toPetabits |> Petabit.toKilobits)
- "From kilobit to byte and back", (fun x -> Kilobit.create x |> Kilobit.toBytes |> Byte.toKilobits)
- "From kilobit to kilobyte and back", (fun x -> Kilobit.create x |> Kilobit.toKilobytes |> Kilobyte.toKilobits)
- "From kilobit to megabyte and back", (fun x -> Kilobit.create x |> Kilobit.toMegabytes |> Megabyte.toKilobits)
- "From kilobit to gigabyte and back", (fun x -> Kilobit.create x |> Kilobit.toGigabytes |> Gigabyte.toKilobits)
- "From kilobit to terabyte and back", (fun x -> Kilobit.create x |> Kilobit.toTerabytes |> Terabyte.toKilobits)
- "From kilobit to petabyte and back", (fun x -> Kilobit.create x |> Kilobit.toPetabytes |> Petabyte.toKilobits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megabitConversionTests =
- [
- "From megabit to bit and back", (fun x -> Megabit.create x |> Megabit.toBits |> Bit.toMegabits)
- "From megabit to kilobit and back", (fun x -> Megabit.create x |> Megabit.toKilobits |> Kilobit.toMegabits)
- "From megabit to gigabit and back", (fun x -> Megabit.create x |> Megabit.toGigabits |> Gigabit.toMegabits)
- "From megabit to terabit and back", (fun x -> Megabit.create x |> Megabit.toTerabits |> Terabit.toMegabits)
- "From megabit to petabit and back", (fun x -> Megabit.create x |> Megabit.toPetabits |> Petabit.toMegabits)
- "From megabit to byte and back", (fun x -> Megabit.create x |> Megabit.toBytes |> Byte.toMegabits)
- "From megabit to kilobyte and back", (fun x -> Megabit.create x |> Megabit.toKilobytes |> Kilobyte.toMegabits)
- "From megabit to megabyte and back", (fun x -> Megabit.create x |> Megabit.toMegabytes |> Megabyte.toMegabits)
- "From megabit to gigabyte and back", (fun x -> Megabit.create x |> Megabit.toGigabytes |> Gigabyte.toMegabits)
- "From megabit to terabyte and back", (fun x -> Megabit.create x |> Megabit.toTerabytes |> Terabyte.toMegabits)
- "From megabit to petabyte and back", (fun x -> Megabit.create x |> Megabit.toPetabytes |> Petabyte.toMegabits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gigabitConversionTests =
- [
- "From gigabit to bit and back", (fun x -> Gigabit.create x |> Gigabit.toBits |> Bit.toGigabits)
- "From gigabit to kilobit and back", (fun x -> Gigabit.create x |> Gigabit.toKilobits |> Kilobit.toGigabits)
- "From gigabit to megabit and back", (fun x -> Gigabit.create x |> Gigabit.toMegabits |> Megabit.toGigabits)
- "From gigabit to terabit and back", (fun x -> Gigabit.create x |> Gigabit.toTerabits |> Terabit.toGigabits)
- "From gigabit to petabit and back", (fun x -> Gigabit.create x |> Gigabit.toPetabits |> Petabit.toGigabits)
- "From gigabit to byte and back", (fun x -> Gigabit.create x |> Gigabit.toBytes |> Byte.toGigabits)
- "From gigabit to kilobyte and back", (fun x -> Gigabit.create x |> Gigabit.toKilobytes |> Kilobyte.toGigabits)
- "From gigabit to megabyte and back", (fun x -> Gigabit.create x |> Gigabit.toMegabytes |> Megabyte.toGigabits)
- "From gigabit to gigabyte and back", (fun x -> Gigabit.create x |> Gigabit.toGigabytes |> Gigabyte.toGigabits)
- "From gigabit to terabyte and back", (fun x -> Gigabit.create x |> Gigabit.toTerabytes |> Terabyte.toGigabits)
- "From gigabit to petabyte and back", (fun x -> Gigabit.create x |> Gigabit.toPetabytes |> Petabyte.toGigabits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let terabitConversionTests =
- [
- "From terabit to bit and back", (fun x -> Terabit.create x |> Terabit.toBits |> Bit.toTerabits)
- "From terabit to kilobit and back", (fun x -> Terabit.create x |> Terabit.toKilobits |> Kilobit.toTerabits)
- "From terabit to megabit and back", (fun x -> Terabit.create x |> Terabit.toMegabits |> Megabit.toTerabits)
- "From terabit to gigabit and back", (fun x -> Terabit.create x |> Terabit.toGigabits |> Gigabit.toTerabits)
- "From terabit to petabit and back", (fun x -> Terabit.create x |> Terabit.toPetabits |> Petabit.toTerabits)
- "From terabit to byte and back", (fun x -> Terabit.create x |> Terabit.toBytes |> Byte.toTerabits)
- "From terabit to kilobyte and back", (fun x -> Terabit.create x |> Terabit.toKilobytes |> Kilobyte.toTerabits)
- "From terabit to megabyte and back", (fun x -> Terabit.create x |> Terabit.toMegabytes |> Megabyte.toTerabits)
- "From terabit to gigabyte and back", (fun x -> Terabit.create x |> Terabit.toGigabytes |> Gigabyte.toTerabits)
- "From terabit to terabyte and back", (fun x -> Terabit.create x |> Terabit.toTerabytes |> Terabyte.toTerabits)
- "From terabit to petabyte and back", (fun x -> Terabit.create x |> Terabit.toPetabytes |> Petabyte.toTerabits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let petabitConversionTests =
- [
- "From petabit to bit and back", (fun x -> Petabit.create x |> Petabit.toBits |> Bit.toPetabits)
- "From petabit to kilobit and back", (fun x -> Petabit.create x |> Petabit.toKilobits |> Kilobit.toPetabits)
- "From petabit to megabit and back", (fun x -> Petabit.create x |> Petabit.toMegabits |> Megabit.toPetabits)
- "From petabit to gigabit and back", (fun x -> Petabit.create x |> Petabit.toGigabits |> Gigabit.toPetabits)
- "From petabit to terabit and back", (fun x -> Petabit.create x |> Petabit.toTerabits |> Terabit.toPetabits)
- "From petabit to byte and back", (fun x -> Petabit.create x |> Petabit.toBytes |> Byte.toPetabits)
- "From petabit to kilobyte and back", (fun x -> Petabit.create x |> Petabit.toKilobytes |> Kilobyte.toPetabits)
- "From petabit to megabyte and back", (fun x -> Petabit.create x |> Petabit.toMegabytes |> Megabyte.toPetabits)
- "From petabit to gigabyte and back", (fun x -> Petabit.create x |> Petabit.toGigabytes |> Gigabyte.toPetabits)
- "From petabit to terabyte and back", (fun x -> Petabit.create x |> Petabit.toTerabytes |> Terabyte.toPetabits)
- "From petabit to petabyte and back", (fun x -> Petabit.create x |> Petabit.toPetabytes |> Petabyte.toPetabits)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let byteConversionTests =
- [
- "From byte to bit and back", (fun x -> Byte.create x |> Byte.toBits |> Bit.toBytes)
- "From byte to kilobit and back", (fun x -> Byte.create x |> Byte.toKilobits |> Kilobit.toBytes)
- "From byte to megabit and back", (fun x -> Byte.create x |> Byte.toMegabits |> Megabit.toBytes)
- "From byte to gigabit and back", (fun x -> Byte.create x |> Byte.toGigabits |> Gigabit.toBytes)
- "From byte to terabit and back", (fun x -> Byte.create x |> Byte.toTerabits |> Terabit.toBytes)
- "From byte to petabit and back", (fun x -> Byte.create x |> Byte.toPetabits |> Petabit.toBytes)
- "From byte to kilobyte and back", (fun x -> Byte.create x |> Byte.toKilobytes |> Kilobyte.toBytes)
- "From byte to megabyte and back", (fun x -> Byte.create x |> Byte.toMegabytes |> Megabyte.toBytes)
- "From byte to gigabyte and back", (fun x -> Byte.create x |> Byte.toGigabytes |> Gigabyte.toBytes)
- "From byte to terabyte and back", (fun x -> Byte.create x |> Byte.toTerabytes |> Terabyte.toBytes)
- "From byte to petabyte and back", (fun x -> Byte.create x |> Byte.toPetabytes |> Petabyte.toBytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilobyteConversionTests =
- [
- "From kilobyte to bit and back", (fun x -> Kilobyte.create x |> Kilobyte.toBits |> Bit.toKilobytes)
- "From kilobyte to kilobit and back", (fun x -> Kilobyte.create x |> Kilobyte.toKilobits |> Kilobit.toKilobytes)
- "From kilobyte to megabit and back", (fun x -> Kilobyte.create x |> Kilobyte.toMegabits |> Megabit.toKilobytes)
- "From kilobyte to gigabit and back", (fun x -> Kilobyte.create x |> Kilobyte.toGigabits |> Gigabit.toKilobytes)
- "From kilobyte to terabit and back", (fun x -> Kilobyte.create x |> Kilobyte.toTerabits |> Terabit.toKilobytes)
- "From kilobyte to petabit and back", (fun x -> Kilobyte.create x |> Kilobyte.toPetabits |> Petabit.toKilobytes)
- "From kilobyte to byte and back", (fun x -> Kilobyte.create x |> Kilobyte.toBytes |> Byte.toKilobytes)
- "From kilobyte to megabyte and back", (fun x -> Kilobyte.create x |> Kilobyte.toMegabytes |> Megabyte.toKilobytes)
- "From kilobyte to gigabyte and back", (fun x -> Kilobyte.create x |> Kilobyte.toGigabytes |> Gigabyte.toKilobytes)
- "From kilobyte to terabyte and back", (fun x -> Kilobyte.create x |> Kilobyte.toTerabytes |> Terabyte.toKilobytes)
- "From kilobyte to petabyte and back", (fun x -> Kilobyte.create x |> Kilobyte.toPetabytes |> Petabyte.toKilobytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megabyteConversionTests =
- [
- "From megabyte to bit and back", (fun x -> Megabyte.create x |> Megabyte.toBits |> Bit.toMegabytes)
- "From megabyte to kilobit and back", (fun x -> Megabyte.create x |> Megabyte.toKilobits |> Kilobit.toMegabytes)
- "From megabyte to megabit and back", (fun x -> Megabyte.create x |> Megabyte.toMegabits |> Megabit.toMegabytes)
- "From megabyte to gigabit and back", (fun x -> Megabyte.create x |> Megabyte.toGigabits |> Gigabit.toMegabytes)
- "From megabyte to terabit and back", (fun x -> Megabyte.create x |> Megabyte.toTerabits |> Terabit.toMegabytes)
- "From megabyte to petabit and back", (fun x -> Megabyte.create x |> Megabyte.toPetabits |> Petabit.toMegabytes)
- "From megabyte to byte and back", (fun x -> Megabyte.create x |> Megabyte.toBytes |> Byte.toMegabytes)
- "From megabyte to kilobyte and back", (fun x -> Megabyte.create x |> Megabyte.toKilobytes |> Kilobyte.toMegabytes)
- "From megabyte to gigabyte and back", (fun x -> Megabyte.create x |> Megabyte.toGigabytes |> Gigabyte.toMegabytes)
- "From megabyte to terabyte and back", (fun x -> Megabyte.create x |> Megabyte.toTerabytes |> Terabyte.toMegabytes)
- "From megabyte to petabyte and back", (fun x -> Megabyte.create x |> Megabyte.toPetabytes |> Petabyte.toMegabytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gigabyteConversionTests =
- [
- "From gigabyte to bit and back", (fun x -> Gigabyte.create x |> Gigabyte.toBits |> Bit.toGigabytes)
- "From gigabyte to kilobit and back", (fun x -> Gigabyte.create x |> Gigabyte.toKilobits |> Kilobit.toGigabytes)
- "From gigabyte to megabit and back", (fun x -> Gigabyte.create x |> Gigabyte.toMegabits |> Megabit.toGigabytes)
- "From gigabyte to gigabit and back", (fun x -> Gigabyte.create x |> Gigabyte.toGigabits |> Gigabit.toGigabytes)
- "From gigabyte to terabit and back", (fun x -> Gigabyte.create x |> Gigabyte.toTerabits |> Terabit.toGigabytes)
- "From gigabyte to petabit and back", (fun x -> Gigabyte.create x |> Gigabyte.toPetabits |> Petabit.toGigabytes)
- "From gigabyte to byte and back", (fun x -> Gigabyte.create x |> Gigabyte.toBytes |> Byte.toGigabytes)
- "From gigabyte to kilobyte and back", (fun x -> Gigabyte.create x |> Gigabyte.toKilobytes |> Kilobyte.toGigabytes)
- "From gigabyte to megabyte and back", (fun x -> Gigabyte.create x |> Gigabyte.toMegabytes |> Megabyte.toGigabytes)
- "From gigabyte to terabyte and back", (fun x -> Gigabyte.create x |> Gigabyte.toTerabytes |> Terabyte.toGigabytes)
- "From gigabyte to petabyte and back", (fun x -> Gigabyte.create x |> Gigabyte.toPetabytes |> Petabyte.toGigabytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let terabyteConversionTests =
- [
- "From terabyte to bit and back", (fun x -> Terabyte.create x |> Terabyte.toBits |> Bit.toTerabytes)
- "From terabyte to kilobit and back", (fun x -> Terabyte.create x |> Terabyte.toKilobits |> Kilobit.toTerabytes)
- "From terabyte to megabit and back", (fun x -> Terabyte.create x |> Terabyte.toMegabits |> Megabit.toTerabytes)
- "From terabyte to gigabit and back", (fun x -> Terabyte.create x |> Terabyte.toGigabits |> Gigabit.toTerabytes)
- "From terabyte to terabit and back", (fun x -> Terabyte.create x |> Terabyte.toTerabits |> Terabit.toTerabytes)
- "From terabyte to petabit and back", (fun x -> Terabyte.create x |> Terabyte.toPetabits |> Petabit.toTerabytes)
- "From terabyte to byte and back", (fun x -> Terabyte.create x |> Terabyte.toBytes |> Byte.toTerabytes)
- "From terabyte to kilobyte and back", (fun x -> Terabyte.create x |> Terabyte.toKilobytes |> Kilobyte.toTerabytes)
- "From terabyte to megabyte and back", (fun x -> Terabyte.create x |> Terabyte.toMegabytes |> Megabyte.toTerabytes)
- "From terabyte to gigabyte and back", (fun x -> Terabyte.create x |> Terabyte.toGigabytes |> Gigabyte.toTerabytes)
- "From terabyte to petabyte and back", (fun x -> Terabyte.create x |> Terabyte.toPetabytes |> Petabyte.toTerabytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let petabyteConversionTests =
- [
- "From petabyte to bit and back", (fun x -> Petabyte.create x |> Petabyte.toBits |> Bit.toPetabytes)
- "From petabyte to kilobit and back", (fun x -> Petabyte.create x |> Petabyte.toKilobits |> Kilobit.toPetabytes)
- "From petabyte to megabit and back", (fun x -> Petabyte.create x |> Petabyte.toMegabits |> Megabit.toPetabytes)
- "From petabyte to gigabit and back", (fun x -> Petabyte.create x |> Petabyte.toGigabits |> Gigabit.toPetabytes)
- "From petabyte to terabit and back", (fun x -> Petabyte.create x |> Petabyte.toTerabits |> Terabit.toPetabytes)
- "From petabyte to petabit and back", (fun x -> Petabyte.create x |> Petabyte.toPetabits |> Petabit.toPetabytes)
- "From petabyte to byte and back", (fun x -> Petabyte.create x |> Petabyte.toBytes |> Byte.toPetabytes)
- "From petabyte to kilobyte and back", (fun x -> Petabyte.create x |> Petabyte.toKilobytes |> Kilobyte.toPetabytes)
- "From petabyte to megabyte and back", (fun x -> Petabyte.create x |> Petabyte.toMegabytes |> Megabyte.toPetabytes)
- "From petabyte to gigabyte and back", (fun x -> Petabyte.create x |> Petabyte.toGigabytes |> Gigabyte.toPetabytes)
- "From petabyte to terabyte and back", (fun x -> Petabyte.create x |> Petabyte.toTerabytes |> Terabyte.toPetabytes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Data storage tests -> " [
- testList "Bit conversion tests -> " bitConversionTests
- testList "Kilobit conversion tests -> " kilobitConversionTests
- testList "Megabit conversion tests -> " megabitConversionTests
- testList "Gigabit conversion tests -> " gigabitConversionTests
- testList "Terabit conversion tests -> " terabitConversionTests
- testList "Petabit conversion tests -> " petabitConversionTests
- testList "Byte conversion tests -> " byteConversionTests
- testList "Kilobyte conversion tests -> " kilobyteConversionTests
- testList "Megabyte conversion tests -> " megabyteConversionTests
- testList "Gigabyte conversion tests -> " gigabyteConversionTests
- testList "Terabyte conversion tests -> " terabyteConversionTests
- testList "Petabyte conversion tests -> " petabyteConversionTests
- ]
-
-[]
-let fuelEconomyTests config =
-
- let kilometerPerLiterConversionTests =
- [
- "From km/l to mpg", (fun x -> KilometerPerLiter.create x |> KilometerPerLiter.toMilesPerGallon |> MilePerGallon.toKilometersPerLiter)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let milePerGallonConversionTests =
- [
- "From mpg to km/l", (fun x -> MilePerGallon.create x |> MilePerGallon.toKilometersPerLiter |> KilometerPerLiter.toMilesPerGallon)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Fuel economy tests -> " [
- testList "Kilometer per liter tests -> " kilometerPerLiterConversionTests
- testList "Mile per gallon tests -> " milePerGallonConversionTests
- ]
-
-[]
-let frequencyTests config =
-
- let hertzConversionTest =
- [
- "From hertz to kilohertz and back", (fun x -> Hertz.create x |> Hertz.toKilohertz |> Kilohertz.toHertz)
- "From hertz to megahertz and back", (fun x -> Hertz.create x |> Hertz.toMegahertz |> Megahertz.toHertz)
- "From hertz to gigahertz and back", (fun x -> Hertz.create x |> Hertz.toGigahertz |> Gigahertz.toHertz)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let kilohertzConversionTest =
- [
- "From kilohertz to hertz and back", (fun x -> Kilohertz.create x |> Kilohertz.toHertz |> Hertz.toKilohertz)
- "From kilohertz to megahertz and back", (fun x -> Kilohertz.create x |> Kilohertz.toMegahertz |> Megahertz.toKilohertz)
- "From kilohertz to gigahertz and back", (fun x -> Kilohertz.create x |> Kilohertz.toGigahertz |> Gigahertz.toKilohertz)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let megahertzConversionTest =
- [
- "From megahertz to hertz and back", (fun x -> Megahertz.create x |> Megahertz.toHertz |> Hertz.toMegahertz)
- "From megahertz to kilohertz and back", (fun x -> Megahertz.create x |> Megahertz.toKilohertz |> Kilohertz.toMegahertz)
- "From megahertz to gigahertz and back", (fun x -> Megahertz.create x |> Megahertz.toGigahertz |> Gigahertz.toMegahertz)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let gigahertzConversionTest =
- [
- "From gigahertz to hertz and back", (fun x -> Gigahertz.create x |> Gigahertz.toHertz |> Hertz.toGigahertz)
- "From gigahertz to kilohertz and back", (fun x -> Gigahertz.create x |> Gigahertz.toKilohertz |> Kilohertz.toGigahertz)
- "From gigahertz to megahertz and back", (fun x -> Gigahertz.create x |> Gigahertz.toMegahertz |> Megahertz.toGigahertz)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Frequency tests -> " [
- testList "Hertz conversion tests -> " hertzConversionTest
- testList "Kilohertz conversion tests -> " kilohertzConversionTest
- testList "Megahertz conversion tests -> " megahertzConversionTest
- testList "Gigahertz conversion tests -> " gigahertzConversionTest
- ]
-
-[]
-let illuminanceTests config =
-
- let footcandleConversionTests =
- [
- "From footcandle to lux and back", (fun x -> Footcandle.create x |> Footcandle.toLux |> Lux.toFootcandle)
- "From footcandle to phot and back", (fun x -> Footcandle.create x |> Footcandle.toPhot |> Phot.toFootcandle)
- "From footcandle to nox and back", (fun x -> Footcandle.create x |> Footcandle.toNox |> Nox.toFootcandle)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let luxConversionTests =
- [
- "From lux to footcandle and back", (fun x -> Lux.create x |> Lux.toFootcandle |> Footcandle.toLux)
- "From lux to phot and back", (fun x -> Lux.create x |> Lux.toPhot |> Phot.toLux)
- "From lux to nox and back", (fun x -> Lux.create x |> Lux.toNox |> Nox.toLux)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let photConversionTests =
- [
- "From phot to footcandle and back", (fun x -> Phot.create x |> Phot.toFootcandle |> Footcandle.toPhot)
- "From phot to lux and back", (fun x -> Phot.create x |> Phot.toLux |> Lux.toPhot)
- "From phot to nox and back", (fun x -> Phot.create x |> Phot.toNox |> Nox.toPhot)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let noxConversionTests =
- [
- "From nox to footcandle and back", (fun x -> Nox.create x |> Nox.toFootcandle |> Footcandle.toNox)
- "From nox to lux and back", (fun x -> Nox.create x |> Nox.toLux |> Lux.toNox)
- "From nox to phot and back", (fun x -> Nox.create x |> Nox.toPhot |> Phot.toNox)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Illuminance tests -> " [
- testList "Footcandle conversion tests -> " footcandleConversionTests
- testList "Lux conversion tests -> " luxConversionTests
- testList "Phot conversion tests -> " photConversionTests
- testList "Nox conversion tests -> " noxConversionTests
- ]
-
-[]
-let currentTests config =
-
- let ampereConversionTests =
- [
- "From ampere to milliampere and back", (fun x -> Ampere.create x |> Ampere.toMilliamperes |> Milliampere.toAmperes)
- "From ampere to microampere and back", (fun x -> Ampere.create x |> Ampere.toMicroamperes |> Microampere.toAmperes)
- "From ampere to biot and back", (fun x -> Ampere.create x |> Ampere.toBiots |> Biot.toAmperes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let milliampereConversionTests =
- [
- "From milliampere to ampere and back", (fun x -> Milliampere.create x |> Milliampere.toAmperes |> Ampere.toMilliamperes)
- "From milliampere to microampere and back", (fun x -> Milliampere.create x |> Milliampere.toMicroamperes |> Microampere.toMilliamperes)
- "From milliampere to biot and back", (fun x -> Milliampere.create x |> Milliampere.toBiots |> Biot.toMilliamperes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let microampereConversionTests =
- [
- "From microampere to ampere and back", (fun x -> Microampere.create x |> Microampere.toAmperes |> Ampere.toMicroamperes)
- "From microampere to milliampere and back", (fun x -> Microampere.create x |> Microampere.toMilliamperes |> Milliampere.toMicroamperes)
- "From microampere to biot and back", (fun x -> Microampere.create x |> Microampere.toBiots |> Biot.toMicroamperes)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- let biotConversionTests =
- [
- "From biot to ampere and back", (fun x -> Biot.create x |> Biot.toAmperes |> Ampere.toBiots)
- "From biot to milliampere and back", (fun x -> Biot.create x |> Biot.toMilliamperes |> Milliampere.toBiots)
- "From biot to microampere and back", (fun x -> Biot.create x |> Biot.toMicroamperes |> Microampere.toBiots)
- ]
- |> List.map (fun (x,y) -> testConversionRoundingError config Accuracy.high x y)
-
- testList "Current tests -> " [
- testList "Ampere conversion tests -> " ampereConversionTests
- testList "Milliampere conversion tests -> " milliampereConversionTests
- testList "Microampere conversion tests -> " microampereConversionTests
- testList "Biot conversion tests -> " biotConversionTests
- ]
diff --git a/Fs.Units.Tests.Unit/paket.references b/Fs.Units.Tests.Unit/paket.references
deleted file mode 100644
index e95d5ee..0000000
--- a/Fs.Units.Tests.Unit/paket.references
+++ /dev/null
@@ -1,6 +0,0 @@
-Expecto
-Expecto.FsCheck
-FsCheck
-YoloDev.Expecto.TestSdk
-Microsoft.NET.Test.Sdk
-FSharp.Core
\ No newline at end of file
diff --git a/Fs.Units.sln b/Fs.Units.sln
index be7dd6d..6518822 100644
--- a/Fs.Units.sln
+++ b/Fs.Units.sln
@@ -3,17 +3,38 @@ Microsoft Visual Studio Solution File, Format Version 12.00
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{1995D6F3-A6E2-4A80-AC74-65ED82E7D935}"
ProjectSection(SolutionItems) = preProject
paket.dependencies = paket.dependencies
+ paket.lock = paket.lock
EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units", "Fs.Units\Fs.Units.fsproj", "{0BEF09E5-F0DB-4E5C-A2A7-5A0B4ABCD8E6}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".config", ".config", "{F1E793FB-AD0A-4021-AA39-325C6ADCD027}"
+ ProjectSection(SolutionItems) = preProject
+ .config\dotnet-tools.json = .config\dotnet-tools.json
+ .editorconfig = .editorconfig
+ global.json = global.json
+ .fantomasignore = .fantomasignore
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{176FA884-3899-42F0-BDFD-B3875FC54579}"
+ ProjectSection(SolutionItems) = preProject
+ RELEASE_NOTES.md = RELEASE_NOTES.md
+ README.md = README.md
+ EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units.Tests.Unit", "Fs.Units.Tests.Unit\Fs.Units.Tests.Unit.fsproj", "{E39D2DE0-2DF8-466C-A8E3-9334585E2FA0}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{179F015A-544E-4E2D-9A3E-13E5B2D0E332}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units.Tests.Benchmark", "Fs.Units.Tests.Benchmark\Fs.Units.Tests.Benchmark.fsproj", "{32FF53B5-CFF9-447A-9ACE-BACB878C22B0}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{4830CA8B-7A33-4ED2-AC09-3165C26BD552}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fs.Units.CSharp", "Fs.Units.CSharp\Fs.Units.CSharp.csproj", "{BEDDB7E3-5CF7-4CFA-9372-4609035EEB9F}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units", "src\Fs.Units\Fs.Units.fsproj", "{C5F26AD4-464D-4664-8BD0-D4AE84B22D50}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fs.Units.CSharp.Tests.Benchmark", "Fs.Units.CSharp.Tests.Benchmark\Fs.Units.CSharp.Tests.Benchmark.csproj", "{39B6654C-ADA0-4B17-86F6-5C5C3CACFB06}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fs.Units.CSharp", "src\Fs.Units.CSharp\Fs.Units.CSharp.csproj", "{C46654E1-5365-4A6B-98E1-C82C38719193}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units.Tests.Unit", "tests\Fs.Units.Tests.Unit\Fs.Units.Tests.Unit.fsproj", "{F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fs.Units.Tests.Benchmark", "benchmarks\Fs.Units.Tests.Benchmark\Fs.Units.Tests.Benchmark.fsproj", "{91929E4F-920D-48B9-84BE-994DD9685017}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fs.Units.CSharp.Tests.Benchmark", "benchmarks\Fs.Units.CSharp.Tests.Benchmark\Fs.Units.CSharp.Tests.Benchmark.csproj", "{70E86CB4-BB1B-430C-8D5E-B66D94C97CFA}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "build", "build\build.fsproj", "{C58EC2C4-D8D1-424A-BB59-73AC2AB8418F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,25 +42,36 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0BEF09E5-F0DB-4E5C-A2A7-5A0B4ABCD8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0BEF09E5-F0DB-4E5C-A2A7-5A0B4ABCD8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0BEF09E5-F0DB-4E5C-A2A7-5A0B4ABCD8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0BEF09E5-F0DB-4E5C-A2A7-5A0B4ABCD8E6}.Release|Any CPU.Build.0 = Release|Any CPU
- {E39D2DE0-2DF8-466C-A8E3-9334585E2FA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E39D2DE0-2DF8-466C-A8E3-9334585E2FA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E39D2DE0-2DF8-466C-A8E3-9334585E2FA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E39D2DE0-2DF8-466C-A8E3-9334585E2FA0}.Release|Any CPU.Build.0 = Release|Any CPU
- {32FF53B5-CFF9-447A-9ACE-BACB878C22B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {32FF53B5-CFF9-447A-9ACE-BACB878C22B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {32FF53B5-CFF9-447A-9ACE-BACB878C22B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {32FF53B5-CFF9-447A-9ACE-BACB878C22B0}.Release|Any CPU.Build.0 = Release|Any CPU
- {BEDDB7E3-5CF7-4CFA-9372-4609035EEB9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEDDB7E3-5CF7-4CFA-9372-4609035EEB9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEDDB7E3-5CF7-4CFA-9372-4609035EEB9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEDDB7E3-5CF7-4CFA-9372-4609035EEB9F}.Release|Any CPU.Build.0 = Release|Any CPU
- {39B6654C-ADA0-4B17-86F6-5C5C3CACFB06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {39B6654C-ADA0-4B17-86F6-5C5C3CACFB06}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {39B6654C-ADA0-4B17-86F6-5C5C3CACFB06}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {39B6654C-ADA0-4B17-86F6-5C5C3CACFB06}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C5F26AD4-464D-4664-8BD0-D4AE84B22D50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C5F26AD4-464D-4664-8BD0-D4AE84B22D50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C5F26AD4-464D-4664-8BD0-D4AE84B22D50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C5F26AD4-464D-4664-8BD0-D4AE84B22D50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C46654E1-5365-4A6B-98E1-C82C38719193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C46654E1-5365-4A6B-98E1-C82C38719193}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C46654E1-5365-4A6B-98E1-C82C38719193}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C46654E1-5365-4A6B-98E1-C82C38719193}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {91929E4F-920D-48B9-84BE-994DD9685017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91929E4F-920D-48B9-84BE-994DD9685017}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91929E4F-920D-48B9-84BE-994DD9685017}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {91929E4F-920D-48B9-84BE-994DD9685017}.Release|Any CPU.Build.0 = Release|Any CPU
+ {70E86CB4-BB1B-430C-8D5E-B66D94C97CFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70E86CB4-BB1B-430C-8D5E-B66D94C97CFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70E86CB4-BB1B-430C-8D5E-B66D94C97CFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {70E86CB4-BB1B-430C-8D5E-B66D94C97CFA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C58EC2C4-D8D1-424A-BB59-73AC2AB8418F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C58EC2C4-D8D1-424A-BB59-73AC2AB8418F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C58EC2C4-D8D1-424A-BB59-73AC2AB8418F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C58EC2C4-D8D1-424A-BB59-73AC2AB8418F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C5F26AD4-464D-4664-8BD0-D4AE84B22D50} = {176FA884-3899-42F0-BDFD-B3875FC54579}
+ {C46654E1-5365-4A6B-98E1-C82C38719193} = {176FA884-3899-42F0-BDFD-B3875FC54579}
+ {F0FA4235-A49E-4AE3-A1F8-78977B4FE8C5} = {179F015A-544E-4E2D-9A3E-13E5B2D0E332}
+ {91929E4F-920D-48B9-84BE-994DD9685017} = {4830CA8B-7A33-4ED2-AC09-3165C26BD552}
+ {70E86CB4-BB1B-430C-8D5E-B66D94C97CFA} = {4830CA8B-7A33-4ED2-AC09-3165C26BD552}
EndGlobalSection
EndGlobal
diff --git a/Fs.Units/Compound/Area.fs b/Fs.Units/Compound/Area.fs
deleted file mode 100644
index 4fe122c..0000000
--- a/Fs.Units/Compound/Area.fs
+++ /dev/null
@@ -1,73 +0,0 @@
-namespace Fs.Units.Area
-
-open Fs.Units.Length.Units
-
-module Units =
-
- /// Square inch
- [] type in2 = inch * inch
-
- /// Square foot
- [] type ft2 = ft * ft
-
- /// Square centimeter
- [] type cm2 = cm * cm
-
- /// Square meter
- [] type m2 = m * m
-
-open Units
-open Fs.Units.Length
-
-module SquareInch =
-
- let create (x:float) = x * 1.0
- let toSquareFeet (x: float) =
- let length = Inch.create 1 |> Inch.toFeet
- x * length * length / 1.0
- let toSquareCentimeters (x: float) =
- let length = Inch.create 1 |> Inch.toCentimeters
- x * length * length / 1.0
- let toSquareMeters (x: float) =
- let length = Inch.create 1 |> Inch.toMeters
- x * length * length / 1.0
-
-module SquareFoot =
-
- let create (x:float) = x * 1.0
- let toSquareInches (x: float) =
- let length = Foot.create 1 |> Foot.toInches
- x * (length * length) / 1.0
- let toSquareCentimeters (x: float) =
- let length = Foot.create 1 |> Foot.toCentimeters
- x * length * length / 1.0
- let toSquareMeters (x: float) =
- let length = Foot.create 1 |> Foot.toMeters
- x * length * length / 1.0
-
-module SquareCentimeter =
-
- let create (x:float) = x * 1.0
- let toSquareInches (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toInches
- x * length * length / 1.0
- let toSquareFeet (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toFeet
- x * length * length / 1.0
- let toSquareMeters (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toMeters
- x * length * length / 1.0
-
-module SquareMeter =
-
- let create (x:float) = x * 1.0
- let toSquareInches (x: float) =
- let length = Meter.create 1 |> Meter.toInches
- x * length * length / 1.0
- let toSquareFeet (x: float) =
- let length = Meter.create 1 |> Meter.toFeet
- x * length * length / 1.0
- let toSquareCentimeters (x: float) =
- let length = Meter.create 1 |> Meter.toCentimeters
- x * length * length / 1.0
-
\ No newline at end of file
diff --git a/Fs.Units/Compound/Capacitance.fs b/Fs.Units/Compound/Capacitance.fs
deleted file mode 100644
index dd0d7ea..0000000
--- a/Fs.Units/Compound/Capacitance.fs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace Fs.Units.Capacitance
-
-open Fs.Units
-
-module Units =
-
- /// Farad
- [] type F = Time.Units.s * Time.Units.s * Time.Units.s * Time.Units.s * Current.Units.A * Current.Units.A / Length.Units.m / Length.Units.m / Mass.Units.kg
-
-open Units
-
-module Farad =
-
- let create (x: float) = x * 1.0
diff --git a/Fs.Units/Compound/Density.fs b/Fs.Units/Compound/Density.fs
deleted file mode 100644
index d574b9b..0000000
--- a/Fs.Units/Compound/Density.fs
+++ /dev/null
@@ -1,85 +0,0 @@
-namespace Fs.Units.Density
-
-open Fs.Units
-
-module Units =
-
- /// Kilogram per cubic meter
- [] type kgm3 = Mass.Units.kg / Volume.Units.m3
-
- /// Gram per cubic centimeter
- [] type gcm3 = Mass.Units.g / Volume.Units.cm3
-
- /// Pound mass per cubic foot
- [] type lbmft3 = Mass.Units.lbm / Volume.Units.ft3
-
- /// Pound mass per cubic inch
- [] type lbmin3 = Mass.Units.lbm / Volume.Units.in3
-
-open Units
-open Fs.Units.Volume
-open Fs.Units.Mass
-
-module KilogramPerCubicMeter =
-
- let create (x: float) = x * 1.0
- let toGramsPerCubicCentimeter (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toGrams
- let volume = CubicMeter.create 1 |> CubicMeter.toCubicCentimeters
- x * mass / volume / 1.0
- let toPoundMassPerCubicFoot (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toPoundMass
- let volume = CubicMeter.create 1 |> CubicMeter.toCubicFeet
- x * mass / volume / 1.0
- let toPoundMassPerCubicInch (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toPoundMass
- let volume = CubicMeter.create 1 |> CubicMeter.toCubicInches
- x * mass / volume / 1.0
-
-module GramPerCubicCentimeter =
-
- let create (x: float) = x * 1.0
- let toKilogramsPerCubicMeter (x: float) =
- let mass = Gram.create 1 |> Gram.toKilograms
- let volume = CubicCentimeter.create 1 |> CubicCentimeter.toCubicMeters
- x * mass / volume / 1.0
- let toPoundMassPerCubicFoot (x: float) =
- let mass = Gram.create 1 |> Gram.toPoundMass
- let volume = CubicCentimeter.create 1 |> CubicCentimeter.toCubicFeet
- x * mass / volume / 1.0
- let toPoundMassPerCubicInch (x: float) =
- let mass = Gram.create 1 |> Gram.toPoundMass
- let volume = CubicCentimeter.create 1 |> CubicCentimeter.toCubicInches
- x * mass / volume / 1.0
-
-module PoundMassPerCubicFoot =
-
- let create (x: float) = x * 1.0
- let toKilogramsPerCubicMeter (x: float) =
- let mass = PoundMass.create 1 |> PoundMass.toKilograms
- let volume = CubicFoot.create 1 |> CubicFoot.toCubicMeters
- x * mass / volume / 1.0
- let toGramsPerCubicCentimeter (x: float) =
- let mass = PoundMass.create 1 |> PoundMass.toGrams
- let volume = CubicFoot.create 1 |> CubicFoot.toCubicCentimeters
- x * mass / volume / 1.0
- let toPoundMassPerCubicInch (x: float) =
- let mass = PoundMass.create 1
- let volume = CubicFoot.create 1 |> CubicFoot.toCubicInches
- x * mass / volume / 1.0
-
-module PoundMassPerCubicInch =
-
- let create (x: float) = x * 1.0
- let toKilogramsPerCubicMeter (x: float) =
- let mass = PoundMass.create 1 |> PoundMass.toKilograms
- let volume = CubicInch.create 1 |> CubicInch.toCubicMeters
- x * mass / volume / 1.0
- let toGramsPerCubicCentimeter (x: float) =
- let mass = PoundMass.create 1 |> PoundMass.toGrams
- let volume = CubicInch.create 1 |> CubicInch.toCubicCentimeters
- x * mass / volume / 1.0
- let toPoundMassPerCubicFoot (x: float) =
- let mass = PoundMass.create 1
- let volume = CubicInch.create 1 |> CubicInch.toCubicFeet
- x * mass / volume / 1.0
\ No newline at end of file
diff --git a/Fs.Units/Compound/ElectricCharge.fs b/Fs.Units/Compound/ElectricCharge.fs
deleted file mode 100644
index 1929787..0000000
--- a/Fs.Units/Compound/ElectricCharge.fs
+++ /dev/null
@@ -1,47 +0,0 @@
-namespace Fs.Units.ElectricCharge
-
-open Fs.Units
-
-module Units =
-
- /// Coloumb
- [] type C = Current.Units.A * Time.Units.s
-
- /// Ampere-hour
- [] type Ah = Current.Units.A * Time.Units.hr
-
- /// Ampere-second
- [] type As = Current.Units.A * Time.Units.s
-
-open Units
-open Fs.Units.Current
-open Fs.Units.Time
-
-module Coloumb =
-
- let create (x: float) = x * 1.0
- let toAmpereHours (x: float) =
- let current = Ampere.create 1
- let time = Second.create 1 |> Second.toHours
- x * current * time / 1.0
- let toAmpereSeconds (x: float) = x * 1.0 / 1.0
-
-module AmpereHour =
- let create (x: float) = x * 1.0
- let toColoumbs (x: float) =
- let current = Ampere.create 1
- let time = Hour.create 1 |> Hour.toSeconds
- x * current * time / 1.0
- let toAmpereSeconds (x: float) =
- let current = Ampere.create 1
- let time = Hour.create 1 |> Hour.toSeconds
- x * current * time / 1.0
-
-module AmpereSecond =
-
- let create (x: float) = x * 1.0
- let toColoumbs (x: float) = x * 1.0 / 1.0
- let toAmpereHours (x: float) =
- let current = Ampere.create 1
- let time = Second.create 1 |> Second.toHours
- x * current * time / 1.0
\ No newline at end of file
diff --git a/Fs.Units/Compound/Force.fs b/Fs.Units/Compound/Force.fs
deleted file mode 100644
index 6d0324d..0000000
--- a/Fs.Units/Compound/Force.fs
+++ /dev/null
@@ -1,74 +0,0 @@
-namespace Fs.Units.Force
-
-open Fs.Units
-
-module Units =
-
- /// Newton
- [] type N = Mass.Units.kg * Length.Units.m / (Time.Units.s * Time.Units.s)
-
- /// Pound force
- [] type lbf = Mass.Units.lbm * Length.Units.ft / (Time.Units.s * Time.Units.s)
-
- /// Dyne
- [] type dyn = Mass.Units.g * Length.Units.cm / (Time.Units.s * Time.Units.s)
-
- /// Kip
- [] type kip
-
-open Units
-open Fs.Units.Mass
-open Fs.Units.Length
-open Fs.Units.Time
-
-module Newton =
-
- let create (x: float) = x * 1.0
- let toPoundForce (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toPoundMass
- let length = Meter.create 1 |> Meter.toFeet
- let time = Second.create 1
- x * mass * length / time / time / 1.0
- let toDynes (x: float) =
- let mass = Kilogram.create 1 |> Kilogram.toGrams
- let length = Meter.create 1 |> Meter.toCentimeters
- let time = Second.create 1
- x * mass * length / time / time / 1.0
- let toKips (x: float) = x * 2.24809e-4 / 1.0
-
-module PoundForce =
-
- let create (x: float) = x * 1.0
- let toNewtons (x: float) =
- let a = PoundMass.create 1 |> PoundMass.toKilograms
- let b = Foot.create 1 |> Foot.toMeters
- let time = Second.create 1
- x * a * b / time / time / 1.0
- let toDynes (x: float) =
- let mass = PoundMass.create 1 |> PoundMass.toGrams
- let length = Foot.create 1 |> Foot.toCentimeters
- let time = Second.create 1
- x * mass * length / time / time / 1.0
- let toKips (x: float) = x * 0.001 / 1.0
-
-module Dyne =
-
- let create (x: float) = x * 1.0
- let toNewtons (x: float) =
- let mass = Gram.create 1 |> Gram.toKilograms
- let length = Centimeter.create 1 |> Centimeter.toMeters
- let time = Second.create 1
- x * mass * length / time / time / 1.0
- let toPoundForce (x: float) =
- let mass = Gram.create 1 |> Gram.toPoundMass
- let length = Centimeter.create 1 |> Centimeter.toFeet
- let time = Second.create 1
- x * mass * length / time / time / 1.0
- let toKips (x: float) = x * 2.24809e-9 / 1.0
-
-module Kip =
-
- let create (x: float) = x * 1.0
- let toNewtons (x: float) = x * 1.0 / 2.24809e-4
- let toPoundForce (x: float) = x * 1.0 / 0.001
- let toDynes (x: float) = x * 1.0 / 2.24809e-9
\ No newline at end of file
diff --git a/Fs.Units/Compound/Inertia.fs b/Fs.Units/Compound/Inertia.fs
deleted file mode 100644
index 659b857..0000000
--- a/Fs.Units/Compound/Inertia.fs
+++ /dev/null
@@ -1,27 +0,0 @@
-namespace Fs.Units.Inertia
-
-open Fs.Units
-
-module Units =
-
- [] type in4 = Length.Units.inch * Length.Units.inch * Length.Units.inch * Length.Units.inch
-
- []
- type cm4 = Length.Units.cm * Length.Units.cm * Length.Units.cm * Length.Units.cm
-
-open Units
-open Fs.Units.Length
-
-module QuarticInch =
-
- let create (x:float) = x * 1.0
- let toQuarticCentimeters (x: float) =
- let length = Inch.create 1 |> Inch.toCentimeters
- x * length * length * length * length / 1.0
-
-module QuarticCentimeter =
-
- let create (x:float) = x * 1.0
- let toQuarticInches (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toInches
- x * length * length * length * length / 1.0
\ No newline at end of file
diff --git a/Fs.Units/Compound/Pressure.fs b/Fs.Units/Compound/Pressure.fs
deleted file mode 100644
index 834b8d1..0000000
--- a/Fs.Units/Compound/Pressure.fs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace Fs.Units.Pressure
-
-open Fs.Units
-
-module Units =
-
- /// Pascal
- [] type Pa = Force.Units.N / Length.Units.m / Length.Units.m
-
- /// Pounds per square inch
- [] type psi = Force.Units.lbf / Length.Units.inch / Length.Units.inch
-
-open Units
-open Fs.Units.Force
-open Fs.Units.Length
-
-module Pascal =
-
- let create (x: float) = x * 1.0
- let toPoundsPerSquareInch (x: float) =
- let force = Newton.create 1 |> Newton.toPoundForce
- let length = Meter.create 1 |> Meter.toInches
- x * force / length / length / 1.0
-
-module PoundPerSquareInch =
-
- let create (x: float) = x * 1.0
- let toPascals (x: float) =
- let force = PoundForce.create 1 |> PoundForce.toNewtons
- let length = Inch.create 1 |> Inch.toMeters
- x * force / length / length / 1.0
\ No newline at end of file
diff --git a/Fs.Units/Compound/Speed.fs b/Fs.Units/Compound/Speed.fs
deleted file mode 100644
index ab2155b..0000000
--- a/Fs.Units/Compound/Speed.fs
+++ /dev/null
@@ -1,85 +0,0 @@
-namespace Fs.Units.Speed
-
-open Fs.Units
-
-module Units =
-
- /// Feet per second
- [] type fps = Length.Units.ft / Time.Units.s
-
- /// Meter per second
- [] type mps = Length.Units.m / Time.Units.s
-
- /// Kilometer per hour
- [] type kph = Length.Units.km / Time.Units.hr
-
- /// Mile per hour
- [] type mph = Length.Units.mi / Time.Units.hr
-
-open Units
-open Fs.Units.Length
-open Fs.Units.Time
-
-module FootPerSecond =
-
- let create (x: float) = x * 1.0
- let toMetersPerSecond (x: float) =
- let length = Foot.create 1 |> Foot.toMeters
- let time = Second.create 1
- x * length / time / 1.0
- let toKilometersPerHour (x: float) =
- let length = Foot.create 1 |> Foot.toKilometers
- let time = Second.create 1 |> Second.toHours
- x * length / time / 1.0
- let toMilesPerHour (x: float) =
- let length = Foot.create 1 |> Foot.toMiles
- let time = Second.create 1 |> Second.toHours
- x * length / time / 1.0
-
-module MeterPerSecond =
-
- let create (x: float) = x * 1.0
- let toFeetPerSecond (x: float) =
- let length = Meter.create 1 |> Meter.toFeet
- let time = Second.create 1
- x * length / time / 1.0
- let toKilometersPerHour (x: float) =
- let length = Meter.create 1 |> Meter.toKilometers
- let time = Second.create 1 |> Second.toHours
- x * length / time / 1.0
- let toMilesPerHour (x: float) =
- let length = Meter.create 1 |> Meter.toMiles
- let time = Second.create 1 |> Second.toHours
- x * length / time / 1.0
-
-module KilometerPerHour =
-
- let create (x: float) = x * 1.0
- let toFeetPerSecond (x: float) =
- let length = Kilometer.create 1 |> Kilometer.toFeet
- let time = Hour.create 1 |> Hour.toSeconds
- x * length / time / 1.0
- let toMetersPerSecond (x: float) =
- let length = Kilometer.create 1 |> Kilometer.toMeters
- let time = Hour.create 1 |> Hour.toSeconds
- x * length / time / 1.0
- let toMilesPerHour (x: float) =
- let length = Kilometer.create 1 |> Kilometer.toMiles
- let time = Hour.create 1
- x * length / time / 1.0
-
-module MilePerHour =
-
- let create (x: float) = x * 1.0
- let toFeetPerSecond (x: float) =
- let length = Mile.create 1 |> Mile.toFeet
- let time = Hour.create 1 |> Hour.toSeconds
- x * length / time / 1.0
- let toMetersPerSecond (x: float) =
- let length = Mile.create 1 |> Mile.toMeters
- let time = Hour.create 1 |> Hour.toSeconds
- x * length / time / 1.0
- let toKilometersPerHour (x: float) =
- let length = Mile.create 1 |> Mile.toKilometers
- let time = Hour.create 1
- x * length / time / 1.0
\ No newline at end of file
diff --git a/Fs.Units/Compound/Volume.fs b/Fs.Units/Compound/Volume.fs
deleted file mode 100644
index fd639f4..0000000
--- a/Fs.Units/Compound/Volume.fs
+++ /dev/null
@@ -1,73 +0,0 @@
-namespace Fs.Units.Volume
-
-open Fs.Units
-
-module Units =
-
- /// Cubic inch
- [] type in3 = Length.Units.inch * Length.Units.inch * Length.Units.inch
-
- /// Cubic foot
- [] type ft3 = Length.Units.ft * Length.Units.ft * Length.Units.ft
-
- /// Cubic centimeter
- [] type cm3 = Length.Units.cm * Length.Units.cm * Length.Units.cm
-
- /// Cubic meter
- [] type m3 = Length.Units.m * Length.Units.m * Length.Units.m
-
-open Units
-open Fs.Units.Length
-
-module CubicInch =
-
- let create (x: float) = x * 1.0
- let toCubicFeet (x: float) =
- let length = Inch.create 1 |> Inch.toFeet
- x * length * length * length / 1.0
- let toCubicCentimeters (x: float) =
- let length = Inch.create 1 |> Inch.toCentimeters
- x * length * length * length / 1.0
- let toCubicMeters (x: float) =
- let length = Inch.create 1 |> Inch.toMeters
- x * length * length * length / 1.0
-
-module CubicFoot =
-
- let create (x: float) = x * 1.0
- let toCubicInches (x: float) =
- let length = Foot.create 1 |> Foot.toInches
- x * length * length * length / 1.0
- let toCubicCentimeters (x: float) =
- let length = Foot.create 1 |> Foot.toCentimeters
- x * length * length * length / 1.0
- let toCubicMeters (x: float) =
- let length = Foot.create 1 |> Foot.toMeters
- x * length * length * length / 1.0
-
-module CubicCentimeter =
-
- let create (x: float) = x * 1.0
- let toCubicInches (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toInches
- x * length * length * length / 1.0
- let toCubicFeet (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toFeet
- x * length * length * length / 1.0
- let toCubicMeters (x: float) =
- let length = Centimeter.create 1 |> Centimeter.toMeters
- x * length * length * length / 1.0
-
-module CubicMeter =
-
- let create (x: float) = x * 1.0
- let toCubicInches (x: float) =
- let length = Meter.create 1 |> Meter.toInches
- x * length * length * length / 1.0
- let toCubicFeet (x: float) =
- let length = Meter.create 1 |> Meter.toFeet
- x * length * length * length / 1.0
- let toCubicCentimeters (x: float) =
- let length = Meter.create 1 |> Meter.toCentimeters
- x * length * length * length / 1.0
-
diff --git a/Fs.Units/Simple/FuelEconomy.fs b/Fs.Units/Simple/FuelEconomy.fs
deleted file mode 100644
index e3125df..0000000
--- a/Fs.Units/Simple/FuelEconomy.fs
+++ /dev/null
@@ -1,21 +0,0 @@
-namespace Fs.Units.FuelEconomy
-
-module Units =
-
- /// Kilometer per liter
- [] type kml
-
- /// Mile per gallon
- [] type mpg
-
-open Units
-
-module KilometerPerLiter =
-
- let create (x: float) = x * 1.0
- let toMilesPerGallon (x: float) = x * 2.35215 / 1.0
-
-module MilePerGallon =
-
- let create (x: float) = x * 1.0
- let toKilometersPerLiter (x: float) = x / 2.35215 * 1.0
diff --git a/Fs.Units/Simple/Temperature.fs b/Fs.Units/Simple/Temperature.fs
deleted file mode 100644
index 373bf75..0000000
--- a/Fs.Units/Simple/Temperature.fs
+++ /dev/null
@@ -1,45 +0,0 @@
-namespace Fs.Units.Temperature
-
-module Units =
-
- /// Kelvin
- [] type K
-
- /// Celsius
- [] type C
-
- /// Fahrenheit
- [