From 17209413b3c079150d2712ae161209db033042c4 Mon Sep 17 00:00:00 2001 From: Ryan Blackwell Date: Fri, 9 Jun 2017 09:11:53 -0700 Subject: [PATCH] Added support for NET Standard 1.6 to Math.NET Numerics --- Math.Numerics.2017.sln | 41 +++ src/Examples/Examples-2017.csproj | 67 ++++ src/Numerics/Compatibility.cs | 37 ++- src/Numerics/Complex32.cs | 2 +- src/Numerics/ComplexExtensions.cs | 4 +- src/Numerics/Euclid.cs | 2 +- src/Numerics/Exceptions.cs | 12 +- src/Numerics/GlobalizationHelper.cs | 2 +- .../LinearAlgebra/Matrix.Arithmetic.cs | 2 +- src/Numerics/LinearAlgebra/Matrix.BCL.cs | 5 +- .../LinearAlgebra/Matrix.Operators.cs | 2 +- src/Numerics/LinearAlgebra/Matrix.Solve.cs | 2 +- src/Numerics/LinearAlgebra/Matrix.cs | 2 +- .../LinearAlgebra/Solvers/SolverSetup.cs | 8 +- .../Storage/DenseColumnMajorMatrixStorage.cs | 2 +- src/Numerics/Numerics-2017.csproj | 31 ++ src/Numerics/Properties/AssemblyInfo.cs | 3 +- src/Numerics/Properties/Resources.Designer.cs | 2 +- src/Numerics/Random/CryptoRandomSource.cs | 2 +- src/Numerics/Random/RandomSeed.cs | 4 +- src/Numerics/Threading/CommonParallel.cs | 2 +- src/TestData/Data.cs | 4 + src/TestData/TestData-2017.csproj | 303 ++++++++++++++++++ .../UnitTests-2017-NetStandard.csproj | 25 ++ src/UnitTests/UnitTests-2017.csproj | 25 ++ 25 files changed, 561 insertions(+), 30 deletions(-) create mode 100644 Math.Numerics.2017.sln create mode 100644 src/Examples/Examples-2017.csproj create mode 100644 src/Numerics/Numerics-2017.csproj create mode 100644 src/TestData/TestData-2017.csproj create mode 100644 src/UnitTests/UnitTests-2017-NetStandard.csproj create mode 100644 src/UnitTests/UnitTests-2017.csproj diff --git a/Math.Numerics.2017.sln b/Math.Numerics.2017.sln new file mode 100644 index 00000000..60f29318 --- /dev/null +++ b/Math.Numerics.2017.sln @@ -0,0 +1,41 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Numerics-2017", "src\Numerics\Numerics-2017.csproj", "{4C1F1555-F9C6-45A0-B076-97384CA2BA7F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestData-2017", "src\TestData\TestData-2017.csproj", "{032AE5BB-2D1C-405E-83EF-D4306803C4BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-2017", "src\UnitTests\UnitTests-2017.csproj", "{9B7A2692-AA86-4A4E-B83B-E2D025FB634F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + Release-Signed|Any CPU = Release-Signed|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Release|Any CPU.Build.0 = Release|Any CPU + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {4C1F1555-F9C6-45A0-B076-97384CA2BA7F}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Release|Any CPU.Build.0 = Release|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU + {032AE5BB-2D1C-405E-83EF-D4306803C4BE}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Release|Any CPU.Build.0 = Release|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Release-Signed|Any CPU.ActiveCfg = Release|Any CPU + {9B7A2692-AA86-4A4E-B83B-E2D025FB634F}.Release-Signed|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Examples/Examples-2017.csproj b/src/Examples/Examples-2017.csproj new file mode 100644 index 00000000..edbd54be --- /dev/null +++ b/src/Examples/Examples-2017.csproj @@ -0,0 +1,67 @@ + + + Debug + AnyCPU + net40;netstandard1.6 + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + AllRules.ruleset + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + AllRules.ruleset + + + bin\Release-Signed\ + TRACE + true + pdbonly + AnyCPU + bin\Release\Examples.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + AllRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + {b7cae5f4-a23f-4438-b5be-41226618b695} + Numerics + + + \ No newline at end of file diff --git a/src/Numerics/Compatibility.cs b/src/Numerics/Compatibility.cs index 98187a5c..2294cc15 100644 --- a/src/Numerics/Compatibility.cs +++ b/src/Numerics/Compatibility.cs @@ -1,4 +1,4 @@ -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 namespace MathNet.Numerics { using System; @@ -139,7 +139,7 @@ namespace MathNet.Numerics } #endif -#if (PORTABLE || NET35) +#if (PORTABLE || NET35 || NETSTANDARD1_6) namespace MathNet.Numerics { using System; @@ -334,3 +334,36 @@ namespace MathNet.Numerics } } #endif + +#if NETSTANDARD1_6 +namespace MathNet.Numerics +{ + public interface ICloneable + + { + object Clone(); + } +} +#endif + +#if NETSTANDARD1_6 +namespace MathNet.Numerics +{ + using System; + + public static class MathExtensions + { + public static int DivRem(int a, int b, out int result) + { + result = a/b; + return a%b; + } + + public static long DivRem(long a, long b, out long result) + { + result = a/b; + return a%b; + } + } +} +#endif diff --git a/src/Numerics/Complex32.cs b/src/Numerics/Complex32.cs index d206f868..804fcd43 100644 --- a/src/Numerics/Complex32.cs +++ b/src/Numerics/Complex32.cs @@ -1030,7 +1030,7 @@ namespace MathNet.Numerics } } -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 var value = GlobalizationHelper.ParseSingle(ref token); #else var value = GlobalizationHelper.ParseSingle(ref token, format.GetCultureInfo()); diff --git a/src/Numerics/ComplexExtensions.cs b/src/Numerics/ComplexExtensions.cs index 532ea9dd..77eddc23 100644 --- a/src/Numerics/ComplexExtensions.cs +++ b/src/Numerics/ComplexExtensions.cs @@ -32,7 +32,7 @@ namespace MathNet.Numerics using System; using System.Collections.Generic; -#if !PORTABLE +#if !PORTABLE || NETSTANDARD1_6 using System.Runtime; #endif @@ -607,7 +607,7 @@ namespace MathNet.Numerics } } -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 var value = GlobalizationHelper.ParseDouble(ref token); #else var value = GlobalizationHelper.ParseDouble(ref token, format.GetCultureInfo()); diff --git a/src/Numerics/Euclid.cs b/src/Numerics/Euclid.cs index 394884e5..cf3af208 100644 --- a/src/Numerics/Euclid.cs +++ b/src/Numerics/Euclid.cs @@ -430,7 +430,7 @@ namespace MathNet.Numerics while (b != 0) { long rem; -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 rem = a % b; var quot = a / b; #else diff --git a/src/Numerics/Exceptions.cs b/src/Numerics/Exceptions.cs index 5d17b7be..162935de 100644 --- a/src/Numerics/Exceptions.cs +++ b/src/Numerics/Exceptions.cs @@ -20,7 +20,7 @@ namespace MathNet.Numerics public NonConvergenceException(string message, Exception innerException) : base(message, innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected NonConvergenceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { @@ -48,7 +48,7 @@ namespace MathNet.Numerics : base(message, innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected NumericalBreakdownException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { @@ -75,7 +75,7 @@ namespace MathNet.Numerics : base(message, innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected NativeInterfaceException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { @@ -103,7 +103,7 @@ namespace MathNet.Numerics : base(string.Format(Resources.InvalidParameterWithNumber, parameter), innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected InvalidParameterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { @@ -126,7 +126,7 @@ namespace MathNet.Numerics : base(Resources.MemoryAllocation, innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected MemoryAllocationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { @@ -154,7 +154,7 @@ namespace MathNet.Numerics : base(string.Format(Resources.SingularUMatrixWithElement, element), innerException) { } -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 protected SingularUMatrixException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { diff --git a/src/Numerics/GlobalizationHelper.cs b/src/Numerics/GlobalizationHelper.cs index 30cf05f1..b9506ab5 100644 --- a/src/Numerics/GlobalizationHelper.cs +++ b/src/Numerics/GlobalizationHelper.cs @@ -131,7 +131,7 @@ namespace MathNet.Numerics } } -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 /// /// Globalized Parsing: Parse a double number /// diff --git a/src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs b/src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs index 793113a2..355311f1 100644 --- a/src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs +++ b/src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs @@ -36,7 +36,7 @@ namespace MathNet.Numerics.LinearAlgebra /// /// Defines the base class for Matrix classes. /// - public abstract partial class Matrix + public abstract partial class Matrix : ICloneable { /// /// The value of 1.0. diff --git a/src/Numerics/LinearAlgebra/Matrix.BCL.cs b/src/Numerics/LinearAlgebra/Matrix.BCL.cs index 2d6e5789..9c689109 100644 --- a/src/Numerics/LinearAlgebra/Matrix.BCL.cs +++ b/src/Numerics/LinearAlgebra/Matrix.BCL.cs @@ -36,7 +36,8 @@ using System.Text; namespace MathNet.Numerics.LinearAlgebra { [DebuggerDisplay("Matrix {RowCount}x{ColumnCount}")] - public abstract partial class Matrix + + public abstract partial class Matrix : ICloneable { /// /// Indicates whether the current object is equal to another object of the same type. @@ -84,11 +85,13 @@ namespace MathNet.Numerics.LinearAlgebra /// /// A new object that is a copy of this instance. /// + /// object ICloneable.Clone() { return Clone(); } + #endif /// diff --git a/src/Numerics/LinearAlgebra/Matrix.Operators.cs b/src/Numerics/LinearAlgebra/Matrix.Operators.cs index ee19f15c..0979bac1 100644 --- a/src/Numerics/LinearAlgebra/Matrix.Operators.cs +++ b/src/Numerics/LinearAlgebra/Matrix.Operators.cs @@ -35,7 +35,7 @@ namespace MathNet.Numerics.LinearAlgebra /// /// Defines the base class for Matrix classes. /// - public abstract partial class Matrix + public abstract partial class Matrix : ICloneable { /// /// Returns a Matrix containing the same values of . diff --git a/src/Numerics/LinearAlgebra/Matrix.Solve.cs b/src/Numerics/LinearAlgebra/Matrix.Solve.cs index e46f6d64..e3e353fa 100644 --- a/src/Numerics/LinearAlgebra/Matrix.Solve.cs +++ b/src/Numerics/LinearAlgebra/Matrix.Solve.cs @@ -36,7 +36,7 @@ namespace MathNet.Numerics.LinearAlgebra /// /// Defines the base class for Matrix classes. /// - public abstract partial class Matrix + public abstract partial class Matrix : ICloneable { // Factorizations diff --git a/src/Numerics/LinearAlgebra/Matrix.cs b/src/Numerics/LinearAlgebra/Matrix.cs index f11423f7..a42bc3ef 100644 --- a/src/Numerics/LinearAlgebra/Matrix.cs +++ b/src/Numerics/LinearAlgebra/Matrix.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra [Serializable] public abstract partial class Matrix : IFormattable, IEquatable> -#if !PORTABLE +#if PORTABLE || NET461 , ICloneable #endif where T : struct, IEquatable, IFormattable diff --git a/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs b/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs index d58245ef..37dc297b 100644 --- a/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs +++ b/src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The types that should not be loaded. public static IEnumerable> LoadFromAssembly(Assembly assembly, bool ignoreFailed = true, params Type[] typesToExclude) { -#if NET45REFLECTION +#if NET45REFLECTION || NETSTANDARD1_6 TypeInfo setupInterfaceType = typeof(IIterativeSolverSetup).GetTypeInfo(); IEnumerable candidates = assembly.DefinedTypes .Where(typeInfo => !typeInfo.IsAbstract && !typeInfo.IsEnum && !typeInfo.IsInterface && typeInfo.IsVisible) @@ -73,7 +73,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers } } -#if NET45REFLECTION +#if NET45REFLECTION || NETSTANDARD1_6 var excludedTypes = new List(typesToExclude.Select(type => type.GetTypeInfo())); return setups .Where(s => !excludedTypes.Any(t => t.IsAssignableFrom(s.SolverType.GetTypeInfo()) || t.IsAssignableFrom(s.PreconditionerType.GetTypeInfo()))) @@ -94,7 +94,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The types that should not be loaded. public static IEnumerable> LoadFromAssembly(Type typeInAssembly, bool ignoreFailed = true, params Type[] typesToExclude) { -#if NET45REFLECTION +#if NET45REFLECTION || NETSTANDARD1_6 return LoadFromAssembly(typeInAssembly.GetTypeInfo().Assembly, ignoreFailed, typesToExclude); #else return LoadFromAssembly(typeInAssembly.Assembly, ignoreFailed, typesToExclude); @@ -109,7 +109,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers /// The types that should not be loaded. public static IEnumerable> LoadFromAssembly(AssemblyName assemblyName, bool ignoreFailed = true, params Type[] typesToExclude) { -#if NET45REFLECTION +#if NET45REFLECTION || NETSTANDARD1_6 return LoadFromAssembly(Assembly.Load(assemblyName), ignoreFailed, typesToExclude); #else return LoadFromAssembly(Assembly.Load(assemblyName.FullName), ignoreFailed, typesToExclude); diff --git a/src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs b/src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs index 0312a85a..6a59cffa 100644 --- a/src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs +++ b/src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs @@ -115,7 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Storage /// void RowColumnAtIndex(int index, out int row, out int column) { -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 row = index % RowCount; column = index / RowCount; #else diff --git a/src/Numerics/Numerics-2017.csproj b/src/Numerics/Numerics-2017.csproj new file mode 100644 index 00000000..d810d513 --- /dev/null +++ b/src/Numerics/Numerics-2017.csproj @@ -0,0 +1,31 @@ + + + net40;netstandard1.6 + false + True + Math.Numerics + + + NOSERIALIZATION + + + ..\..\out\test\Net35\ + ..\..\obj\test\Net35\ + ..\..\obj\test\Net35\ + MathNet.Numerics + MathNet.Numerics + + + + + + + + + + 4.3.0 + + + + + \ No newline at end of file diff --git a/src/Numerics/Properties/AssemblyInfo.cs b/src/Numerics/Properties/AssemblyInfo.cs index 97e8988e..5c497ff1 100644 --- a/src/Numerics/Properties/AssemblyInfo.cs +++ b/src/Numerics/Properties/AssemblyInfo.cs @@ -49,7 +49,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyFileVersion("3.20.0.0")] [assembly: AssemblyInformationalVersion("3.20.0")] -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 [assembly: AssemblyTitle("Math.NET Numerics - Portable Edition")] [assembly: InternalsVisibleTo("MathNet.Numerics.UnitTests")] @@ -82,4 +82,3 @@ using System.Runtime.InteropServices; #endif #endif - diff --git a/src/Numerics/Properties/Resources.Designer.cs b/src/Numerics/Properties/Resources.Designer.cs index 0aa64c61..5ad97650 100644 --- a/src/Numerics/Properties/Resources.Designer.cs +++ b/src/Numerics/Properties/Resources.Designer.cs @@ -40,7 +40,7 @@ namespace MathNet.Numerics.Properties { [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] public static global::System.Resources.ResourceManager ResourceManager { get { -#if NET45REFLECTION +#if NET45REFLECTION || NETSTANDARD1_6 if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MathNet.Numerics.Properties.Resources", typeof(Resources).GetTypeInfo().Assembly); diff --git a/src/Numerics/Random/CryptoRandomSource.cs b/src/Numerics/Random/CryptoRandomSource.cs index c25e3b8f..d3b310b7 100644 --- a/src/Numerics/Random/CryptoRandomSource.cs +++ b/src/Numerics/Random/CryptoRandomSource.cs @@ -27,7 +27,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 using System; using System.Collections.Generic; diff --git a/src/Numerics/Random/RandomSeed.cs b/src/Numerics/Random/RandomSeed.cs index c6b39a0d..1e7cad9a 100644 --- a/src/Numerics/Random/RandomSeed.cs +++ b/src/Numerics/Random/RandomSeed.cs @@ -6,7 +6,7 @@ namespace MathNet.Numerics.Random { static readonly object Lock = new object(); -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 static readonly System.Random MasterRng = new System.Random(); #else static readonly System.Security.Cryptography.RandomNumberGenerator MasterRng = new System.Security.Cryptography.RNGCryptoServiceProvider(); @@ -41,7 +41,7 @@ namespace MathNet.Numerics.Random { lock (Lock) { -#if PORTABLE +#if PORTABLE || NETSTANDARD1_6 return MasterRng.NextFullRangeInt32() ^ Environment.TickCount ^ System.Guid.NewGuid().GetHashCode(); #else var bytes = new byte[4]; diff --git a/src/Numerics/Threading/CommonParallel.cs b/src/Numerics/Threading/CommonParallel.cs index b6978651..4e0885f8 100644 --- a/src/Numerics/Threading/CommonParallel.cs +++ b/src/Numerics/Threading/CommonParallel.cs @@ -36,7 +36,7 @@ namespace MathNet.Numerics.Threading #if NET35 using Partitioner = MathNet.Numerics.Partitioner; #endif -#if !PORTABLE +#if !PORTABLE && !NETSTANDARD1_6 using System.Collections.Concurrent; #endif diff --git a/src/TestData/Data.cs b/src/TestData/Data.cs index 47a44f76..4a3afd07 100644 --- a/src/TestData/Data.cs +++ b/src/TestData/Data.cs @@ -6,7 +6,11 @@ namespace MathNet.Numerics.TestData { public static class Data { +#if NETSTANDARD1_6 + static readonly Assembly DataAssembly = typeof(Data).GetTypeInfo().Assembly; +#else static readonly Assembly DataAssembly = typeof (Data).Assembly; +#endif public static Stream ReadStream(string name) { diff --git a/src/TestData/TestData-2017.csproj b/src/TestData/TestData-2017.csproj new file mode 100644 index 00000000..9826df81 --- /dev/null +++ b/src/TestData/TestData-2017.csproj @@ -0,0 +1,303 @@ + + + net35;netstandard1.6 + false + MathNet.Numerics.TestData + MathNet.Numerics.TestData + + + ..\..\out\test\Net35\ + ..\..\obj\test\Net35\ + ..\..\obj\test\Net35\ + pdbonly + true + TRACE + prompt + 4 + AllRules.ruleset + 1591 + false + 6 + + + DEBUG;TRACE + ..\..\out\test-debug\Net35\ + ..\..\obj\test-debug\Net35\ + ..\..\obj\test-debug\Net35\ + true + full + false + prompt + 4 + AnyCPU + 1591 + false + 6 + + + ..\..\out\test-signed\Net35\ + ..\..\obj\test-signed\Net35\ + ..\..\obj\test-signed\Net35\ + + true + pdbonly + true + TRACE;STRONGNAME + prompt + 4 + AllRules.ruleset + 1591 + false + 6 + + + + + + + + + + + + Data\Codeplex-5667.csv + + + Data\Github-Cureos-1.csv + + + Data\Matlab\A.mat + + + Data\Matlab\collection-nocompress.mat + + + Data\Matlab\collection.mat + + + Data\Matlab\complex.mat + + + Data\Matlab\sparse-large.mat + + + Data\Matlab\sparse-small.mat + + + Data\Matlab\sparse_complex.mat + + + Data\Matlab\v.mat + + + Data\NIST\AtmWtAgt.dat + + + Data\NIST\Bennett5.dat + + + Data\NIST\BoxBOD.dat + + + Data\NIST\Chwirut1.dat + + + Data\NIST\Chwirut2.dat + + + Data\NIST\DanWood.dat + + + Data\NIST\Eckerle4.dat + + + Data\NIST\ENSO.dat + + + Data\NIST\Filip.dat + + + Data\NIST\Gauss1.dat + + + Data\NIST\Gauss2.dat + + + Data\NIST\Gauss3.dat + + + Data\NIST\Hahn1.dat + + + Data\NIST\Kirby2.dat + + + Data\NIST\Lanczos1.dat + + + Data\NIST\Lanczos2.dat + + + Data\NIST\Lanczos3.dat + + + Data\NIST\Lew.dat + + + Data\NIST\Longley.dat + + + Data\NIST\Lottery.dat + + + Data\NIST\Mavro.dat + + + Data\NIST\Meixner.dat + + + Data\NIST\MGH09.dat + + + Data\NIST\MGH10.dat + + + Data\NIST\MGH17.dat + + + Data\NIST\Michelso.dat + + + Data\NIST\Misra1a.dat + + + Data\NIST\Misra1b.dat + + + Data\NIST\Misra1c.dat + + + Data\NIST\Misra1d.dat + + + Data\NIST\Nelson.dat + + + Data\NIST\NoInt1.dat + + + Data\NIST\NoInt2.dat + + + Data\NIST\Norris.dat + + + Data\NIST\NumAcc1.dat + + + Data\NIST\NumAcc2.dat + + + Data\NIST\NumAcc3.dat + + + Data\NIST\NumAcc4.dat + + + Data\NIST\Pontius.dat + + + Data\NIST\Rat42.dat + + + Data\NIST\Rat43.dat + + + Data\NIST\Roszman1.dat + + + Data\NIST\SiRstvt.dat + + + Data\NIST\SmLs01t.dat + + + Data\NIST\SmLs02t.dat + + + Data\NIST\SmLs03t.dat + + + Data\NIST\SmLs04t.dat + + + Data\NIST\SmLs05t.dat + + + Data\NIST\SmLs06t.dat + + + Data\NIST\SmLs07t.dat + + + Data\NIST\SmLs08t.dat + + + Data\NIST\SmLs09t.dat + + + Data\NIST\Thurber.dat + + + Data\NIST\Wampler1.dat + + + Data\NIST\Wampler2.dat + + + Data\NIST\Wampler3.dat + + + Data\NIST\Wampler4.dat + + + Data\NIST\Wampler5.dat + + + Data\MatrixMarket\fidap007.mtx + + + Data\MatrixMarket\bp___200.mtx + + + Data\MatrixMarket\can24_pattern_symmetric_coordinate_24.mtx + + + Data\MatrixMarket\gear_integer_general_coordinate_100.mtx + + + Data\MatrixMarket\hilbert_real_symmetric_array_10.mtx + + + Data\MatrixMarket\random_real_general_array_100.mtx + + + Data\MatrixMarket\random_real_general_array_10_20.mtx + + + Data\MatrixMarket\random_real_general_array_20_10.mtx + + + Data\MatrixMarket\random_real_general_coordinate_10_20.mtx + + + Data\MatrixMarket\random_real_general_dense_10_20.comma + + + Data\MatrixMarket\random_real_general_dense_10_20.space + + + Data\MatrixMarket\random_real_general_dense_10_20.tab + + + \ No newline at end of file diff --git a/src/UnitTests/UnitTests-2017-NetStandard.csproj b/src/UnitTests/UnitTests-2017-NetStandard.csproj new file mode 100644 index 00000000..867cdba6 --- /dev/null +++ b/src/UnitTests/UnitTests-2017-NetStandard.csproj @@ -0,0 +1,25 @@ + + + net45 + false + ..\..\out\test\$(Configuration)\netstandard16 + ..\..\obj\test\$(Configuration)\netstandard16 + MathNet.Numerics.UnitTests + MathNet.Numerics.UnitTests + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/UnitTests/UnitTests-2017.csproj b/src/UnitTests/UnitTests-2017.csproj new file mode 100644 index 00000000..e23b79c7 --- /dev/null +++ b/src/UnitTests/UnitTests-2017.csproj @@ -0,0 +1,25 @@ + + + net45 + false + ..\..\out\test\$(Configuration) + ..\..\obj\test\$(Configuration) + MathNet.Numerics.UnitTests + MathNet.Numerics.UnitTests + + + + + + + + + + + + + + + + + \ No newline at end of file