浏览代码

add tests

Никита Кашлач 3 年之前
父节点
当前提交
b7144575ef
共有 5 个文件被更改,包括 380 次插入3 次删除
  1. 9 3
      MatrixXAMLOnly.sln
  2. 27 0
      TestMatrix/TestMatrix.csproj
  3. 310 0
      TestMatrix/UnitTest1.cs
  4. 21 0
      TestProject/TestProject.csproj
  5. 13 0
      TestProject/UnitTest1.cs

+ 9 - 3
MatrixXAMLOnly.sln

@@ -1,9 +1,11 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.31605.320
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32112.339
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixXAMLOnly", "MatrixXAMLOnly\MatrixXAMLOnly.csproj", "{463CADBE-6CAF-45F0-94D5-FED816937772}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MatrixXAMLOnly", "MatrixXAMLOnly\MatrixXAMLOnly.csproj", "{463CADBE-6CAF-45F0-94D5-FED816937772}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestMatrix", "TestMatrix\TestMatrix.csproj", "{04B95369-FD7A-47D8-BA08-A8E099246B9A}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
 		{463CADBE-6CAF-45F0-94D5-FED816937772}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{463CADBE-6CAF-45F0-94D5-FED816937772}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{463CADBE-6CAF-45F0-94D5-FED816937772}.Release|Any CPU.Build.0 = Release|Any CPU
+		{04B95369-FD7A-47D8-BA08-A8E099246B9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{04B95369-FD7A-47D8-BA08-A8E099246B9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{04B95369-FD7A-47D8-BA08-A8E099246B9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{04B95369-FD7A-47D8-BA08-A8E099246B9A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 27 - 0
TestMatrix/TestMatrix.csproj

@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0-windows</TargetFramework>
+    <Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
+    <PackageReference Include="xunit" Version="2.4.1" />
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+      <PrivateAssets>all</PrivateAssets>
+    </PackageReference>
+    <PackageReference Include="coverlet.collector" Version="3.1.0">
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+      <PrivateAssets>all</PrivateAssets>
+    </PackageReference>
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\MatrixXAMLOnly\MatrixXAMLOnly.csproj" />
+  </ItemGroup>
+
+</Project>

+ 310 - 0
TestMatrix/UnitTest1.cs

@@ -0,0 +1,310 @@
+using Xunit;
+using Matrix;
+using System;
+
+namespace TestMatrix
+{
+    public class UnitTest
+    {
+        [Fact]
+        public void AdditionTest()
+        {
+            // 1
+            double[,] arrayFrst = {
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0}
+            };
+
+            double[,] arrayScnd = {
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1}
+            };
+
+            double[,] arrayExpectedResult = {
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1}
+            };
+
+            MyMatrix matrixFrst = new MyMatrix(arrayFrst);
+            MyMatrix matrixScnd = new MyMatrix(arrayScnd);
+            MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            MyMatrix matrixActualResult = matrixFrst + matrixScnd;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 2
+            arrayFrst = new double[,]{
+                { 34, 231, 42},
+                { 2, -6, 23},
+                { 123, 0, 0},
+                { -10, 23, 0},
+                { 61, 70, 1}
+            };
+
+            arrayScnd = new double[,]{
+                { 10, 1, 20},
+                { 1, 23, 1},
+                { 78, 11, 1},
+                { 1, 222, 1},
+                { -5, 1, 24}
+            };
+
+            arrayExpectedResult = new double[,]{
+                { 44, 232, 62},
+                { 3, 17, 24},
+                { 201, 11, 1},
+                { -9, 245, 1},
+                { 56, 71, 25}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixScnd = new MyMatrix(arrayScnd);
+            matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            matrixActualResult = matrixFrst + matrixScnd;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 3
+            arrayFrst = new double[,]{
+                { 34, 231, 42},
+                { 2, -6, 23},
+                { 123, 0, 0},
+                { -10, 23, 0},
+                { 61, 70, 1}
+            };
+
+            arrayScnd = new double[,]{
+                { 10, 1, 20},
+                { 1, 23, 1},
+                { -5, 1, 24}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixScnd = new MyMatrix(arrayScnd);
+
+            Assert.Throws<Exception>(() => matrixFrst + matrixScnd);
+        }
+
+        [Fact]
+        public void DifferenceTest()
+        {
+            // 1
+            double[,] arrayFrst = {
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0}
+            };
+
+            double[,] arrayScnd = {
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1}
+            };
+
+            double[,] arrayExpectedResult = {
+                { -1, -1, -1},
+                { -1, -1, -1},
+                { -1, -1, -1},
+                { -1, -1, -1},
+                { -1, -1, -1}
+            };
+
+            MyMatrix matrixFrst = new MyMatrix(arrayFrst);
+            MyMatrix matrixScnd = new MyMatrix(arrayScnd);
+            MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            MyMatrix matrixActualResult = matrixFrst - matrixScnd;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 2
+            arrayFrst = new double[,]{
+                { 34, 231, 42},
+                { 2, -6, 23},
+                { 123, 0, 0},
+                { -10, 23, 0},
+                { 61, 70, 1}
+            };
+
+            arrayScnd = new double[,]{
+                { 10, 1, 20},
+                { 1, 23, 1},
+                { 78, 11, 1},
+                { 1, 222, 1},
+                { -5, 1, 24}
+            };
+
+            arrayExpectedResult = new double[,]{
+                { 24, 230, 22},
+                { 1, -29, 22},
+                { 45, -11, -1},
+                { -11, -199, -1},
+                { 66, 69, -23}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixScnd = new MyMatrix(arrayScnd);
+            matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            matrixActualResult = matrixFrst - matrixScnd;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 3
+            arrayFrst = new double[,]{
+                { 34, 231, 42},
+                { 2, -6, 23},
+                { 123, 0, 0},
+                { -10, 23, 0},
+                { 61, 70, 1}
+            };
+
+            arrayScnd = new double[,]{
+                { 10, 1, 20},
+                { 1, 23, 1},
+                { -5, 1, 24}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixScnd = new MyMatrix(arrayScnd);
+
+            Assert.Throws<Exception>(() => matrixFrst - matrixScnd);
+        }
+
+        [Fact]
+        public void MultiplicationOnScalarTest()
+        {
+            // 1
+            double[,] arrayFrst = {
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0}
+            };
+
+            double scalar = 2.5;
+
+            double[,] arrayExpectedResult = {
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0}
+            };
+
+            MyMatrix matrixFrst = new MyMatrix(arrayFrst);
+            MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            MyMatrix matrixActualResult = matrixFrst * scalar;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 2
+            arrayFrst = new double[,]{
+                { 100, 20, 25 },
+                { -100, -20, -25},
+                { 0, 0, 0},
+                { -1, 1, 10},
+                { -125, 125, 1}
+            };
+
+            scalar = 3;
+
+            arrayExpectedResult = new double[,]{
+                { 300, 60, 75},
+                { -300, -60, -75},
+                { 0, 0, 0},
+                { -3, 3, 30},
+                { -375, 375, 3}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            matrixActualResult = matrixFrst * scalar;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 3
+            arrayFrst = new double[,]{
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1},
+                { 1, 1, 1}
+            };
+
+            scalar = 2.7;
+
+            arrayExpectedResult = new double[,]{
+                { 2.7, 2.7, 2.7},
+                { 2.7, 2.7, 2.7},
+                { 2.7, 2.7, 2.7},
+                { 2.7, 2.7, 2.7},
+                { 2.7, 2.7, 2.7}
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            matrixActualResult = matrixFrst * scalar;
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+        }
+
+        [Fact]
+        public void TranspositionTest()
+        {
+            // 1
+            double[,] arrayFrst = {
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0},
+                { 0, 0, 0}
+            };
+
+            double[,] arrayExpectedResult = {
+                { 0, 0, 0, 0, 0},
+                { 0, 0, 0, 0, 0},
+                { 0, 0, 0, 0, 0}
+            };
+
+            MyMatrix matrixFrst = new MyMatrix(arrayFrst);
+            MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            MyMatrix matrixActualResult = MyMatrix.Transpose(matrixFrst);
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+
+            // 2
+            arrayFrst = new double[,]{
+                { 1, 2, 3 },
+                { 4, 5, 6},
+                { 7, 8, 9},
+                { 10, 11, 12},
+                { 13, 14, 15}
+            };
+
+            arrayExpectedResult = new double[,]{
+                { 1, 4, 7, 10, 13},
+                { 2, 5, 8, 11, 14},
+                { 3, 6, 9, 12, 15},
+            };
+
+            matrixFrst = new MyMatrix(arrayFrst);
+            matrixExpectedResult = new MyMatrix(arrayExpectedResult);
+            matrixActualResult = MyMatrix.Transpose(matrixFrst);
+
+            Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
+        }
+    }
+}

+ 21 - 0
TestProject/TestProject.csproj

@@ -0,0 +1,21 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
+    <PackageReference Include="MSTest.TestAdapter" Version="2.2.7" />
+    <PackageReference Include="MSTest.TestFramework" Version="2.2.7" />
+    <PackageReference Include="coverlet.collector" Version="3.1.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\MatrixXAMLOnly\MatrixXAMLOnly.csproj" />
+  </ItemGroup>
+
+</Project>

+ 13 - 0
TestProject/UnitTest1.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace TestProject
+{
+    [TestClass]
+    public class UnitTest1
+    {
+        [TestMethod]
+        public void AdditionTest()
+        {
+        }
+    }
+}