| # int | |
| assert_eq(int(0), 0) | |
| assert_eq(int(42), 42) | |
| assert_eq(int(-1), -1) | |
| assert_eq(int(2147483647), 2147483647) | |
| # -2147483648 is not actually a valid int literal even though it's a | |
| # valid int value, hence the -1 expression. | |
| assert_eq(int(-2147483647 - 1), -2147483647 - 1) | |
| assert_eq(int(True), 1) | |
| assert_eq(int(False), 0) | |
| --- | |
| int(None) ### parameter 'x' cannot be None, for call to function int(x, base = unbound) | |
| --- | |
| # This case is allowed in Python but not Skylark | |
| int() ### parameter 'x' has no default value, for call to function int(x, base = unbound) | |
| --- | |
| # string, no base | |
| # Includes same numbers as integer test cases above. | |
| assert_eq(int('0'), 0) | |
| assert_eq(int('42'), 42) | |
| assert_eq(int('-1'), -1) | |
| assert_eq(int('2147483647'), 2147483647) | |
| assert_eq(int('-2147483648'), -2147483647 - 1) | |
| # Leading zero allowed when not using base = 0. | |
| assert_eq(int('016'), 16) | |
| # Leading plus sign allowed for strings. | |
| assert_eq(int('+42'), 42) | |
| --- | |
| int(2147483648) ### invalid base-10 integer constant: 2147483648 | |
| --- | |
| int(-2147483649) ### invalid base-10 integer constant: 2147483649 | |
| --- | |
| int('') ### cannot be empty | |
| --- | |
| # Surrounding whitespace is not allowed | |
| int(' 42 ') ### invalid literal for int() with base 10: " 42 " | |
| --- | |
| int('-') ### invalid literal for int() with base 10: "-" | |
| --- | |
| int('0x') ### invalid literal for int() with base 10: "0x" | |
| --- | |
| int('1.5') ### invalid literal for int() with base 10: "1.5" | |
| --- | |
| int('ab') ### invalid literal for int() with base 10: "ab" | |
| --- | |
| assert_eq(int('11', 2), 3) | |
| assert_eq(int('-11', 2), -3) | |
| assert_eq(int('11', 9), 10) | |
| assert_eq(int('AF', 16), 175) | |
| assert_eq(int('11', 36), 37) | |
| assert_eq(int('az', 36), 395) | |
| assert_eq(int('11', 10), 11) | |
| assert_eq(int('11', 0), 11) | |
| assert_eq(int('016', 8), 14) | |
| assert_eq(int('016', 16), 22) | |
| --- | |
| # invalid base | |
| int('016', 0) ### cannot infer base for int() when value begins with a 0: "016" | |
| --- | |
| int('123', 3) ### invalid literal for int() with base 3: "123" | |
| --- | |
| int('FF', 15) ### invalid literal for int() with base 15: "FF" | |
| --- | |
| int('123', -1) ### int() base must be >= 2 and <= 36 | |
| --- | |
| int('123', 1) ### int() base must be >= 2 and <= 36 | |
| --- | |
| int('123', 37) ### int() base must be >= 2 and <= 36 | |
| --- | |
| int('123', 'x') ### base must be an integer (got 'string') | |
| --- | |
| # base with prefix | |
| assert_eq(int('0b11', 0), 3) | |
| assert_eq(int('-0b11', 0), -3) | |
| assert_eq(int('+0b11', 0), 3) | |
| assert_eq(int('0B11', 2), 3) | |
| assert_eq(int('0o11', 0), 9) | |
| assert_eq(int('0O11', 8), 9) | |
| assert_eq(int('0XFF', 0), 255) | |
| assert_eq(int('0xFF', 16), 255) | |
| --- | |
| int('0xFF', 8) ### invalid literal for int() with base 8: "0xFF" | |
| --- | |
| int(True, 2) ### int() can't convert non-string with explicit base | |
| --- | |
| int(1, 2) ### int() can't convert non-string with explicit base | |
| --- | |
| int(True, 10) ### int() can't convert non-string with explicit base |