Merge pull request #20951 from eileenmcnaughton/act
[civicrm-core.git] / Civi / Test / GenericAssertionsTrait.php
index 0d53d034ba372f201fc34cf8d270d84c500d5829..d5a4557edeca3957a96d8b02335b6f7eb296dfc1 100644 (file)
@@ -35,8 +35,8 @@ trait GenericAssertionsTrait {
    * @param array $actual
    */
   public function assertTreeEquals($expected, $actual) {
-    $e = array();
-    $a = array();
+    $e = [];
+    $a = [];
     \CRM_Utils_Array::flatten($expected, $e, '', ':::');
     \CRM_Utils_Array::flatten($actual, $a, '', ':::');
     ksort($e);
@@ -57,6 +57,10 @@ trait GenericAssertionsTrait {
    * @param string $message
    */
   public function assertApproxEquals($expected, $actual, $tolerance, $message = NULL) {
+    if ($tolerance == 1 && is_int($expected) && is_int($actual)) {
+      //           ^^ loose equality is on purpose
+      throw new \CRM_Core_Exception('assertApproxEquals is a fractions-first thinking function and compares integers with a tolerance of 1 as if they are identical. You want a bigger number, such as 2, or 5.');
+    }
     $diff = abs($actual - $expected);
     if ($message === NULL) {
       $message = sprintf("approx-equals: expected=[%.3f] actual=[%.3f] diff=[%.3f] tolerance=[%.3f]", $expected, $actual, $diff, $tolerance);