/
kopython
/
_hyperscript
Обзор
Документация
Войти
/
kopython
/
_hyperscript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/expressions/comparisonOperator.js
614 строк
16 KB
Carson Gross
support more comparison ops such as `is equal to`, `is really equal to`, etc.
30 июн 2023, 21:55
30 июн 2023, 21:55
6282add
Код
Авторство
О чём код?
describe("the comparisonOperator expression", function () { beforeEach(function () { clearWorkArea(); }); afterEach(function () { clearWorkArea(); }); it("less than works", function () { var result = evalHyperScript("1 < 2"); result.should.equal(true); var result = evalHyperScript("2 < 1"); result.should.equal(false); var result = evalHyperScript("2 < 2"); result.should.equal(false); }); it("less than or equal works", function () { var result = evalHyperScript("1 <= 2"); result.should.equal(true); var result = evalHyperScript("2 <= 1"); result.should.equal(false); var result = evalHyperScript("2 <= 2"); result.should.equal(true); }); it("greater than works", function () { var result = evalHyperScript("1 > 2"); result.should.equal(false); var result = evalHyperScript("2 > 1"); result.should.equal(true); var result = evalHyperScript("2 > 2"); result.should.equal(false); }); it("greater than or equal works", function () { var result = evalHyperScript("1 >= 2"); result.should.equal(false); var result = evalHyperScript("2 >= 1"); result.should.equal(true); var result = evalHyperScript("2 >= 2"); result.should.equal(true); }); it("equal works", function () { var result = evalHyperScript("1 == 2"); result.should.equal(false); var result = evalHyperScript("2 == 1"); result.should.equal(false); var result = evalHyperScript("2 == 2"); result.should.equal(true); }); it("triple equal works", function () { var result = evalHyperScript("1 === 2"); result.should.equal(false); var result = evalHyperScript("2 === 1"); result.should.equal(false); var result = evalHyperScript("2 === 2"); result.should.equal(true); }); it("not equal works", function () { var result = evalHyperScript("1 != 2"); result.should.equal(true); var result = evalHyperScript("2 != 1"); result.should.equal(true); var result = evalHyperScript("2 != 2"); result.should.equal(false); }); it("triple not equal works", function () { var result = evalHyperScript("1 !== 2"); result.should.equal(true); var result = evalHyperScript("2 !== 1"); result.should.equal(true); var result = evalHyperScript("2 !== 2"); result.should.equal(false); }); it("is works", function () { var result = evalHyperScript("1 is 2"); result.should.equal(false); var result = evalHyperScript("2 is 1"); result.should.equal(false); var result = evalHyperScript("2 is 2"); result.should.equal(true); }); it("equals works", function () { var result = evalHyperScript("1 equals 2"); result.should.equal(false); var result = evalHyperScript("2 equals 1"); result.should.equal(false); var result = evalHyperScript("2 equals 2"); result.should.equal(true); }); it("is equal to works", function () { var result = evalHyperScript("1 is equal to 2"); result.should.equal(false); var result = evalHyperScript("2 is equal to 1"); result.should.equal(false); var result = evalHyperScript("2 is equal to 2"); result.should.equal(true); }); it("is really equal to works", function () { var result = evalHyperScript("1 is really equal to 2"); result.should.equal(false); var result = evalHyperScript("2 is really equal to 1"); result.should.equal(false); var result = evalHyperScript("2 is really equal to '2'"); result.should.equal(false); var result = evalHyperScript("2 is really equal to 2"); result.should.equal(true); }); it("really equals works", function () { var result = evalHyperScript("1 really equals 2"); result.should.equal(false); var result = evalHyperScript("2 really equals 1"); result.should.equal(false); var result = evalHyperScript("2 really equals 2"); result.should.equal(true); }); it("is not works", function () { var result = evalHyperScript("1 is not 2"); result.should.equal(true); var result = evalHyperScript("2 is not 1"); result.should.equal(true); var result = evalHyperScript("2 is not 2"); result.should.equal(false); }); it("is not equal to works", function () { var result = evalHyperScript("1 is not equal to 2"); result.should.equal(true); var result = evalHyperScript("2 is not equal to 1"); result.should.equal(true); var result = evalHyperScript("2 is not equal to 2"); result.should.equal(false); }); it("is not really equal to works", function () { var result = evalHyperScript("1 is not really equal to 2"); result.should.equal(true); var result = evalHyperScript("2 is not really equal to 1"); result.should.equal(true); var result = evalHyperScript("2 is not really equal to '2'"); result.should.equal(true); var result = evalHyperScript("2 is not really equal to 2"); result.should.equal(false); }); it("is in works", function () { var result = evalHyperScript("1 is in [1, 2]"); result.should.equal(true); var result = evalHyperScript("2 is in [1, 2]"); result.should.equal(true); var result = evalHyperScript("3 is in [1, 2]"); result.should.equal(false); var result = evalHyperScript("3 is in null"); result.should.equal(false); }); it("is not in works", function () { var result = evalHyperScript("1 is not in [1, 2]"); result.should.equal(false); var result = evalHyperScript("2 is not in [1, 2]"); result.should.equal(false); var result = evalHyperScript("3 is not in [1, 2]"); result.should.equal(true); var result = evalHyperScript("3 is not in null"); result.should.equal(true); }); it("I am in works", function () { var result = evalHyperScript("I am in [1, 2]", { me: 1 }); result.should.equal(true); var result = evalHyperScript("I am in [1, 2]", { me: 2 }); result.should.equal(true); var result = evalHyperScript("I am in [1, 2]", { me: 3 }); result.should.equal(false); var result = evalHyperScript("I am in null", { me: null }); result.should.equal(false); }); it("I am not in works", function () { var result = evalHyperScript("I am not in [1, 2]", { me: 1 }); result.should.equal(false); var result = evalHyperScript("I am not in [1, 2]", { me: 2 }); result.should.equal(false); var result = evalHyperScript("I am not in [1, 2]", { me: 3 }); result.should.equal(true); var result = evalHyperScript("I am not in null", { me: null }); result.should.equal(true); }); it("match works", function () { var div = make("<div class='foo'></div>"); var result = evalHyperScript("I match .foo", { me: div }); result.should.equal(true); var div = make("<div class='foo'></div>"); var result = evalHyperScript("x matches .foo", { locals: { x: div } }); result.should.equal(true); var div = make("<div class='foo'></div>"); var result = evalHyperScript("I match .bar", { me: div }); result.should.equal(false); var div = make("<div class='foo'></div>"); var result = evalHyperScript("x matches .bar", { locals: { x: div } }); result.should.equal(false); }); it("does not match works", function () { var div = make("<div class='foo'></div>"); var result = evalHyperScript("I do not match .foo", { me: div }); result.should.equal(false); var div = make("<div class='foo'></div>"); var result = evalHyperScript("x does not match .foo", { locals: { x: div } }); result.should.equal(false); var div = make("<div class='foo'></div>"); var result = evalHyperScript("I do not match .bar", { me: div }); result.should.equal(true); var div = make("<div class='foo'></div>"); var result = evalHyperScript("x does not match .bar", { locals: { x: div } }); result.should.equal(true); }); it("match works w/ strings", function () { var result = evalHyperScript("'a' matches '.*'"); result.should.equal(true); var result = evalHyperScript("'a' matches 'b'"); result.should.equal(false); }); it("does not match works w/ strings", function () { var result = evalHyperScript("'a' does not match '.*'"); result.should.equal(false); var result = evalHyperScript("'a' does not match 'b'"); result.should.equal(true); }); it("contains works with elts", function () { var outer = make("<div><div id='d2'></div></div>"); var inner = byId("d2"); var result = evalHyperScript("I contain that", { me: outer, locals: { that: inner, } }); result.should.equal(true); var result = evalHyperScript("I contain that", { me: inner, locals: { that: outer, } }); result.should.equal(false); var result = evalHyperScript("that contains me", { me: outer, locals: { that: inner, } }); result.should.equal(false); var result = evalHyperScript("that contains me", { me: inner, locals: { that: outer, } }); result.should.equal(true); }); it("contains works with arrays", function () { var outer = [1, 2, 3]; var inner = 1; var result = evalHyperScript("I contain that", { me: outer, locals: { that: inner, } }); result.should.equal(true); var result = evalHyperScript("that contains me", { me: inner, locals: { that: outer, } }); result.should.equal(true); }); it("contains works with css literals", function () { make("<div id='d1' class='outer'><div id='d2'></div></div>"); var result = evalHyperScript(".outer contains #d2"); result.should.equal(true); var result = evalHyperScript("#d2 contains #d1"); result.should.equal(false); }); it("include works", function () { var outer = make("<div><div id='d2'></div></div>"); var inner = byId("d2"); var result = evalHyperScript("foo includes foobar", { locals: { foo: "foo", foobar: "foobar", } }); result.should.equal(false); var result = evalHyperScript("foobar includes foo", { locals: { foo: "foo", foobar: "foobar", } }); result.should.equal(true); var result = evalHyperScript("foo does not include foobar", { locals: { foo: "foo", foobar: "foobar", } }); result.should.equal(true); var result = evalHyperScript("foobar does not include foo", { locals: { foo: "foo", foobar: "foobar", } }); result.should.equal(false); }); it("includes works with arrays", function () { var outer = [1, 2, 3]; var inner = 1; var result = evalHyperScript("I include that", { me: outer, locals: { that: inner, } }); result.should.equal(true); var result = evalHyperScript("that includes me", { me: inner, locals: { that: outer, } }); result.should.equal(true); }); it("includes works with css literals", function () { make("<div id='d1' class='outer'><div id='d2'></div></div>"); var result = evalHyperScript(".outer includes #d2"); result.should.equal(true); var result = evalHyperScript("#d2 includes #d1"); result.should.equal(false); }); it("does not contain works", function () { var outer = make("<div><div id='d2'></div></div>"); var inner = byId("d2"); var result = evalHyperScript("I do not contain that", { me: outer, locals: { that: inner, } }); result.should.equal(false); var result = evalHyperScript("I do not contain that", { me: inner, locals: { that: outer, } }); result.should.equal(true); var result = evalHyperScript("that does not contains me", { me: outer, locals: { that: inner, } }); result.should.equal(true); var result = evalHyperScript("that does not contains me", { me: inner, locals: { that: outer, } }); result.should.equal(false); }); it("is empty works", function () { var result = evalHyperScript("undefined is empty"); result.should.equal(true); var result = evalHyperScript("'' is empty"); result.should.equal(true); var result = evalHyperScript("[] is empty"); result.should.equal(true); var result = evalHyperScript("'not empty' is empty"); result.should.equal(false); var result = evalHyperScript("1000 is empty"); result.should.equal(false); var result = evalHyperScript("[1,2,3] is empty"); result.should.equal(false); var result = evalHyperScript(".aClassThatDoesNotExist is empty"); result.should.equal(true); }); it("is not empty works", function () { var result = evalHyperScript("undefined is not empty"); result.should.equal(false); var result = evalHyperScript("'' is not empty"); result.should.equal(false); var result = evalHyperScript("[] is not empty"); result.should.equal(false); var result = evalHyperScript("'not empty' is not empty"); result.should.equal(true); var result = evalHyperScript("1000 is not empty"); result.should.equal(true); var result = evalHyperScript("[1,2,3] is not empty"); result.should.equal(true); }); it("is a works", function () { var result = evalHyperScript("null is a String"); result.should.equal(true); var result = evalHyperScript("null is a String!"); result.should.equal(false); var result = evalHyperScript("'' is a String!"); result.should.equal(true); }); it("is not a works", function () { var result = evalHyperScript("null is not a String"); result.should.equal(false); var result = evalHyperScript("null is not a String!"); result.should.equal(true); var result = evalHyperScript("'' is not a String!"); result.should.equal(false); }); it("english less than works", function () { var result = evalHyperScript("1 is less than 2"); result.should.equal(true); var result = evalHyperScript("2 is less than 1"); result.should.equal(false); var result = evalHyperScript("2 is less than 2"); result.should.equal(false); }); it("english less than or equal works", function () { var result = evalHyperScript("1 is less than or equal to 2"); result.should.equal(true); var result = evalHyperScript("2 is less than or equal to 1"); result.should.equal(false); var result = evalHyperScript("2 is less than or equal to 2"); result.should.equal(true); }); it("english greater than works", function () { var result = evalHyperScript("1 is greater than 2"); result.should.equal(false); var result = evalHyperScript("2 is greater than 1"); result.should.equal(true); var result = evalHyperScript("2 is greater than 2"); result.should.equal(false); }); it("english greater than or equal works", function () { var result = evalHyperScript("1 is greater than or equal to 2"); result.should.equal(false); var result = evalHyperScript("2 is greater than or equal to 1"); result.should.equal(true); var result = evalHyperScript("2 is greater than or equal to 2"); result.should.equal(true); }); it("exists works", function () { var result = evalHyperScript("undefined exists"); result.should.equal(false); var result = evalHyperScript("null exists"); result.should.equal(false); var result = evalHyperScript("#doesNotExist exists"); result.should.equal(false); var result = evalHyperScript(".aClassThatDoesNotExist exists"); result.should.equal(false); var result = evalHyperScript("<.aClassThatDoesNotExist/> exists"); result.should.equal(false); var div = make( "<div id='d1' class='c1'></div>\n" + " <div id='d2' class='c1'></div>\n" + " <div id='d3' class='c1'></div>\n" ); var result = evalHyperScript("#d1 exists"); result.should.equal(true); var result = evalHyperScript(".c1 exists"); result.should.equal(true); var result = evalHyperScript("<body/> exists"); result.should.equal(true); }); it("does not exist works", function () { var result = evalHyperScript("undefined does not exist"); result.should.equal(true); var result = evalHyperScript("null does not exist"); result.should.equal(true); var result = evalHyperScript("#doesNotExist does not exist"); result.should.equal(true); var result = evalHyperScript(".aClassThatDoesNotExist does not exist"); result.should.equal(true); var result = evalHyperScript("<.aClassThatDoesNotExist/> does not exist"); result.should.equal(true); var result = evalHyperScript("<body/> does not exist"); result.should.equal(false); }); });