NumericDiagonalMatrixTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace MathPHP\Tests\LinearAlgebra\Matrix\Numeric;
  3. use MathPHP\LinearAlgebra\NumericDiagonalMatrix;
  4. class NumericDiagonalMatrixTest extends \PHPUnit\Framework\TestCase
  5. {
  6. /** @var NumericDiagonalMatrix */
  7. private $matrix;
  8. public function setUp(): void
  9. {
  10. // Given
  11. $this->matrix = new NumericDiagonalMatrix([
  12. [2, 0, 0],
  13. [0, 2, 0],
  14. [0, 0, 2],
  15. ]);
  16. }
  17. /**
  18. * @test isSymmetric
  19. */
  20. public function testIsSymmetric(): void
  21. {
  22. // When
  23. $isSymmetric = $this->matrix->isSymmetric();
  24. // Then
  25. $this->assertTrue($isSymmetric);
  26. }
  27. /**
  28. * @test isLowerTriangular
  29. */
  30. public function testIsLowerTriangular(): void
  31. {
  32. // When
  33. $isLowerTriangular = $this->matrix->isLowerTriangular();
  34. // Then
  35. $this->assertTrue($isLowerTriangular);
  36. }
  37. /**
  38. * @test isUpperTriangular
  39. */
  40. public function testIsUpperTriangular(): void
  41. {
  42. // When
  43. $isUpperTriangular = $this->matrix->isUpperTriangular();
  44. // Then
  45. $this->assertTrue($isUpperTriangular);
  46. }
  47. /**
  48. * @test isTriangular
  49. */
  50. public function testIsTriangular(): void
  51. {
  52. // When
  53. $isTriangular = $this->matrix->isTriangular();
  54. // Then
  55. $this->assertTrue($isTriangular);
  56. }
  57. /**
  58. * @test isDiagonal
  59. */
  60. public function testIsDiagonal(): void
  61. {
  62. // When
  63. $isDiagonal = $this->matrix->isDiagonal();
  64. // Then
  65. $this->assertTrue($isDiagonal);
  66. }
  67. /**
  68. * @test inverse
  69. */
  70. public function testInverse(): void
  71. {
  72. // Given
  73. $expected = [
  74. [1/2, 0, 0],
  75. [0, 1/2, 0],
  76. [0, 0, 1/2],
  77. ];
  78. // When
  79. $inverse = $this->matrix->inverse();
  80. // Then
  81. $this->assertEquals($expected, $inverse->getMatrix());
  82. }
  83. }