@@ -712,7 +712,9 @@ public function sayEmptyStr(
712712 * @param array{} $emptyArr
713713 * @param 'php' $phpStr
714714 * @param '' $emptyStr
715- * @param int<10, 20> $intRange
715+ * @param int<10, 20> $positiveIntRange
716+ * @param int<-20, -10> $negativeIntRange
717+ * @param int<-10, 10> $minusTenToTen
716718 */
717719 public function sayInt (
718720 $ true ,
@@ -728,7 +730,9 @@ public function sayInt(
728730 $ emptyArr ,
729731 array $ array ,
730732 int $ int ,
731- int $ intRange ,
733+ int $ positiveIntRange ,
734+ int $ negativeIntRange ,
735+ int $ minusTenToTen ,
732736 ): void
733737 {
734738 assertType ('bool ' , $ int == $ true );
@@ -744,8 +748,57 @@ public function sayInt(
744748 assertType ('false ' , $ int == $ emptyArr );
745749 assertType ('false ' , $ int == $ array );
746750
747- assertType ('false ' , $ intRange == $ emptyArr );
748- assertType ('false ' , $ intRange == $ array );
751+ assertType ('true ' , $ positiveIntRange == $ true );
752+ assertType ('false ' , $ positiveIntRange == $ false );
753+ assertType ('false ' , $ positiveIntRange == $ one );
754+ assertType ('false ' , $ positiveIntRange == $ zero );
755+ assertType ('false ' , $ positiveIntRange == $ minusOne );
756+ assertType ('false ' , $ positiveIntRange == $ oneStr );
757+ assertType ('false ' , $ positiveIntRange == $ zeroStr );
758+ assertType ('false ' , $ positiveIntRange == $ minusOneStr );
759+ assertType ('false ' , $ positiveIntRange == $ plusOneStr );
760+ assertType ('false ' , $ positiveIntRange == $ null );
761+ assertType ('false ' , $ positiveIntRange == $ emptyArr );
762+ assertType ('false ' , $ positiveIntRange == $ array );
763+
764+ assertType ('true ' , $ negativeIntRange == $ true );
765+ assertType ('false ' , $ negativeIntRange == $ false );
766+ assertType ('false ' , $ negativeIntRange == $ one );
767+ assertType ('false ' , $ negativeIntRange == $ zero );
768+ assertType ('false ' , $ negativeIntRange == $ minusOne );
769+ assertType ('false ' , $ negativeIntRange == $ oneStr );
770+ assertType ('false ' , $ negativeIntRange == $ zeroStr );
771+ assertType ('false ' , $ negativeIntRange == $ minusOneStr );
772+ assertType ('false ' , $ negativeIntRange == $ plusOneStr );
773+ assertType ('false ' , $ negativeIntRange == $ null );
774+ assertType ('false ' , $ negativeIntRange == $ emptyArr );
775+ assertType ('false ' , $ negativeIntRange == $ array );
776+
777+ // see https://3v4l.org/VudDK
778+ assertType ('bool ' , $ minusTenToTen == $ true );
779+ assertType ('bool ' , $ minusTenToTen == $ false );
780+ assertType ('bool ' , $ minusTenToTen == $ one );
781+ assertType ('bool ' , $ minusTenToTen == $ zero );
782+ assertType ('bool ' , $ minusTenToTen == $ minusOne );
783+ assertType ('bool ' , $ minusTenToTen == $ oneStr );
784+ assertType ('bool ' , $ minusTenToTen == $ zeroStr );
785+ assertType ('bool ' , $ minusTenToTen == $ minusOneStr );
786+ assertType ('bool ' , $ minusTenToTen == $ plusOneStr );
787+ assertType ('bool ' , $ minusTenToTen == $ null );
788+ assertType ('false ' , $ minusTenToTen == $ emptyArr );
789+ assertType ('false ' , $ minusTenToTen == $ array );
790+
791+ // see https://3v4l.org/oJl3K
792+ assertType ('false ' , $ minusTenToTen < $ null );
793+ assertType ('bool ' , $ minusTenToTen > $ null );
794+ assertType ('bool ' , $ minusTenToTen <= $ null );
795+ assertType ('true ' , $ minusTenToTen >= $ null );
796+
797+ // see https://3v4l.org/oRSgU
798+ assertType ('bool ' , $ null < $ minusTenToTen );
799+ assertType ('false ' , $ null > $ minusTenToTen );
800+ assertType ('true ' , $ null <= $ minusTenToTen );
801+ assertType ('bool ' , $ null >= $ minusTenToTen );
749802
750803 }
751804
0 commit comments