diff --git a/MathNet.Numerics.NativeProviders.sln b/MathNet.Numerics.NativeProviders.sln
index ae11b13c..cda37c05 100644
--- a/MathNet.Numerics.NativeProviders.sln
+++ b/MathNet.Numerics.NativeProviders.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{5A0892FF-82CE-40FC-BCE1-73810C615F52}"
ProjectSection(SolutionItems) = preProject
@@ -53,6 +53,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{97C9717A
build.fsx = build.fsx
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "src\UnitTests\UnitTests.csproj", "{DAF07AA8-C5C9-4963-98F7-2C3285064DAD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -387,32 +389,80 @@ Global
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Any CPU.Build.0 = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Mixed Platforms.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.Build.0 = Release-Signed|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|Win32.Build.0 = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-CUDA|x64.Build.0 = Release|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Any CPU.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Any CPU.Build.0 = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Mixed Platforms.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.Build.0 = Release-Signed|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|Win32.Build.0 = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-MKL|x64.Build.0 = Release|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Any CPU.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Any CPU.Build.0 = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Mixed Platforms.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.Build.0 = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.ActiveCfg = Release-Signed|Any CPU
- {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.Build.0 = Release-Signed|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU
+ {AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Mixed Platforms.Build.0 = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|Win32.ActiveCfg = Release-Signed|Any CPU
{AF3253C9-4DB5-45A0-98CF-C105FDA9DA47}.Release-Signed|x64.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Win32.ActiveCfg = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|Win32.Build.0 = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Debug|x64.Build.0 = Debug|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Win32.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|Win32.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|x64.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release|x64.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Any CPU.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Mixed Platforms.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Win32.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|Win32.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|x64.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-CUDA|x64.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Any CPU.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Mixed Platforms.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Win32.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|Win32.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|x64.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-MKL|x64.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Any CPU.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Mixed Platforms.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Win32.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|Win32.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|x64.ActiveCfg = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-OpenBLAS|x64.Build.0 = Release|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Mixed Platforms.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Mixed Platforms.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Win32.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|Win32.Build.0 = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|x64.ActiveCfg = Release-Signed|Any CPU
+ {DAF07AA8-C5C9-4963-98F7-2C3285064DAD}.Release-Signed|x64.Build.0 = Release-Signed|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/UnitTests/FourierTransformProviderTests/FourierTransformProviderTests.cs b/src/UnitTests/Providers/FourierTransform/FourierTransformProviderTests.cs
similarity index 95%
rename from src/UnitTests/FourierTransformProviderTests/FourierTransformProviderTests.cs
rename to src/UnitTests/Providers/FourierTransform/FourierTransformProviderTests.cs
index c29e2689..3eac8759 100644
--- a/src/UnitTests/FourierTransformProviderTests/FourierTransformProviderTests.cs
+++ b/src/UnitTests/Providers/FourierTransform/FourierTransformProviderTests.cs
@@ -33,7 +33,7 @@ using MathNet.Numerics.Providers.FourierTransform;
using MathNet.Numerics.Statistics;
using NUnit.Framework;
-namespace MathNet.Numerics.UnitTests.FourierTransformProviderTests
+namespace MathNet.Numerics.UnitTests.Providers.FourierTransform
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
@@ -42,10 +42,10 @@ namespace MathNet.Numerics.UnitTests.FourierTransformProviderTests
#endif
///
- /// Base class for linear algebra provider tests.
+ /// Fourier transform provider tests.
///
[TestFixture, Category("LAProvider")]
- public class LinearAlgebraProviderTests
+ public class FourierTransformProviderTests
{
[Test]
public void ForwardInplaceRealSine()
diff --git a/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs b/src/UnitTests/Providers/LinearAlgebra/Complex/LinearAlgebraProviderTests.cs
similarity index 99%
rename from src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs
rename to src/UnitTests/Providers/LinearAlgebra/Complex/LinearAlgebraProviderTests.cs
index d4807db5..8691321b 100644
--- a/src/UnitTests/LinearAlgebraProviderTests/Complex/LinearAlgebraProviderTests.cs
+++ b/src/UnitTests/Providers/LinearAlgebra/Complex/LinearAlgebraProviderTests.cs
@@ -36,7 +36,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
using MathNet.Numerics.Providers.LinearAlgebra;
using NUnit.Framework;
-namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex
+namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex
{
#if NOSYSNUMERICS
using Complex = Numerics.Complex;
diff --git a/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs b/src/UnitTests/Providers/LinearAlgebra/Complex32/LinearAlgebraProviderTests.cs
similarity index 99%
rename from src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs
rename to src/UnitTests/Providers/LinearAlgebra/Complex32/LinearAlgebraProviderTests.cs
index b4ebfe89..9644100a 100644
--- a/src/UnitTests/LinearAlgebraProviderTests/Complex32/LinearAlgebraProviderTests.cs
+++ b/src/UnitTests/Providers/LinearAlgebra/Complex32/LinearAlgebraProviderTests.cs
@@ -36,7 +36,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
using MathNet.Numerics.Providers.LinearAlgebra;
using NUnit.Framework;
-namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Complex32
+namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Complex32
{
using Numerics;
diff --git a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs b/src/UnitTests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs
similarity index 99%
rename from src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs
rename to src/UnitTests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs
index 869564fb..5705c4b7 100644
--- a/src/UnitTests/LinearAlgebraProviderTests/Double/LinearAlgebraProviderTests.cs
+++ b/src/UnitTests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs
@@ -36,7 +36,7 @@ using MathNet.Numerics.LinearAlgebra.Factorization;
using MathNet.Numerics.Providers.LinearAlgebra;
using NUnit.Framework;
-namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Double
+namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Double
{
///
/// Base class for linear algebra provider tests.
diff --git a/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs b/src/UnitTests/Providers/LinearAlgebra/Single/LinearAlgebraProviderTests.cs
similarity index 99%
rename from src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs
rename to src/UnitTests/Providers/LinearAlgebra/Single/LinearAlgebraProviderTests.cs
index c1032363..df755c7d 100644
--- a/src/UnitTests/LinearAlgebraProviderTests/Single/LinearAlgebraProviderTests.cs
+++ b/src/UnitTests/Providers/LinearAlgebra/Single/LinearAlgebraProviderTests.cs
@@ -36,7 +36,7 @@ using MathNet.Numerics.LinearAlgebra.Single;
using MathNet.Numerics.Providers.LinearAlgebra;
using NUnit.Framework;
-namespace MathNet.Numerics.UnitTests.LinearAlgebraProviderTests.Single
+namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Single
{
///
/// Base class for linear algebra provider tests.
diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj
index 633a62f7..9f2fdcd0 100644
--- a/src/UnitTests/UnitTests.csproj
+++ b/src/UnitTests/UnitTests.csproj
@@ -142,6 +142,7 @@
+
@@ -158,10 +159,10 @@
-
-
-
-
+
+
+
+