Browse Source

Added support for NET Standard 1.6 to Math.NET Numerics

pull/525/head
Ryan Blackwell 9 years ago
committed by Ignas Anikevicius
parent
commit
17209413b3
  1. 41
      Math.Numerics.2017.sln
  2. 67
      src/Examples/Examples-2017.csproj
  3. 37
      src/Numerics/Compatibility.cs
  4. 2
      src/Numerics/Complex32.cs
  5. 4
      src/Numerics/ComplexExtensions.cs
  6. 2
      src/Numerics/Euclid.cs
  7. 12
      src/Numerics/Exceptions.cs
  8. 2
      src/Numerics/GlobalizationHelper.cs
  9. 2
      src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs
  10. 5
      src/Numerics/LinearAlgebra/Matrix.BCL.cs
  11. 2
      src/Numerics/LinearAlgebra/Matrix.Operators.cs
  12. 2
      src/Numerics/LinearAlgebra/Matrix.Solve.cs
  13. 2
      src/Numerics/LinearAlgebra/Matrix.cs
  14. 8
      src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs
  15. 2
      src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs
  16. 31
      src/Numerics/Numerics-2017.csproj
  17. 3
      src/Numerics/Properties/AssemblyInfo.cs
  18. 2
      src/Numerics/Properties/Resources.Designer.cs
  19. 2
      src/Numerics/Random/CryptoRandomSource.cs
  20. 4
      src/Numerics/Random/RandomSeed.cs
  21. 2
      src/Numerics/Threading/CommonParallel.cs
  22. 4
      src/TestData/Data.cs
  23. 303
      src/TestData/TestData-2017.csproj
  24. 25
      src/UnitTests/UnitTests-2017-NetStandard.csproj
  25. 25
      src/UnitTests/UnitTests-2017.csproj

41
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

67
src/Examples/Examples-2017.csproj

@ -0,0 +1,67 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<TargetFrameworks>net40;netstandard1.6</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-Signed|AnyCPU'">
<OutputPath>bin\Release-Signed\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisLogFile>bin\Release\Examples.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
<CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Numerics\Numerics-2017.csproj">
<Project>{b7cae5f4-a23f-4438-b5be-41226618b695}</Project>
<Name>Numerics</Name>
</ProjectReference>
</ItemGroup>
</Project>

37
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

2
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());

4
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());

2
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

12
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)
{

2
src/Numerics/GlobalizationHelper.cs

@ -131,7 +131,7 @@ namespace MathNet.Numerics
}
}
#if PORTABLE
#if PORTABLE || NETSTANDARD1_6
/// <summary>
/// Globalized Parsing: Parse a double number
/// </summary>

2
src/Numerics/LinearAlgebra/Matrix.Arithmetic.cs

@ -36,7 +36,7 @@ namespace MathNet.Numerics.LinearAlgebra
/// <summary>
/// Defines the base class for <c>Matrix</c> classes.
/// </summary>
public abstract partial class Matrix<T>
public abstract partial class Matrix<T> : ICloneable
{
/// <summary>
/// The value of 1.0.

5
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<T>
public abstract partial class Matrix<T> : ICloneable
{
/// <summary>
/// Indicates whether the current object is equal to another object of the same type.
@ -84,11 +85,13 @@ namespace MathNet.Numerics.LinearAlgebra
/// <returns>
/// A new object that is a copy of this instance.
/// </returns>
///
object ICloneable.Clone()
{
return Clone();
}
#endif
/// <summary>

2
src/Numerics/LinearAlgebra/Matrix.Operators.cs

@ -35,7 +35,7 @@ namespace MathNet.Numerics.LinearAlgebra
/// <summary>
/// Defines the base class for <c>Matrix</c> classes.
/// </summary>
public abstract partial class Matrix<T>
public abstract partial class Matrix<T> : ICloneable
{
/// <summary>
/// Returns a <strong>Matrix</strong> containing the same values of <paramref name="rightSide"/>.

2
src/Numerics/LinearAlgebra/Matrix.Solve.cs

@ -36,7 +36,7 @@ namespace MathNet.Numerics.LinearAlgebra
/// <summary>
/// Defines the base class for <c>Matrix</c> classes.
/// </summary>
public abstract partial class Matrix<T>
public abstract partial class Matrix<T> : ICloneable
{
// Factorizations

2
src/Numerics/LinearAlgebra/Matrix.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra
[Serializable]
public abstract partial class Matrix<T> :
IFormattable, IEquatable<Matrix<T>>
#if !PORTABLE
#if PORTABLE || NET461
, ICloneable
#endif
where T : struct, IEquatable<T>, IFormattable

8
src/Numerics/LinearAlgebra/Solvers/SolverSetup.cs

@ -44,7 +44,7 @@ namespace MathNet.Numerics.LinearAlgebra.Solvers
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> LoadFromAssembly(Assembly assembly, bool ignoreFailed = true, params Type[] typesToExclude)
{
#if NET45REFLECTION
#if NET45REFLECTION || NETSTANDARD1_6
TypeInfo setupInterfaceType = typeof(IIterativeSolverSetup<T>).GetTypeInfo();
IEnumerable<Type> 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<TypeInfo>(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
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> 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
/// <param name="typesToExclude">The <see cref="IIterativeSolver{T}"/> types that should not be loaded.</param>
public static IEnumerable<IIterativeSolverSetup<T>> 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);

2
src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs

@ -115,7 +115,7 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
/// </summary>
void RowColumnAtIndex(int index, out int row, out int column)
{
#if PORTABLE
#if PORTABLE || NETSTANDARD1_6
row = index % RowCount;
column = index / RowCount;
#else

31
src/Numerics/Numerics-2017.csproj

@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net40;netstandard1.6</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageId>Math.Numerics</PackageId>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard1.6'">
<DefineConstants>NOSERIALIZATION</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<OutputPath>..\..\out\test\Net35\</OutputPath>
<IntermediateOutputPath>..\..\obj\test\Net35\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\obj\test\Net35\</BaseIntermediateOutputPath>
<AssemblyName>MathNet.Numerics</AssemblyName>
<RootNamespace>MathNet.Numerics</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.6'">
<PackageReference Include="System.Runtime">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.Runtime.Serialization.Xml" Version="4.3.0" />
<PackageReference Include="System.Runtime.Serialization.Formatters" Version="4.3.0" />
</ItemGroup>
</Project>

3
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

2
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);

2
src/Numerics/Random/CryptoRandomSource.cs

@ -27,7 +27,7 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
#if !PORTABLE
#if !PORTABLE && !NETSTANDARD1_6
using System;
using System.Collections.Generic;

4
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];

2
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

4
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)
{

303
src/TestData/TestData-2017.csproj

@ -0,0 +1,303 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net35;netstandard1.6</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AssemblyName>MathNet.Numerics.TestData</AssemblyName>
<RootNamespace>MathNet.Numerics.TestData</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>..\..\out\test\Net35\</OutputPath>
<IntermediateOutputPath>..\..\obj\test\Net35\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\obj\test\Net35\</BaseIntermediateOutputPath>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<NoWarn>1591</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>6</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>DEBUG;TRACE</DefineConstants>
<OutputPath>..\..\out\test-debug\Net35\</OutputPath>
<IntermediateOutputPath>..\..\obj\test-debug\Net35\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\obj\test-debug\Net35\</BaseIntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<NoWarn>1591</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>6</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-Signed|AnyCPU'">
<OutputPath>..\..\out\test-signed\Net35\</OutputPath>
<IntermediateOutputPath>..\..\obj\test-signed\Net35\</IntermediateOutputPath>
<BaseIntermediateOutputPath>..\..\obj\test-signed\Net35\</BaseIntermediateOutputPath>
<!-- Conditional Strong Name: YES -->
<SignAssembly>true</SignAssembly>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineConstants>TRACE;STRONGNAME</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<NoWarn>1591</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>6</LangVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\..\data\Codeplex-5667.csv">
<Link>Data\Codeplex-5667.csv</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Github-Cureos-1.csv">
<Link>Data\Github-Cureos-1.csv</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\A.mat">
<Link>Data\Matlab\A.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\collection-nocompress.mat">
<Link>Data\Matlab\collection-nocompress.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\collection.mat">
<Link>Data\Matlab\collection.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\complex.mat">
<Link>Data\Matlab\complex.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\sparse-large.mat">
<Link>Data\Matlab\sparse-large.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\sparse-small.mat">
<Link>Data\Matlab\sparse-small.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\sparse_complex.mat">
<Link>Data\Matlab\sparse_complex.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\Matlab\v.mat">
<Link>Data\Matlab\v.mat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\AtmWtAgt.dat">
<Link>Data\NIST\AtmWtAgt.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Bennett5.dat">
<Link>Data\NIST\Bennett5.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\BoxBOD.dat">
<Link>Data\NIST\BoxBOD.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Chwirut1.dat">
<Link>Data\NIST\Chwirut1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Chwirut2.dat">
<Link>Data\NIST\Chwirut2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\DanWood.dat">
<Link>Data\NIST\DanWood.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Eckerle4.dat">
<Link>Data\NIST\Eckerle4.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\ENSO.dat">
<Link>Data\NIST\ENSO.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Filip.dat">
<Link>Data\NIST\Filip.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Gauss1.dat">
<Link>Data\NIST\Gauss1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Gauss2.dat">
<Link>Data\NIST\Gauss2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Gauss3.dat">
<Link>Data\NIST\Gauss3.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Hahn1.dat">
<Link>Data\NIST\Hahn1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Kirby2.dat">
<Link>Data\NIST\Kirby2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Lanczos1.dat">
<Link>Data\NIST\Lanczos1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Lanczos2.dat">
<Link>Data\NIST\Lanczos2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Lanczos3.dat">
<Link>Data\NIST\Lanczos3.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Lew.dat">
<Link>Data\NIST\Lew.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Longley.dat">
<Link>Data\NIST\Longley.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Lottery.dat">
<Link>Data\NIST\Lottery.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Mavro.dat">
<Link>Data\NIST\Mavro.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Meixner.dat">
<Link>Data\NIST\Meixner.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\MGH09.dat">
<Link>Data\NIST\MGH09.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\MGH10.dat">
<Link>Data\NIST\MGH10.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\MGH17.dat">
<Link>Data\NIST\MGH17.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Michelso.dat">
<Link>Data\NIST\Michelso.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Misra1a.dat">
<Link>Data\NIST\Misra1a.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Misra1b.dat">
<Link>Data\NIST\Misra1b.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Misra1c.dat">
<Link>Data\NIST\Misra1c.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Misra1d.dat">
<Link>Data\NIST\Misra1d.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Nelson.dat">
<Link>Data\NIST\Nelson.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NoInt1.dat">
<Link>Data\NIST\NoInt1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NoInt2.dat">
<Link>Data\NIST\NoInt2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Norris.dat">
<Link>Data\NIST\Norris.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NumAcc1.dat">
<Link>Data\NIST\NumAcc1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NumAcc2.dat">
<Link>Data\NIST\NumAcc2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NumAcc3.dat">
<Link>Data\NIST\NumAcc3.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\NumAcc4.dat">
<Link>Data\NIST\NumAcc4.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Pontius.dat">
<Link>Data\NIST\Pontius.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Rat42.dat">
<Link>Data\NIST\Rat42.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Rat43.dat">
<Link>Data\NIST\Rat43.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Roszman1.dat">
<Link>Data\NIST\Roszman1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SiRstvt.dat">
<Link>Data\NIST\SiRstvt.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs01t.dat">
<Link>Data\NIST\SmLs01t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs02t.dat">
<Link>Data\NIST\SmLs02t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs03t.dat">
<Link>Data\NIST\SmLs03t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs04t.dat">
<Link>Data\NIST\SmLs04t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs05t.dat">
<Link>Data\NIST\SmLs05t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs06t.dat">
<Link>Data\NIST\SmLs06t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs07t.dat">
<Link>Data\NIST\SmLs07t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs08t.dat">
<Link>Data\NIST\SmLs08t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\SmLs09t.dat">
<Link>Data\NIST\SmLs09t.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Thurber.dat">
<Link>Data\NIST\Thurber.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Wampler1.dat">
<Link>Data\NIST\Wampler1.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Wampler2.dat">
<Link>Data\NIST\Wampler2.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Wampler3.dat">
<Link>Data\NIST\Wampler3.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Wampler4.dat">
<Link>Data\NIST\Wampler4.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\NIST\Wampler5.dat">
<Link>Data\NIST\Wampler5.dat</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\fidap007.mtx">
<Link>Data\MatrixMarket\fidap007.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\bp___200.mtx">
<Link>Data\MatrixMarket\bp___200.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\can24_pattern_symmetric_coordinate_24.mtx">
<Link>Data\MatrixMarket\can24_pattern_symmetric_coordinate_24.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\gear_integer_general_coordinate_100.mtx">
<Link>Data\MatrixMarket\gear_integer_general_coordinate_100.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\hilbert_real_symmetric_array_10.mtx">
<Link>Data\MatrixMarket\hilbert_real_symmetric_array_10.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_array_100.mtx">
<Link>Data\MatrixMarket\random_real_general_array_100.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_array_10_20.mtx">
<Link>Data\MatrixMarket\random_real_general_array_10_20.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_array_20_10.mtx">
<Link>Data\MatrixMarket\random_real_general_array_20_10.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_coordinate_10_20.mtx">
<Link>Data\MatrixMarket\random_real_general_coordinate_10_20.mtx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_dense_10_20.comma">
<Link>Data\MatrixMarket\random_real_general_dense_10_20.comma</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_dense_10_20.space">
<Link>Data\MatrixMarket\random_real_general_dense_10_20.space</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\data\MatrixMarket\random_real_general_dense_10_20.tab">
<Link>Data\MatrixMarket\random_real_general_dense_10_20.tab</Link>
</EmbeddedResource>
</ItemGroup>
</Project>

25
src/UnitTests/UnitTests-2017-NetStandard.csproj

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net45</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<OutputPath>..\..\out\test\$(Configuration)\netstandard16</OutputPath>
<BaseIntermediateOutputPath>..\..\obj\test\$(Configuration)\netstandard16</BaseIntermediateOutputPath>
<AssemblyName>MathNet.Numerics.UnitTests</AssemblyName>
<RootNamespace>MathNet.Numerics.UnitTests</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.7.1" TargetFramework="netstandard16" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Numerics\Numerics-2017.csproj" />
<ProjectReference Include="..\TestData\TestData-2017.csproj" />
</ItemGroup>
</Project>

25
src/UnitTests/UnitTests-2017.csproj

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net45</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<OutputPath>..\..\out\test\$(Configuration)</OutputPath>
<BaseIntermediateOutputPath>..\..\obj\test\$(Configuration)</BaseIntermediateOutputPath>
<AssemblyName>MathNet.Numerics.UnitTests</AssemblyName>
<RootNamespace>MathNet.Numerics.UnitTests</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.7.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Numerics\Numerics-2017.csproj" />
<ProjectReference Include="..\TestData\TestData-2017.csproj" />
</ItemGroup>
</Project>
Loading…
Cancel
Save