complexAssert.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. include_once dirname(__FILE__).'/Complex.php';
  3. class complexAssert
  4. {
  5. private $_errorMessage = '';
  6. public function assertComplexEquals($expected, $actual, $delta = 0)
  7. {
  8. if ($expected{0} === '#') {
  9. // Expecting an error, so we do a straight string comparison
  10. if ($expected === $actual) {
  11. return true;
  12. }
  13. $this->_errorMessage = 'Expected Error: ' . $actual . ' !== ' . $expected;
  14. return false;
  15. }
  16. $expectedComplex = new Complex($expected);
  17. $actualComplex = new Complex($actual);
  18. if (!is_numeric($actualComplex->getReal()) || !is_numeric($expectedComplex->getReal())) {
  19. if ($actualComplex->getReal() !== $expectedComplex->getReal()) {
  20. $this->_errorMessage = 'Mismatched String: ' . $actualComplex->getReal() . ' !== ' . $expectedComplex->getReal();
  21. return false;
  22. }
  23. return true;
  24. }
  25. if ($actualComplex->getReal() < ($expectedComplex->getReal() - $delta) ||
  26. $actualComplex->getReal() > ($expectedComplex->getReal() + $delta)) {
  27. $this->_errorMessage = 'Mismatched Real part: ' . $actualComplex->getReal() . ' != ' . $expectedComplex->getReal();
  28. return false;
  29. }
  30. if ($actualComplex->getImaginary() < ($expectedComplex->getImaginary() - $delta) ||
  31. $actualComplex->getImaginary() > ($expectedComplex->getImaginary() + $delta)) {
  32. $this->_errorMessage = 'Mismatched Imaginary part: ' . $actualComplex->getImaginary() . ' != ' . $expectedComplex->getImaginary();
  33. return false;
  34. }
  35. if ($actualComplex->getSuffix() !== $actualComplex->getSuffix()) {
  36. $this->_errorMessage = 'Mismatched Suffix: ' . $actualComplex->getSuffix() . ' != ' . $expectedComplex->getSuffix();
  37. return false;
  38. }
  39. return true;
  40. }
  41. public function getErrorMessage()
  42. {
  43. return $this->_errorMessage;
  44. }
  45. }