@@ -74,4 +74,57 @@ public function testSemVer()
7474 $ this ->assertFalse (Operators::apply ("semVerLessThan " , "2.0.0 " , "xbad%ver " ));
7575 $ this ->assertFalse (Operators::apply ("semVerGreaterThan " , "2.0.0 " , "xbad%ver " ));
7676 }
77+
78+ public function comparisonOperators (): array
79+ {
80+ return [
81+ ["lessThan " , 100 , 200 , true ],
82+ ["lessThan " , 200 , 100 , false ],
83+ ["lessThan " , 100 , 100 , false ],
84+ ["lessThan " , "100 " , 200 , false ],
85+ ["lessThan " , "100 " , "200 " , false ],
86+ ["lessThan " , 100 , "200 " , false ],
87+ ["lessThan " , 100 , true , false ],
88+ ["lessThan " , true , 100 , false ],
89+ ["lessThan " , true , true , false ],
90+
91+ ["lessThanOrEqual " , 100 , 200 , true ],
92+ ["lessThanOrEqual " , 200 , 100 , false ],
93+ ["lessThanOrEqual " , 100 , 100 , true ],
94+ ["lessThanOrEqual " , "100 " , 200 , false ],
95+ ["lessThanOrEqual " , "100 " , "200 " , false ],
96+ ["lessThanOrEqual " , 100 , "200 " , false ],
97+ ["lessThanOrEqual " , 100 , true , false ],
98+ ["lessThanOrEqual " , true , 100 , false ],
99+ ["lessThanOrEqual " , true , true , false ],
100+
101+ ["greaterThan " , 100 , 200 , false ],
102+ ["greaterThan " , 200 , 100 , true ],
103+ ["greaterThan " , 100 , 100 , false ],
104+ ["greaterThan " , "100 " , 200 , false ],
105+ ["greaterThan " , "100 " , "200 " , false ],
106+ ["greaterThan " , 100 , "200 " , false ],
107+ ["greaterThan " , 100 , true , false ],
108+ ["greaterThan " , true , 100 , false ],
109+ ["greaterThan " , true , true , false ],
110+
111+ ["greaterThanOrEqual " , 100 , 200 , false ],
112+ ["greaterThanOrEqual " , 200 , 100 , true ],
113+ ["greaterThanOrEqual " , 100 , 100 , true ],
114+ ["greaterThanOrEqual " , "100 " , 200 , false ],
115+ ["greaterThanOrEqual " , "100 " , "200 " , false ],
116+ ["greaterThanOrEqual " , 100 , "200 " , false ],
117+ ["greaterThanOrEqual " , 100 , true , false ],
118+ ["greaterThanOrEqual " , true , 100 , false ],
119+ ["greaterThanOrEqual " , true , true , false ],
120+ ];
121+ }
122+
123+ /**
124+ * @dataProvider comparisonOperators
125+ */
126+ public function testComparisonOperators ($ operator , $ lhs , $ rhs , $ expected )
127+ {
128+ $ this ->assertEquals ($ expected , Operators::apply ($ operator , $ lhs , $ rhs ));
129+ }
77130}
0 commit comments