1--TEST--
2version_compare test
3--FILE--
4<?php
5
6print "TESTING COMPARE\n";
7$special_forms = array("-dev", "a1", "b1", "RC1", "rc1", "", "pl1");
8$operators = array(
9    "lt", "<",
10    "le", "<=",
11    "gt", ">",
12    "ge", ">=",
13    "eq", "=", "==",
14    "ne", "<>", "!="
15);
16test("1", "2");
17test("10", "2");
18test("1.0", "1.1");
19test("1.2", "1.0.1");
20foreach ($special_forms as $f1) {
21    foreach ($special_forms as $f2) {
22    test("1.0$f1", "1.0$f2");
23    }
24}
25print "TESTING OPERATORS\n";
26foreach ($special_forms as $f1) {
27    foreach ($special_forms as $f2) {
28        foreach ($operators as $op) {
29            $v1 = "1.0$f1";
30            $v2 = "1.0$f2";
31            $test = version_compare($v1, $v2, $op) ? "true" : "false";
32            printf("%7s %2s %-7s : %s\n", $v1, $op, $v2, $test);
33        }
34    }
35}
36
37function test($v1, $v2) {
38    $compare = version_compare($v1, $v2);
39    switch ($compare) {
40    case -1:
41        print "$v1 < $v2\n";
42        break;
43    case 1:
44        print "$v1 > $v2\n";
45        break;
46    case 0:
47    default:
48        print "$v1 = $v2\n";
49        break;
50    }
51}
52
53?>
54--EXPECT--
55TESTING COMPARE
561 < 2
5710 > 2
581.0 < 1.1
591.2 > 1.0.1
601.0-dev = 1.0-dev
611.0-dev < 1.0a1
621.0-dev < 1.0b1
631.0-dev < 1.0RC1
641.0-dev < 1.0rc1
651.0-dev < 1.0
661.0-dev < 1.0pl1
671.0a1 > 1.0-dev
681.0a1 = 1.0a1
691.0a1 < 1.0b1
701.0a1 < 1.0RC1
711.0a1 < 1.0rc1
721.0a1 < 1.0
731.0a1 < 1.0pl1
741.0b1 > 1.0-dev
751.0b1 > 1.0a1
761.0b1 = 1.0b1
771.0b1 < 1.0RC1
781.0b1 < 1.0rc1
791.0b1 < 1.0
801.0b1 < 1.0pl1
811.0RC1 > 1.0-dev
821.0RC1 > 1.0a1
831.0RC1 > 1.0b1
841.0RC1 = 1.0RC1
851.0RC1 = 1.0rc1
861.0RC1 < 1.0
871.0RC1 < 1.0pl1
881.0rc1 > 1.0-dev
891.0rc1 > 1.0a1
901.0rc1 > 1.0b1
911.0rc1 = 1.0RC1
921.0rc1 = 1.0rc1
931.0rc1 < 1.0
941.0rc1 < 1.0pl1
951.0 > 1.0-dev
961.0 > 1.0a1
971.0 > 1.0b1
981.0 > 1.0RC1
991.0 > 1.0rc1
1001.0 = 1.0
1011.0 < 1.0pl1
1021.0pl1 > 1.0-dev
1031.0pl1 > 1.0a1
1041.0pl1 > 1.0b1
1051.0pl1 > 1.0RC1
1061.0pl1 > 1.0rc1
1071.0pl1 > 1.0
1081.0pl1 = 1.0pl1
109TESTING OPERATORS
1101.0-dev lt 1.0-dev : false
1111.0-dev  < 1.0-dev : false
1121.0-dev le 1.0-dev : true
1131.0-dev <= 1.0-dev : true
1141.0-dev gt 1.0-dev : false
1151.0-dev  > 1.0-dev : false
1161.0-dev ge 1.0-dev : true
1171.0-dev >= 1.0-dev : true
1181.0-dev eq 1.0-dev : true
1191.0-dev  = 1.0-dev : true
1201.0-dev == 1.0-dev : true
1211.0-dev ne 1.0-dev : false
1221.0-dev <> 1.0-dev : false
1231.0-dev != 1.0-dev : false
1241.0-dev lt 1.0a1   : true
1251.0-dev  < 1.0a1   : true
1261.0-dev le 1.0a1   : true
1271.0-dev <= 1.0a1   : true
1281.0-dev gt 1.0a1   : false
1291.0-dev  > 1.0a1   : false
1301.0-dev ge 1.0a1   : false
1311.0-dev >= 1.0a1   : false
1321.0-dev eq 1.0a1   : false
1331.0-dev  = 1.0a1   : false
1341.0-dev == 1.0a1   : false
1351.0-dev ne 1.0a1   : true
1361.0-dev <> 1.0a1   : true
1371.0-dev != 1.0a1   : true
1381.0-dev lt 1.0b1   : true
1391.0-dev  < 1.0b1   : true
1401.0-dev le 1.0b1   : true
1411.0-dev <= 1.0b1   : true
1421.0-dev gt 1.0b1   : false
1431.0-dev  > 1.0b1   : false
1441.0-dev ge 1.0b1   : false
1451.0-dev >= 1.0b1   : false
1461.0-dev eq 1.0b1   : false
1471.0-dev  = 1.0b1   : false
1481.0-dev == 1.0b1   : false
1491.0-dev ne 1.0b1   : true
1501.0-dev <> 1.0b1   : true
1511.0-dev != 1.0b1   : true
1521.0-dev lt 1.0RC1  : true
1531.0-dev  < 1.0RC1  : true
1541.0-dev le 1.0RC1  : true
1551.0-dev <= 1.0RC1  : true
1561.0-dev gt 1.0RC1  : false
1571.0-dev  > 1.0RC1  : false
1581.0-dev ge 1.0RC1  : false
1591.0-dev >= 1.0RC1  : false
1601.0-dev eq 1.0RC1  : false
1611.0-dev  = 1.0RC1  : false
1621.0-dev == 1.0RC1  : false
1631.0-dev ne 1.0RC1  : true
1641.0-dev <> 1.0RC1  : true
1651.0-dev != 1.0RC1  : true
1661.0-dev lt 1.0rc1  : true
1671.0-dev  < 1.0rc1  : true
1681.0-dev le 1.0rc1  : true
1691.0-dev <= 1.0rc1  : true
1701.0-dev gt 1.0rc1  : false
1711.0-dev  > 1.0rc1  : false
1721.0-dev ge 1.0rc1  : false
1731.0-dev >= 1.0rc1  : false
1741.0-dev eq 1.0rc1  : false
1751.0-dev  = 1.0rc1  : false
1761.0-dev == 1.0rc1  : false
1771.0-dev ne 1.0rc1  : true
1781.0-dev <> 1.0rc1  : true
1791.0-dev != 1.0rc1  : true
1801.0-dev lt 1.0     : true
1811.0-dev  < 1.0     : true
1821.0-dev le 1.0     : true
1831.0-dev <= 1.0     : true
1841.0-dev gt 1.0     : false
1851.0-dev  > 1.0     : false
1861.0-dev ge 1.0     : false
1871.0-dev >= 1.0     : false
1881.0-dev eq 1.0     : false
1891.0-dev  = 1.0     : false
1901.0-dev == 1.0     : false
1911.0-dev ne 1.0     : true
1921.0-dev <> 1.0     : true
1931.0-dev != 1.0     : true
1941.0-dev lt 1.0pl1  : true
1951.0-dev  < 1.0pl1  : true
1961.0-dev le 1.0pl1  : true
1971.0-dev <= 1.0pl1  : true
1981.0-dev gt 1.0pl1  : false
1991.0-dev  > 1.0pl1  : false
2001.0-dev ge 1.0pl1  : false
2011.0-dev >= 1.0pl1  : false
2021.0-dev eq 1.0pl1  : false
2031.0-dev  = 1.0pl1  : false
2041.0-dev == 1.0pl1  : false
2051.0-dev ne 1.0pl1  : true
2061.0-dev <> 1.0pl1  : true
2071.0-dev != 1.0pl1  : true
208  1.0a1 lt 1.0-dev : false
209  1.0a1  < 1.0-dev : false
210  1.0a1 le 1.0-dev : false
211  1.0a1 <= 1.0-dev : false
212  1.0a1 gt 1.0-dev : true
213  1.0a1  > 1.0-dev : true
214  1.0a1 ge 1.0-dev : true
215  1.0a1 >= 1.0-dev : true
216  1.0a1 eq 1.0-dev : false
217  1.0a1  = 1.0-dev : false
218  1.0a1 == 1.0-dev : false
219  1.0a1 ne 1.0-dev : true
220  1.0a1 <> 1.0-dev : true
221  1.0a1 != 1.0-dev : true
222  1.0a1 lt 1.0a1   : false
223  1.0a1  < 1.0a1   : false
224  1.0a1 le 1.0a1   : true
225  1.0a1 <= 1.0a1   : true
226  1.0a1 gt 1.0a1   : false
227  1.0a1  > 1.0a1   : false
228  1.0a1 ge 1.0a1   : true
229  1.0a1 >= 1.0a1   : true
230  1.0a1 eq 1.0a1   : true
231  1.0a1  = 1.0a1   : true
232  1.0a1 == 1.0a1   : true
233  1.0a1 ne 1.0a1   : false
234  1.0a1 <> 1.0a1   : false
235  1.0a1 != 1.0a1   : false
236  1.0a1 lt 1.0b1   : true
237  1.0a1  < 1.0b1   : true
238  1.0a1 le 1.0b1   : true
239  1.0a1 <= 1.0b1   : true
240  1.0a1 gt 1.0b1   : false
241  1.0a1  > 1.0b1   : false
242  1.0a1 ge 1.0b1   : false
243  1.0a1 >= 1.0b1   : false
244  1.0a1 eq 1.0b1   : false
245  1.0a1  = 1.0b1   : false
246  1.0a1 == 1.0b1   : false
247  1.0a1 ne 1.0b1   : true
248  1.0a1 <> 1.0b1   : true
249  1.0a1 != 1.0b1   : true
250  1.0a1 lt 1.0RC1  : true
251  1.0a1  < 1.0RC1  : true
252  1.0a1 le 1.0RC1  : true
253  1.0a1 <= 1.0RC1  : true
254  1.0a1 gt 1.0RC1  : false
255  1.0a1  > 1.0RC1  : false
256  1.0a1 ge 1.0RC1  : false
257  1.0a1 >= 1.0RC1  : false
258  1.0a1 eq 1.0RC1  : false
259  1.0a1  = 1.0RC1  : false
260  1.0a1 == 1.0RC1  : false
261  1.0a1 ne 1.0RC1  : true
262  1.0a1 <> 1.0RC1  : true
263  1.0a1 != 1.0RC1  : true
264  1.0a1 lt 1.0rc1  : true
265  1.0a1  < 1.0rc1  : true
266  1.0a1 le 1.0rc1  : true
267  1.0a1 <= 1.0rc1  : true
268  1.0a1 gt 1.0rc1  : false
269  1.0a1  > 1.0rc1  : false
270  1.0a1 ge 1.0rc1  : false
271  1.0a1 >= 1.0rc1  : false
272  1.0a1 eq 1.0rc1  : false
273  1.0a1  = 1.0rc1  : false
274  1.0a1 == 1.0rc1  : false
275  1.0a1 ne 1.0rc1  : true
276  1.0a1 <> 1.0rc1  : true
277  1.0a1 != 1.0rc1  : true
278  1.0a1 lt 1.0     : true
279  1.0a1  < 1.0     : true
280  1.0a1 le 1.0     : true
281  1.0a1 <= 1.0     : true
282  1.0a1 gt 1.0     : false
283  1.0a1  > 1.0     : false
284  1.0a1 ge 1.0     : false
285  1.0a1 >= 1.0     : false
286  1.0a1 eq 1.0     : false
287  1.0a1  = 1.0     : false
288  1.0a1 == 1.0     : false
289  1.0a1 ne 1.0     : true
290  1.0a1 <> 1.0     : true
291  1.0a1 != 1.0     : true
292  1.0a1 lt 1.0pl1  : true
293  1.0a1  < 1.0pl1  : true
294  1.0a1 le 1.0pl1  : true
295  1.0a1 <= 1.0pl1  : true
296  1.0a1 gt 1.0pl1  : false
297  1.0a1  > 1.0pl1  : false
298  1.0a1 ge 1.0pl1  : false
299  1.0a1 >= 1.0pl1  : false
300  1.0a1 eq 1.0pl1  : false
301  1.0a1  = 1.0pl1  : false
302  1.0a1 == 1.0pl1  : false
303  1.0a1 ne 1.0pl1  : true
304  1.0a1 <> 1.0pl1  : true
305  1.0a1 != 1.0pl1  : true
306  1.0b1 lt 1.0-dev : false
307  1.0b1  < 1.0-dev : false
308  1.0b1 le 1.0-dev : false
309  1.0b1 <= 1.0-dev : false
310  1.0b1 gt 1.0-dev : true
311  1.0b1  > 1.0-dev : true
312  1.0b1 ge 1.0-dev : true
313  1.0b1 >= 1.0-dev : true
314  1.0b1 eq 1.0-dev : false
315  1.0b1  = 1.0-dev : false
316  1.0b1 == 1.0-dev : false
317  1.0b1 ne 1.0-dev : true
318  1.0b1 <> 1.0-dev : true
319  1.0b1 != 1.0-dev : true
320  1.0b1 lt 1.0a1   : false
321  1.0b1  < 1.0a1   : false
322  1.0b1 le 1.0a1   : false
323  1.0b1 <= 1.0a1   : false
324  1.0b1 gt 1.0a1   : true
325  1.0b1  > 1.0a1   : true
326  1.0b1 ge 1.0a1   : true
327  1.0b1 >= 1.0a1   : true
328  1.0b1 eq 1.0a1   : false
329  1.0b1  = 1.0a1   : false
330  1.0b1 == 1.0a1   : false
331  1.0b1 ne 1.0a1   : true
332  1.0b1 <> 1.0a1   : true
333  1.0b1 != 1.0a1   : true
334  1.0b1 lt 1.0b1   : false
335  1.0b1  < 1.0b1   : false
336  1.0b1 le 1.0b1   : true
337  1.0b1 <= 1.0b1   : true
338  1.0b1 gt 1.0b1   : false
339  1.0b1  > 1.0b1   : false
340  1.0b1 ge 1.0b1   : true
341  1.0b1 >= 1.0b1   : true
342  1.0b1 eq 1.0b1   : true
343  1.0b1  = 1.0b1   : true
344  1.0b1 == 1.0b1   : true
345  1.0b1 ne 1.0b1   : false
346  1.0b1 <> 1.0b1   : false
347  1.0b1 != 1.0b1   : false
348  1.0b1 lt 1.0RC1  : true
349  1.0b1  < 1.0RC1  : true
350  1.0b1 le 1.0RC1  : true
351  1.0b1 <= 1.0RC1  : true
352  1.0b1 gt 1.0RC1  : false
353  1.0b1  > 1.0RC1  : false
354  1.0b1 ge 1.0RC1  : false
355  1.0b1 >= 1.0RC1  : false
356  1.0b1 eq 1.0RC1  : false
357  1.0b1  = 1.0RC1  : false
358  1.0b1 == 1.0RC1  : false
359  1.0b1 ne 1.0RC1  : true
360  1.0b1 <> 1.0RC1  : true
361  1.0b1 != 1.0RC1  : true
362  1.0b1 lt 1.0rc1  : true
363  1.0b1  < 1.0rc1  : true
364  1.0b1 le 1.0rc1  : true
365  1.0b1 <= 1.0rc1  : true
366  1.0b1 gt 1.0rc1  : false
367  1.0b1  > 1.0rc1  : false
368  1.0b1 ge 1.0rc1  : false
369  1.0b1 >= 1.0rc1  : false
370  1.0b1 eq 1.0rc1  : false
371  1.0b1  = 1.0rc1  : false
372  1.0b1 == 1.0rc1  : false
373  1.0b1 ne 1.0rc1  : true
374  1.0b1 <> 1.0rc1  : true
375  1.0b1 != 1.0rc1  : true
376  1.0b1 lt 1.0     : true
377  1.0b1  < 1.0     : true
378  1.0b1 le 1.0     : true
379  1.0b1 <= 1.0     : true
380  1.0b1 gt 1.0     : false
381  1.0b1  > 1.0     : false
382  1.0b1 ge 1.0     : false
383  1.0b1 >= 1.0     : false
384  1.0b1 eq 1.0     : false
385  1.0b1  = 1.0     : false
386  1.0b1 == 1.0     : false
387  1.0b1 ne 1.0     : true
388  1.0b1 <> 1.0     : true
389  1.0b1 != 1.0     : true
390  1.0b1 lt 1.0pl1  : true
391  1.0b1  < 1.0pl1  : true
392  1.0b1 le 1.0pl1  : true
393  1.0b1 <= 1.0pl1  : true
394  1.0b1 gt 1.0pl1  : false
395  1.0b1  > 1.0pl1  : false
396  1.0b1 ge 1.0pl1  : false
397  1.0b1 >= 1.0pl1  : false
398  1.0b1 eq 1.0pl1  : false
399  1.0b1  = 1.0pl1  : false
400  1.0b1 == 1.0pl1  : false
401  1.0b1 ne 1.0pl1  : true
402  1.0b1 <> 1.0pl1  : true
403  1.0b1 != 1.0pl1  : true
404 1.0RC1 lt 1.0-dev : false
405 1.0RC1  < 1.0-dev : false
406 1.0RC1 le 1.0-dev : false
407 1.0RC1 <= 1.0-dev : false
408 1.0RC1 gt 1.0-dev : true
409 1.0RC1  > 1.0-dev : true
410 1.0RC1 ge 1.0-dev : true
411 1.0RC1 >= 1.0-dev : true
412 1.0RC1 eq 1.0-dev : false
413 1.0RC1  = 1.0-dev : false
414 1.0RC1 == 1.0-dev : false
415 1.0RC1 ne 1.0-dev : true
416 1.0RC1 <> 1.0-dev : true
417 1.0RC1 != 1.0-dev : true
418 1.0RC1 lt 1.0a1   : false
419 1.0RC1  < 1.0a1   : false
420 1.0RC1 le 1.0a1   : false
421 1.0RC1 <= 1.0a1   : false
422 1.0RC1 gt 1.0a1   : true
423 1.0RC1  > 1.0a1   : true
424 1.0RC1 ge 1.0a1   : true
425 1.0RC1 >= 1.0a1   : true
426 1.0RC1 eq 1.0a1   : false
427 1.0RC1  = 1.0a1   : false
428 1.0RC1 == 1.0a1   : false
429 1.0RC1 ne 1.0a1   : true
430 1.0RC1 <> 1.0a1   : true
431 1.0RC1 != 1.0a1   : true
432 1.0RC1 lt 1.0b1   : false
433 1.0RC1  < 1.0b1   : false
434 1.0RC1 le 1.0b1   : false
435 1.0RC1 <= 1.0b1   : false
436 1.0RC1 gt 1.0b1   : true
437 1.0RC1  > 1.0b1   : true
438 1.0RC1 ge 1.0b1   : true
439 1.0RC1 >= 1.0b1   : true
440 1.0RC1 eq 1.0b1   : false
441 1.0RC1  = 1.0b1   : false
442 1.0RC1 == 1.0b1   : false
443 1.0RC1 ne 1.0b1   : true
444 1.0RC1 <> 1.0b1   : true
445 1.0RC1 != 1.0b1   : true
446 1.0RC1 lt 1.0RC1  : false
447 1.0RC1  < 1.0RC1  : false
448 1.0RC1 le 1.0RC1  : true
449 1.0RC1 <= 1.0RC1  : true
450 1.0RC1 gt 1.0RC1  : false
451 1.0RC1  > 1.0RC1  : false
452 1.0RC1 ge 1.0RC1  : true
453 1.0RC1 >= 1.0RC1  : true
454 1.0RC1 eq 1.0RC1  : true
455 1.0RC1  = 1.0RC1  : true
456 1.0RC1 == 1.0RC1  : true
457 1.0RC1 ne 1.0RC1  : false
458 1.0RC1 <> 1.0RC1  : false
459 1.0RC1 != 1.0RC1  : false
460 1.0RC1 lt 1.0rc1  : false
461 1.0RC1  < 1.0rc1  : false
462 1.0RC1 le 1.0rc1  : true
463 1.0RC1 <= 1.0rc1  : true
464 1.0RC1 gt 1.0rc1  : false
465 1.0RC1  > 1.0rc1  : false
466 1.0RC1 ge 1.0rc1  : true
467 1.0RC1 >= 1.0rc1  : true
468 1.0RC1 eq 1.0rc1  : true
469 1.0RC1  = 1.0rc1  : true
470 1.0RC1 == 1.0rc1  : true
471 1.0RC1 ne 1.0rc1  : false
472 1.0RC1 <> 1.0rc1  : false
473 1.0RC1 != 1.0rc1  : false
474 1.0RC1 lt 1.0     : true
475 1.0RC1  < 1.0     : true
476 1.0RC1 le 1.0     : true
477 1.0RC1 <= 1.0     : true
478 1.0RC1 gt 1.0     : false
479 1.0RC1  > 1.0     : false
480 1.0RC1 ge 1.0     : false
481 1.0RC1 >= 1.0     : false
482 1.0RC1 eq 1.0     : false
483 1.0RC1  = 1.0     : false
484 1.0RC1 == 1.0     : false
485 1.0RC1 ne 1.0     : true
486 1.0RC1 <> 1.0     : true
487 1.0RC1 != 1.0     : true
488 1.0RC1 lt 1.0pl1  : true
489 1.0RC1  < 1.0pl1  : true
490 1.0RC1 le 1.0pl1  : true
491 1.0RC1 <= 1.0pl1  : true
492 1.0RC1 gt 1.0pl1  : false
493 1.0RC1  > 1.0pl1  : false
494 1.0RC1 ge 1.0pl1  : false
495 1.0RC1 >= 1.0pl1  : false
496 1.0RC1 eq 1.0pl1  : false
497 1.0RC1  = 1.0pl1  : false
498 1.0RC1 == 1.0pl1  : false
499 1.0RC1 ne 1.0pl1  : true
500 1.0RC1 <> 1.0pl1  : true
501 1.0RC1 != 1.0pl1  : true
502 1.0rc1 lt 1.0-dev : false
503 1.0rc1  < 1.0-dev : false
504 1.0rc1 le 1.0-dev : false
505 1.0rc1 <= 1.0-dev : false
506 1.0rc1 gt 1.0-dev : true
507 1.0rc1  > 1.0-dev : true
508 1.0rc1 ge 1.0-dev : true
509 1.0rc1 >= 1.0-dev : true
510 1.0rc1 eq 1.0-dev : false
511 1.0rc1  = 1.0-dev : false
512 1.0rc1 == 1.0-dev : false
513 1.0rc1 ne 1.0-dev : true
514 1.0rc1 <> 1.0-dev : true
515 1.0rc1 != 1.0-dev : true
516 1.0rc1 lt 1.0a1   : false
517 1.0rc1  < 1.0a1   : false
518 1.0rc1 le 1.0a1   : false
519 1.0rc1 <= 1.0a1   : false
520 1.0rc1 gt 1.0a1   : true
521 1.0rc1  > 1.0a1   : true
522 1.0rc1 ge 1.0a1   : true
523 1.0rc1 >= 1.0a1   : true
524 1.0rc1 eq 1.0a1   : false
525 1.0rc1  = 1.0a1   : false
526 1.0rc1 == 1.0a1   : false
527 1.0rc1 ne 1.0a1   : true
528 1.0rc1 <> 1.0a1   : true
529 1.0rc1 != 1.0a1   : true
530 1.0rc1 lt 1.0b1   : false
531 1.0rc1  < 1.0b1   : false
532 1.0rc1 le 1.0b1   : false
533 1.0rc1 <= 1.0b1   : false
534 1.0rc1 gt 1.0b1   : true
535 1.0rc1  > 1.0b1   : true
536 1.0rc1 ge 1.0b1   : true
537 1.0rc1 >= 1.0b1   : true
538 1.0rc1 eq 1.0b1   : false
539 1.0rc1  = 1.0b1   : false
540 1.0rc1 == 1.0b1   : false
541 1.0rc1 ne 1.0b1   : true
542 1.0rc1 <> 1.0b1   : true
543 1.0rc1 != 1.0b1   : true
544 1.0rc1 lt 1.0RC1  : false
545 1.0rc1  < 1.0RC1  : false
546 1.0rc1 le 1.0RC1  : true
547 1.0rc1 <= 1.0RC1  : true
548 1.0rc1 gt 1.0RC1  : false
549 1.0rc1  > 1.0RC1  : false
550 1.0rc1 ge 1.0RC1  : true
551 1.0rc1 >= 1.0RC1  : true
552 1.0rc1 eq 1.0RC1  : true
553 1.0rc1  = 1.0RC1  : true
554 1.0rc1 == 1.0RC1  : true
555 1.0rc1 ne 1.0RC1  : false
556 1.0rc1 <> 1.0RC1  : false
557 1.0rc1 != 1.0RC1  : false
558 1.0rc1 lt 1.0rc1  : false
559 1.0rc1  < 1.0rc1  : false
560 1.0rc1 le 1.0rc1  : true
561 1.0rc1 <= 1.0rc1  : true
562 1.0rc1 gt 1.0rc1  : false
563 1.0rc1  > 1.0rc1  : false
564 1.0rc1 ge 1.0rc1  : true
565 1.0rc1 >= 1.0rc1  : true
566 1.0rc1 eq 1.0rc1  : true
567 1.0rc1  = 1.0rc1  : true
568 1.0rc1 == 1.0rc1  : true
569 1.0rc1 ne 1.0rc1  : false
570 1.0rc1 <> 1.0rc1  : false
571 1.0rc1 != 1.0rc1  : false
572 1.0rc1 lt 1.0     : true
573 1.0rc1  < 1.0     : true
574 1.0rc1 le 1.0     : true
575 1.0rc1 <= 1.0     : true
576 1.0rc1 gt 1.0     : false
577 1.0rc1  > 1.0     : false
578 1.0rc1 ge 1.0     : false
579 1.0rc1 >= 1.0     : false
580 1.0rc1 eq 1.0     : false
581 1.0rc1  = 1.0     : false
582 1.0rc1 == 1.0     : false
583 1.0rc1 ne 1.0     : true
584 1.0rc1 <> 1.0     : true
585 1.0rc1 != 1.0     : true
586 1.0rc1 lt 1.0pl1  : true
587 1.0rc1  < 1.0pl1  : true
588 1.0rc1 le 1.0pl1  : true
589 1.0rc1 <= 1.0pl1  : true
590 1.0rc1 gt 1.0pl1  : false
591 1.0rc1  > 1.0pl1  : false
592 1.0rc1 ge 1.0pl1  : false
593 1.0rc1 >= 1.0pl1  : false
594 1.0rc1 eq 1.0pl1  : false
595 1.0rc1  = 1.0pl1  : false
596 1.0rc1 == 1.0pl1  : false
597 1.0rc1 ne 1.0pl1  : true
598 1.0rc1 <> 1.0pl1  : true
599 1.0rc1 != 1.0pl1  : true
600    1.0 lt 1.0-dev : false
601    1.0  < 1.0-dev : false
602    1.0 le 1.0-dev : false
603    1.0 <= 1.0-dev : false
604    1.0 gt 1.0-dev : true
605    1.0  > 1.0-dev : true
606    1.0 ge 1.0-dev : true
607    1.0 >= 1.0-dev : true
608    1.0 eq 1.0-dev : false
609    1.0  = 1.0-dev : false
610    1.0 == 1.0-dev : false
611    1.0 ne 1.0-dev : true
612    1.0 <> 1.0-dev : true
613    1.0 != 1.0-dev : true
614    1.0 lt 1.0a1   : false
615    1.0  < 1.0a1   : false
616    1.0 le 1.0a1   : false
617    1.0 <= 1.0a1   : false
618    1.0 gt 1.0a1   : true
619    1.0  > 1.0a1   : true
620    1.0 ge 1.0a1   : true
621    1.0 >= 1.0a1   : true
622    1.0 eq 1.0a1   : false
623    1.0  = 1.0a1   : false
624    1.0 == 1.0a1   : false
625    1.0 ne 1.0a1   : true
626    1.0 <> 1.0a1   : true
627    1.0 != 1.0a1   : true
628    1.0 lt 1.0b1   : false
629    1.0  < 1.0b1   : false
630    1.0 le 1.0b1   : false
631    1.0 <= 1.0b1   : false
632    1.0 gt 1.0b1   : true
633    1.0  > 1.0b1   : true
634    1.0 ge 1.0b1   : true
635    1.0 >= 1.0b1   : true
636    1.0 eq 1.0b1   : false
637    1.0  = 1.0b1   : false
638    1.0 == 1.0b1   : false
639    1.0 ne 1.0b1   : true
640    1.0 <> 1.0b1   : true
641    1.0 != 1.0b1   : true
642    1.0 lt 1.0RC1  : false
643    1.0  < 1.0RC1  : false
644    1.0 le 1.0RC1  : false
645    1.0 <= 1.0RC1  : false
646    1.0 gt 1.0RC1  : true
647    1.0  > 1.0RC1  : true
648    1.0 ge 1.0RC1  : true
649    1.0 >= 1.0RC1  : true
650    1.0 eq 1.0RC1  : false
651    1.0  = 1.0RC1  : false
652    1.0 == 1.0RC1  : false
653    1.0 ne 1.0RC1  : true
654    1.0 <> 1.0RC1  : true
655    1.0 != 1.0RC1  : true
656    1.0 lt 1.0rc1  : false
657    1.0  < 1.0rc1  : false
658    1.0 le 1.0rc1  : false
659    1.0 <= 1.0rc1  : false
660    1.0 gt 1.0rc1  : true
661    1.0  > 1.0rc1  : true
662    1.0 ge 1.0rc1  : true
663    1.0 >= 1.0rc1  : true
664    1.0 eq 1.0rc1  : false
665    1.0  = 1.0rc1  : false
666    1.0 == 1.0rc1  : false
667    1.0 ne 1.0rc1  : true
668    1.0 <> 1.0rc1  : true
669    1.0 != 1.0rc1  : true
670    1.0 lt 1.0     : false
671    1.0  < 1.0     : false
672    1.0 le 1.0     : true
673    1.0 <= 1.0     : true
674    1.0 gt 1.0     : false
675    1.0  > 1.0     : false
676    1.0 ge 1.0     : true
677    1.0 >= 1.0     : true
678    1.0 eq 1.0     : true
679    1.0  = 1.0     : true
680    1.0 == 1.0     : true
681    1.0 ne 1.0     : false
682    1.0 <> 1.0     : false
683    1.0 != 1.0     : false
684    1.0 lt 1.0pl1  : true
685    1.0  < 1.0pl1  : true
686    1.0 le 1.0pl1  : true
687    1.0 <= 1.0pl1  : true
688    1.0 gt 1.0pl1  : false
689    1.0  > 1.0pl1  : false
690    1.0 ge 1.0pl1  : false
691    1.0 >= 1.0pl1  : false
692    1.0 eq 1.0pl1  : false
693    1.0  = 1.0pl1  : false
694    1.0 == 1.0pl1  : false
695    1.0 ne 1.0pl1  : true
696    1.0 <> 1.0pl1  : true
697    1.0 != 1.0pl1  : true
698 1.0pl1 lt 1.0-dev : false
699 1.0pl1  < 1.0-dev : false
700 1.0pl1 le 1.0-dev : false
701 1.0pl1 <= 1.0-dev : false
702 1.0pl1 gt 1.0-dev : true
703 1.0pl1  > 1.0-dev : true
704 1.0pl1 ge 1.0-dev : true
705 1.0pl1 >= 1.0-dev : true
706 1.0pl1 eq 1.0-dev : false
707 1.0pl1  = 1.0-dev : false
708 1.0pl1 == 1.0-dev : false
709 1.0pl1 ne 1.0-dev : true
710 1.0pl1 <> 1.0-dev : true
711 1.0pl1 != 1.0-dev : true
712 1.0pl1 lt 1.0a1   : false
713 1.0pl1  < 1.0a1   : false
714 1.0pl1 le 1.0a1   : false
715 1.0pl1 <= 1.0a1   : false
716 1.0pl1 gt 1.0a1   : true
717 1.0pl1  > 1.0a1   : true
718 1.0pl1 ge 1.0a1   : true
719 1.0pl1 >= 1.0a1   : true
720 1.0pl1 eq 1.0a1   : false
721 1.0pl1  = 1.0a1   : false
722 1.0pl1 == 1.0a1   : false
723 1.0pl1 ne 1.0a1   : true
724 1.0pl1 <> 1.0a1   : true
725 1.0pl1 != 1.0a1   : true
726 1.0pl1 lt 1.0b1   : false
727 1.0pl1  < 1.0b1   : false
728 1.0pl1 le 1.0b1   : false
729 1.0pl1 <= 1.0b1   : false
730 1.0pl1 gt 1.0b1   : true
731 1.0pl1  > 1.0b1   : true
732 1.0pl1 ge 1.0b1   : true
733 1.0pl1 >= 1.0b1   : true
734 1.0pl1 eq 1.0b1   : false
735 1.0pl1  = 1.0b1   : false
736 1.0pl1 == 1.0b1   : false
737 1.0pl1 ne 1.0b1   : true
738 1.0pl1 <> 1.0b1   : true
739 1.0pl1 != 1.0b1   : true
740 1.0pl1 lt 1.0RC1  : false
741 1.0pl1  < 1.0RC1  : false
742 1.0pl1 le 1.0RC1  : false
743 1.0pl1 <= 1.0RC1  : false
744 1.0pl1 gt 1.0RC1  : true
745 1.0pl1  > 1.0RC1  : true
746 1.0pl1 ge 1.0RC1  : true
747 1.0pl1 >= 1.0RC1  : true
748 1.0pl1 eq 1.0RC1  : false
749 1.0pl1  = 1.0RC1  : false
750 1.0pl1 == 1.0RC1  : false
751 1.0pl1 ne 1.0RC1  : true
752 1.0pl1 <> 1.0RC1  : true
753 1.0pl1 != 1.0RC1  : true
754 1.0pl1 lt 1.0rc1  : false
755 1.0pl1  < 1.0rc1  : false
756 1.0pl1 le 1.0rc1  : false
757 1.0pl1 <= 1.0rc1  : false
758 1.0pl1 gt 1.0rc1  : true
759 1.0pl1  > 1.0rc1  : true
760 1.0pl1 ge 1.0rc1  : true
761 1.0pl1 >= 1.0rc1  : true
762 1.0pl1 eq 1.0rc1  : false
763 1.0pl1  = 1.0rc1  : false
764 1.0pl1 == 1.0rc1  : false
765 1.0pl1 ne 1.0rc1  : true
766 1.0pl1 <> 1.0rc1  : true
767 1.0pl1 != 1.0rc1  : true
768 1.0pl1 lt 1.0     : false
769 1.0pl1  < 1.0     : false
770 1.0pl1 le 1.0     : false
771 1.0pl1 <= 1.0     : false
772 1.0pl1 gt 1.0     : true
773 1.0pl1  > 1.0     : true
774 1.0pl1 ge 1.0     : true
775 1.0pl1 >= 1.0     : true
776 1.0pl1 eq 1.0     : false
777 1.0pl1  = 1.0     : false
778 1.0pl1 == 1.0     : false
779 1.0pl1 ne 1.0     : true
780 1.0pl1 <> 1.0     : true
781 1.0pl1 != 1.0     : true
782 1.0pl1 lt 1.0pl1  : false
783 1.0pl1  < 1.0pl1  : false
784 1.0pl1 le 1.0pl1  : true
785 1.0pl1 <= 1.0pl1  : true
786 1.0pl1 gt 1.0pl1  : false
787 1.0pl1  > 1.0pl1  : false
788 1.0pl1 ge 1.0pl1  : true
789 1.0pl1 >= 1.0pl1  : true
790 1.0pl1 eq 1.0pl1  : true
791 1.0pl1  = 1.0pl1  : true
792 1.0pl1 == 1.0pl1  : true
793 1.0pl1 ne 1.0pl1  : false
794 1.0pl1 <> 1.0pl1  : false
795 1.0pl1 != 1.0pl1  : false
796