@@ -254,8 +254,12 @@ def do_compare(self, l1, l2) -> Union[bool, None]:
254254 def apply (self , items , evaluation ):
255255 "%(name)s[items___]"
256256 items_sequence = items .get_sequence ()
257- if len (items_sequence ) <= 1 :
257+ n = len (items_sequence )
258+ if n <= 1 :
258259 return SymbolTrue
260+ is_exact_vals = [Expression ("ExactNumberQ" , arg ).evaluate (evaluation ) for arg in items_sequence ]
261+ if all (val == SymbolTrue for val in is_exact_vals ):
262+ return self .apply_other (items , evaluation )
259263 args = self .numerify_args (items , evaluation )
260264 wanted = operators [self .get_name ()]
261265 for x , y in itertools .combinations (args , 2 ):
@@ -274,7 +278,7 @@ def apply(self, items, evaluation):
274278 return SymbolTrue
275279
276280 def apply_other (self , args , evaluation ):
277- "%(name)s[args___?(!RealNumberQ [#]&)]"
281+ "%(name)s[args___?(!ExactNumberQ [#]&)]"
278282 args = args .get_sequence ()
279283 for x , y in itertools .combinations (args , 2 ):
280284 c = self .do_compare (x , y )
@@ -285,6 +289,7 @@ def apply_other(self, args, evaluation):
285289 return SymbolTrue
286290
287291
292+
288293class _ComparisonOperator (_InequalityOperator ):
289294 "Compares arguments in a chain e.g. a < b < c compares a < b and b < c."
290295
0 commit comments