From a92d37752105dcb870d881551b5fb29200f4dadd Mon Sep 17 00:00:00 2001 From: dmarting Date: Wed, 13 Sep 2017 14:28:48 +0200 Subject: Automated rollback of commit 72de1fe6bafa28fddcbc8cdc1ccbb59556996bfb. *** Reason for rollback *** Roll-forward with fix *** Original change description *** Automated rollback of commit f5b8281f1f7599c67476663887db909a4206710e. *** Reason for rollback *** Read the wrong log, it is not timing out, actual failure. *** Original change description *** Open-source src/test/skylark/... This was means to be open-sourced from the beginning but an error in our set-up hide it from the open-source tree. PiperOrigin-RevId: 168526758 --- src/test/skylark/testdata/and_or_not.sky | 47 ++++++++++++++++++++ src/test/skylark/testdata/equality.sky | 74 ++++++++++++++++++++++++++++++++ src/test/skylark/testdata/int.sky | 69 +++++++++++++++++++++++++++++ 3 files changed, 190 insertions(+) create mode 100644 src/test/skylark/testdata/and_or_not.sky create mode 100644 src/test/skylark/testdata/equality.sky create mode 100644 src/test/skylark/testdata/int.sky (limited to 'src/test/skylark/testdata') diff --git a/src/test/skylark/testdata/and_or_not.sky b/src/test/skylark/testdata/and_or_not.sky new file mode 100644 index 0000000000..53cfb98f68 --- /dev/null +++ b/src/test/skylark/testdata/and_or_not.sky @@ -0,0 +1,47 @@ +def assert_eq(x, y): + if x != y: + fail("%r != %r" % (x, y)) + + +assert_eq(8 or 9, 8) +assert_eq(0 or 9, 9) +assert_eq(8 and 9, 9) +assert_eq(0 and 9, 0) + +assert_eq(1 and 2 or 3, 2) +assert_eq(0 and 2 or 3, 3) +assert_eq(1 and 0 or 3, 3) + +assert_eq(1 or 2 and 3, 1) +assert_eq(0 or 2 and 3, 3) +assert_eq(0 or 0 and 3, 0) +assert_eq(1 or 0 and 3, 1) + +assert_eq(None and 1, None) +assert_eq("" or 9, 9) +assert_eq("abc" or 9, "abc") + +# check that fail() is not evaluated +assert_eq(8 or fail("do not execute"), 8) +assert_eq(0 and fail("do not execute"), 0) + +assert_eq(not 1, False) +assert_eq(not "", True) + +assert_eq(not 0 + 0, True) +assert_eq(not 2 - 1, False) + +assert_eq(not (0 and 0), True) +assert_eq(not (1 or 0), False) + +assert_eq(0 and not 0, 0) +assert_eq(not 0 and 0, 0) + +assert_eq(1 and not 0, True) +assert_eq(not 0 or 0, True) + +assert_eq(not 1 or 0, 0) +assert_eq(not 1 or 1, 1) + +assert_eq(not [], True) +assert_eq(not {"a": 1}, False) diff --git a/src/test/skylark/testdata/equality.sky b/src/test/skylark/testdata/equality.sky new file mode 100644 index 0000000000..0f72f61a29 --- /dev/null +++ b/src/test/skylark/testdata/equality.sky @@ -0,0 +1,74 @@ +def assert_eq(x, y): + if x != y: + fail("%r != %r" % (x, y)) + + +# == operator +assert_eq(1 == 1, True) +assert_eq(1 == 2, False) +assert_eq('hello' == 'hel' + 'lo', True) +assert_eq('hello' == 'bye', False) +assert_eq(None == None, True) +assert_eq([1, 2] == [1, 2], True) +assert_eq([1, 2] == [2, 1], False) +assert_eq({'a': 1, 'b': 2} == {'b': 2, 'a': 1}, True) +assert_eq({'a': 1, 'b': 2} == {'a': 1}, False) +assert_eq({'a': 1, 'b': 2} == {'a': 1, 'b': 2, 'c': 3}, False) +assert_eq({'a': 1, 'b': 2} == {'a': 1, 'b': 3}, False) + +# != operator +assert_eq(1 != 1, False) +assert_eq(1 != 2, True) +assert_eq('hello' != 'hel' + 'lo', False) +assert_eq('hello' != 'bye', True) +assert_eq([1, 2] != [1, 2], False) +assert_eq([1, 2] != [2, 1], True) +assert_eq({'a': 1, 'b': 2} != {'b': 2, 'a': 1}, False) +assert_eq({'a': 1, 'b': 2} != {'a': 1}, True) +assert_eq({'a': 1, 'b': 2} != {'a': 1, 'b': 2, 'c': 3}, True) +assert_eq({'a': 1, 'b': 2} != {'a': 1, 'b': 3}, True); + +# equality precedence +assert_eq(1 + 3 == 2 + 2, True) +assert_eq(not 1 == 2, True) +assert_eq(not 1 != 2, False) +assert_eq(2 and 3 == 3 or 1, True) +assert_eq(2 or 3 == 3 and 1, 2); + +# < operator +assert_eq(1 <= 1, True) +assert_eq(1 < 1, False) +assert_eq('a' <= 'b', True) +assert_eq('c' < 'a', False); + +# <= and < operators +assert_eq(1 <= 1, True) +assert_eq(1 < 1, False) +assert_eq('a' <= 'b', True) +assert_eq('c' < 'a', False); + +# >= and > operators +assert_eq(1 >= 1, True) +assert_eq(1 > 1, False) +assert_eq('a' >= 'b', False) +assert_eq('c' > 'a', True); + +# list/tuple comparison +assert_eq([] < [1], True) +assert_eq([1] < [1, 1], True) +assert_eq([1, 1] < [1, 2], True) +assert_eq([1, 2] < [1, 2, 3], True) +assert_eq([1, 2, 3] <= [1, 2, 3], True) + +assert_eq(['a', 'b'] > ['a'], True) +assert_eq(['a', 'b'] >= ['a'], True) +assert_eq(['a', 'b'] < ['a'], False) +assert_eq(['a', 'b'] <= ['a'], False) + +assert_eq(('a', 'b') > ('a', 'b'), False) +assert_eq(('a', 'b') >= ('a', 'b'), True) +assert_eq(('a', 'b') < ('a', 'b'), False) +assert_eq(('a', 'b') <= ('a', 'b'), True) + +assert_eq([[1, 1]] > [[1, 1], []], False) +assert_eq([[1, 1]] < [[1, 1], []], True) diff --git a/src/test/skylark/testdata/int.sky b/src/test/skylark/testdata/int.sky new file mode 100644 index 0000000000..cd19f17669 --- /dev/null +++ b/src/test/skylark/testdata/int.sky @@ -0,0 +1,69 @@ +# Tests of Skylark 'int' + +def assert_eq(x, y): + if x != y: + fail("%r != %r" % (x, y)) + +def assert_(cond, msg="assertion failed"): + if not cond: + fail(msg) + +# basic arithmetic +assert_eq(0 - 1, -1) +assert_eq(1 + 1, 2) +assert_eq(5 + 7, 12) +assert_eq(5 * 7, 35) +assert_eq(5 - 7, -2) + +# truth +assert_(123) +assert_(-1) +assert_(not 0) + +# comparisons +assert_(5 > 2) +assert_(2 + 1 == 3) +assert_(2 + 1 >= 3) +assert_(not (2 + 1 > 3)) +assert_(2 + 2 <= 5) +assert_(not (2 + 1 < 3)) + +# division +assert_eq(100 // 7, 14) +assert_eq(100 // -7, -15) +assert_eq(-100 // 7, -15) # NB: different from Go / Java +assert_eq(-100 // -7, 14) # NB: different from Go / Java +assert_eq(98 // 7, 14) +assert_eq(98 // -7, -14) +assert_eq(-98 // 7, -14) +assert_eq(-98 // -7, 14) + +# remainder +assert_eq(100 % 7, 2) +assert_eq(100 % -7, -5) # NB: different from Go / Java +assert_eq(-100 % 7, 5) # NB: different from Go / Java +assert_eq(-100 % -7, -2) +assert_eq(98 % 7, 0) +assert_eq(98 % -7, 0) +assert_eq(-98 % 7, 0) +assert_eq(-98 % -7, 0) + +# precedence +assert_eq(5 - 7 * 2 + 3, -6) +assert_eq(4 * 5 / 2 + 5 / 2 * 4, 18) + +# compound assignment +def compound(): + x = 1 + x += 1 + assert_eq(x, 2) + x -= 3 + assert_eq(x, -1) + x *= 10 + assert_eq(x, -10) + x /= -2 + assert_eq(x, 5) + x %= 3 + assert_eq(x, 2) + +compound() -- cgit v1.2.3