UnitTest1.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. using Xunit;
  2. using Matrix;
  3. using System;
  4. namespace TestMatrix
  5. {
  6. public class UnitTest
  7. {
  8. [Fact]
  9. public void AdditionTest()
  10. {
  11. // 1
  12. double[,] arrayFrst = {
  13. { 0, 0, 0},
  14. { 0, 0, 0},
  15. { 0, 0, 0},
  16. { 0, 0, 0},
  17. { 0, 0, 0}
  18. };
  19. double[,] arrayScnd = {
  20. { 1, 1, 1},
  21. { 1, 1, 1},
  22. { 1, 1, 1},
  23. { 1, 1, 1},
  24. { 1, 1, 1}
  25. };
  26. double[,] arrayExpectedResult = {
  27. { 1, 1, 1},
  28. { 1, 1, 1},
  29. { 1, 1, 1},
  30. { 1, 1, 1},
  31. { 1, 1, 1}
  32. };
  33. MyMatrix matrixFrst = new MyMatrix(arrayFrst);
  34. MyMatrix matrixScnd = new MyMatrix(arrayScnd);
  35. MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  36. MyMatrix matrixActualResult = matrixFrst + matrixScnd;
  37. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  38. // 2
  39. arrayFrst = new double[,]{
  40. { 34, 231, 42},
  41. { 2, -6, 23},
  42. { 123, 0, 0},
  43. { -10, 23, 0},
  44. { 61, 70, 1}
  45. };
  46. arrayScnd = new double[,]{
  47. { 10, 1, 20},
  48. { 1, 23, 1},
  49. { 78, 11, 1},
  50. { 1, 222, 1},
  51. { -5, 1, 24}
  52. };
  53. arrayExpectedResult = new double[,]{
  54. { 44, 232, 62},
  55. { 3, 17, 24},
  56. { 201, 11, 1},
  57. { -9, 245, 1},
  58. { 56, 71, 25}
  59. };
  60. matrixFrst = new MyMatrix(arrayFrst);
  61. matrixScnd = new MyMatrix(arrayScnd);
  62. matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  63. matrixActualResult = matrixFrst + matrixScnd;
  64. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  65. // 3
  66. arrayFrst = new double[,]{
  67. { 34, 231, 42},
  68. { 2, -6, 23},
  69. { 123, 0, 0},
  70. { -10, 23, 0},
  71. { 61, 70, 1}
  72. };
  73. arrayScnd = new double[,]{
  74. { 10, 1, 20},
  75. { 1, 23, 1},
  76. { -5, 1, 24}
  77. };
  78. matrixFrst = new MyMatrix(arrayFrst);
  79. matrixScnd = new MyMatrix(arrayScnd);
  80. Assert.Throws<Exception>(() => matrixFrst + matrixScnd);
  81. }
  82. [Fact]
  83. public void DifferenceTest()
  84. {
  85. // 1
  86. double[,] arrayFrst = {
  87. { 0, 0, 0},
  88. { 0, 0, 0},
  89. { 0, 0, 0},
  90. { 0, 0, 0},
  91. { 0, 0, 0}
  92. };
  93. double[,] arrayScnd = {
  94. { 1, 1, 1},
  95. { 1, 1, 1},
  96. { 1, 1, 1},
  97. { 1, 1, 1},
  98. { 1, 1, 1}
  99. };
  100. double[,] arrayExpectedResult = {
  101. { -1, -1, -1},
  102. { -1, -1, -1},
  103. { -1, -1, -1},
  104. { -1, -1, -1},
  105. { -1, -1, -1}
  106. };
  107. MyMatrix matrixFrst = new MyMatrix(arrayFrst);
  108. MyMatrix matrixScnd = new MyMatrix(arrayScnd);
  109. MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  110. MyMatrix matrixActualResult = matrixFrst - matrixScnd;
  111. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  112. // 2
  113. arrayFrst = new double[,]{
  114. { 34, 231, 42},
  115. { 2, -6, 23},
  116. { 123, 0, 0},
  117. { -10, 23, 0},
  118. { 61, 70, 1}
  119. };
  120. arrayScnd = new double[,]{
  121. { 10, 1, 20},
  122. { 1, 23, 1},
  123. { 78, 11, 1},
  124. { 1, 222, 1},
  125. { -5, 1, 24}
  126. };
  127. arrayExpectedResult = new double[,]{
  128. { 24, 230, 22},
  129. { 1, -29, 22},
  130. { 45, -11, -1},
  131. { -11, -199, -1},
  132. { 66, 69, -23}
  133. };
  134. matrixFrst = new MyMatrix(arrayFrst);
  135. matrixScnd = new MyMatrix(arrayScnd);
  136. matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  137. matrixActualResult = matrixFrst - matrixScnd;
  138. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  139. // 3
  140. arrayFrst = new double[,]{
  141. { 34, 231, 42},
  142. { 2, -6, 23},
  143. { 123, 0, 0},
  144. { -10, 23, 0},
  145. { 61, 70, 1}
  146. };
  147. arrayScnd = new double[,]{
  148. { 10, 1, 20},
  149. { 1, 23, 1},
  150. { -5, 1, 24}
  151. };
  152. matrixFrst = new MyMatrix(arrayFrst);
  153. matrixScnd = new MyMatrix(arrayScnd);
  154. Assert.Throws<Exception>(() => matrixFrst - matrixScnd);
  155. }
  156. [Fact]
  157. public void MultiplicationOnScalarTest()
  158. {
  159. // 1
  160. double[,] arrayFrst = {
  161. { 0, 0, 0},
  162. { 0, 0, 0},
  163. { 0, 0, 0},
  164. { 0, 0, 0},
  165. { 0, 0, 0}
  166. };
  167. double scalar = 2.5;
  168. double[,] arrayExpectedResult = {
  169. { 0, 0, 0},
  170. { 0, 0, 0},
  171. { 0, 0, 0},
  172. { 0, 0, 0},
  173. { 0, 0, 0}
  174. };
  175. MyMatrix matrixFrst = new MyMatrix(arrayFrst);
  176. MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  177. MyMatrix matrixActualResult = matrixFrst * scalar;
  178. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  179. // 2
  180. arrayFrst = new double[,]{
  181. { 100, 20, 25 },
  182. { -100, -20, -25},
  183. { 0, 0, 0},
  184. { -1, 1, 10},
  185. { -125, 125, 1}
  186. };
  187. scalar = 3;
  188. arrayExpectedResult = new double[,]{
  189. { 300, 60, 75},
  190. { -300, -60, -75},
  191. { 0, 0, 0},
  192. { -3, 3, 30},
  193. { -375, 375, 3}
  194. };
  195. matrixFrst = new MyMatrix(arrayFrst);
  196. matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  197. matrixActualResult = matrixFrst * scalar;
  198. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  199. // 3
  200. arrayFrst = new double[,]{
  201. { 1, 1, 1},
  202. { 1, 1, 1},
  203. { 1, 1, 1},
  204. { 1, 1, 1},
  205. { 1, 1, 1}
  206. };
  207. scalar = 2.7;
  208. arrayExpectedResult = new double[,]{
  209. { 2.7, 2.7, 2.7},
  210. { 2.7, 2.7, 2.7},
  211. { 2.7, 2.7, 2.7},
  212. { 2.7, 2.7, 2.7},
  213. { 2.7, 2.7, 2.7}
  214. };
  215. matrixFrst = new MyMatrix(arrayFrst);
  216. matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  217. matrixActualResult = matrixFrst * scalar;
  218. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  219. }
  220. [Fact]
  221. public void TranspositionTest()
  222. {
  223. // 1
  224. double[,] arrayFrst = {
  225. { 0, 0, 0},
  226. { 0, 0, 0},
  227. { 0, 0, 0},
  228. { 0, 0, 0},
  229. { 0, 0, 0}
  230. };
  231. double[,] arrayExpectedResult = {
  232. { 0, 0, 0, 0, 0},
  233. { 0, 0, 0, 0, 0},
  234. { 0, 0, 0, 0, 0}
  235. };
  236. MyMatrix matrixFrst = new MyMatrix(arrayFrst);
  237. MyMatrix matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  238. MyMatrix matrixActualResult = MyMatrix.Transpose(matrixFrst);
  239. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  240. // 2
  241. arrayFrst = new double[,]{
  242. { 1, 2, 3 },
  243. { 4, 5, 6},
  244. { 7, 8, 9},
  245. { 10, 11, 12},
  246. { 13, 14, 15}
  247. };
  248. arrayExpectedResult = new double[,]{
  249. { 1, 4, 7, 10, 13},
  250. { 2, 5, 8, 11, 14},
  251. { 3, 6, 9, 12, 15},
  252. };
  253. matrixFrst = new MyMatrix(arrayFrst);
  254. matrixExpectedResult = new MyMatrix(arrayExpectedResult);
  255. matrixActualResult = MyMatrix.Transpose(matrixFrst);
  256. Assert.Equal(matrixExpectedResult.data, matrixActualResult.data);
  257. }
  258. }
  259. }