1b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright 2013 the V8 project authors. All rights reserved.
2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//
4b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Redistribution and use in source and binary forms, with or without
5b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// modification, are permitted provided that the following conditions
6b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// are met:
7b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// 1.  Redistributions of source code must retain the above copyright
8b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     notice, this list of conditions and the following disclaimer.
9b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// 2.  Redistributions in binary form must reproduce the above copyright
10b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     notice, this list of conditions and the following disclaimer in the
11b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//     documentation and/or other materials provided with the distribution.
12b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch//
13b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
14b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
17b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
24b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochdescription("test that comparison operators work correctly.")
25b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
26b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfunction makeTest(start, end, expression, relationship, override, invert) {
27b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var resultValue = eval(relationship + expression + 0) || !!override;
28b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    if (invert)
29b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        resultValue = !resultValue;
30b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var expr = start + expression + end;
31b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var result = [];
32b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    function func(content) { var f = new Function(content); f.toString = function(){ return content}; return f; }
33b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    result.push([new func("return " + expr + ";"), resultValue]);
34b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    result.push([new func("if (" + expr + ") return true; return false;"), resultValue]);
35b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    result.push([new func("var k = 0; while (" + expr + ") if (k++) return true; return false;"), resultValue]);
36b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    result.push([new func("var k = 0; for (; " + expr + "; ) if (k++) return true; return false;"), resultValue]);
37b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    return result;
38b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}
39b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochfunction doTest(lhs, rhs, relationship) {
40b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var expressionParts = [["(",")"],["(", ") || 1", true],["(", ") && 1"],["(", ") || 1", true],["1 || (",")", true],["1 && (",")"]];
41b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var expressions = [];
42b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    var tests = [];
43b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    for (var i = 0; i < expressionParts.length; i++) {
44b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        var start = expressionParts[i][0] + lhs;
45b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        var end = String(rhs) + expressionParts[i][1];
46b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        tests.push.apply(tests, makeTest(start, end, "<", relationship, expressionParts[i][2]));
47b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        tests.push.apply(tests, makeTest(start, end, "<=", relationship, expressionParts[i][2]));
48b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    }
49b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    for (var i = 0; i < tests.length; i++) {
50b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        if ((r=tests[i][0]()) == tests[i][1])
51b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch            testPassed(tests[i][0] + " is " + tests[i][1]);
52b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch        else
53b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch            testFailed(tests[i][0] + " is " + r + " and should be " + tests[i][1] + ".");
54b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch    }
55b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch}
56b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
57b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar letterA = "a";
58b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar letterB = "b";
59b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar letter0 = "0";
60b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar One = 1;
61b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar Zero = 0;
62b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', '"b"', -1);
63b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', '"a"', 0);
64b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"b"', '"a"', 1);
65b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', '"b"', -1);
66b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', '"a"', 0);
67b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"b"', '"a"', 1);
68b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', '"b"', -1);
69b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', 'letterA', 0);
70b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"b"', 'letterA', 1);
71b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', '"b"', -1);
72b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', 'letterA', 0);
73b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"b"', 'letterA', 1);
74b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
75b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', '0', NaN);
76b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '"a"', NaN);
77b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', '0', NaN);
78b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', '"a"', 0);
79b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '"a"', NaN);
80b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('letterA', 'letterA', 0);
81b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', 'letterA', NaN);
82b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('"a"', 'letterA', 0);
83b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', 'letterA', NaN);
84b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
85b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
86b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '"0"', 0);
87b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('Zero', 'letter0', 0);
88b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', 'letter0', 0);
89b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('Zero', '"0"', 0);
90b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('-1', '"0"', -1);
91b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('1', '"0"', 1);
92b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '"-1"', 1);
93b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '"1"', -1);
94b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
95b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '1', -1);
96b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', '0', 0);
97b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('1', '0', 1);
98b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('Zero', '1', -1);
99b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('Zero', '0', 0);
100b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('1', 'Zero', 1);
101b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('0', 'One', -1);
102b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochdoTest('One', '0', 1);
103b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
104b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= 0");
105b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= 1");
106b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 <= 1");
107b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 < 1");
108b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 <= 0");
109b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 <= 1");
110b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 < 1");
111b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 < 1");
112b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
113b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= 0 || 0) true; else false");
114b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= 1 || 0) true; else false");
115b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <= 1 || 0) true; else false");
116b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <  1 || 0) true; else false");
117b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <= 0 || 0) true; else false");
118b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <= 1 || 0) true; else false");
119b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <  1 || 0) true; else false");
120b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <  1 || 0) true; else false");
121b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
122b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= 0.5");
123b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= 1.5");
124b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 <= 1.5");
125b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 < 1.5");
126b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 <= 0.5");
127b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 <= 1.5");
128b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 < 1.5");
129b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 < 1.5");
130b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
131b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= 0.5 || 0) true; else false");
132b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= 1.5 || 0) true; else false");
133b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <= 1.5 || 0) true; else false");
134b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <  1.5 || 0) true; else false");
135b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <= 0.5 || 0) true; else false");
136b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <= 1.5 || 0) true; else false");
137b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <  1.5 || 0) true; else false");
138b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <  1.5 || 0) true; else false");
139b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
140b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar zero = 0;
141b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar one = 1;
142b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar two = 2;
143b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar p5 = 0.5;
144b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochvar p15 = 1.5;
145b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
146b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
147b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero <= zero");
148b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero <= 1");
149b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 <= 1");
150b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero < 1");
151b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 <= zero");
152b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 <= 1");
153b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 < 1");
154b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 < 1");
155b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
156b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <= zero || 0) true; else false");
157b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <= 1 || zero) true; else false");
158b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <= 1 || zero) true; else false");
159b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <  1 || zero) true; else false");
160b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <= zero || zero) true; else false");
161b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <= 1 || zero) true; else false");
162b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <  1 || zero) true; else false");
163b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <  1 || zero) true; else false");
164b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
165b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= p5");
166b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= p15");
167b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 <= p15");
168b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 < p15");
169b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("1 <= p5");
170b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 <= p15");
171b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("1 < p15");
172b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("2 < p15");
173b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
174b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= p5 || 0) true; else false");
175b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= p15 || 0) true; else false");
176b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <= p15 || 0) true; else false");
177b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <  p15 || 0) true; else false");
178b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (1 <= p5 || 0) true; else false");
179b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <= p15 || 0) true; else false");
180b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (1 <  p15 || 0) true; else false");
181b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (2 <  p15 || 0) true; else false");
182b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
183b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
184b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero <= zero");
185b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero <= one");
186b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("one <= one");
187b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("zero < one");
188b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("one <= zero");
189b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("two <= one");
190b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("one < one");
191b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("two < one");
192b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
193b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <= zero || 0) true; else false");
194b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <= one || zero) true; else false");
195b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (one <= one || zero) true; else false");
196b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (zero <  one || zero) true; else false");
197b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (one <= zero || zero) true; else false");
198b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (two <= one || zero) true; else false");
199b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (one <  one || zero) true; else false");
200b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (two <  one || zero) true; else false");
201b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
202b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= p5");
203b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 <= p15");
204b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("one <= p15");
205b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("0 < p15");
206b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("one <= p5");
207b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("two <= p15");
208b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeTrue("one < p15");
209b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("two < p15");
210b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
211b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= p5 || 0) true; else false");
212b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <= p15 || 0) true; else false");
213b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (one <= p15 || 0) true; else false");
214b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (0 <  p15 || 0) true; else false");
215b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (one <= p5 || 0) true; else false");
216b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (two <= p15 || 0) true; else false");
217b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch shouldBeTrue("if (one <  p15 || 0) true; else false");
218b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (two <  p15 || 0) true; else false");
219b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
220b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
221b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" 0 <    NaN");
222b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" NaN <  NaN");
223b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" 0 <=   NaN");
224b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" NaN <= NaN");
225b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" 0.5 <  NaN");
226b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" NaN <  NaN");
227b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" 0.5 <= NaN");
228b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" NaN <= NaN");
229b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" zero < NaN");
230b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("zero <= NaN");
231b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" NaN <= NaN");
232b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse(" p5  <  NaN");
233b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("NaN  <  NaN");
234b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("p5  <=  NaN");
235b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("NaN  <= NaN");
236b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
237b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch
238b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( 0 <    NaN) true; else false;");
239b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( NaN <  NaN) true; else false;");
240b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( 0 <=   NaN) true; else false;");
241b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( NaN <= NaN) true; else false;");
242b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( 0.5 <  NaN) true; else false;");
243b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( NaN <  NaN) true; else false;");
244b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( 0.5 <= NaN) true; else false;");
245b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( NaN <= NaN) true; else false;");
246b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( zero < NaN) true; else false;");
247b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (zero <= NaN) true; else false;");
248b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( NaN <= NaN) true; else false;");
249b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if ( p5  <  NaN) true; else false;");
250b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (NaN  <  NaN) true; else false;");
251b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (p5  <=  NaN) true; else false;");
252b8a8cc1952d61a2f3a2568848933943a543b5d3eBen MurdochshouldBeFalse("if (NaN  <= NaN) true; else false;");
253