| # test basic float capabilities |
| |
| # literals |
| print(.12) |
| print(1.) |
| print(1.2) |
| print(0e0) |
| print(0e+0) |
| print(0e-0) |
| |
| # float construction |
| print(float(1.2)) |
| print(float("1.2")) |
| print(float("+1")) |
| print(float("1e1")) |
| print(float("1e+1")) |
| print(float("1e-1")) |
| print(float("inf")) |
| print(float("-inf")) |
| print(float("INF")) |
| print(float("infinity")) |
| print(float("INFINITY")) |
| print(float("nan")) |
| print(float("NaN")) |
| try: |
| float("") |
| except ValueError: |
| print("ValueError") |
| try: |
| float("1e+") |
| except ValueError: |
| print("ValueError") |
| try: |
| float("1z") |
| except ValueError: |
| print("ValueError") |
| |
| # unary operators |
| print(bool(0.0)) |
| print(bool(1.2)) |
| print(+(1.2)) |
| print(-(1.2)) |
| |
| # division of integers |
| x = 1 / 2 |
| print(x) |
| |
| # /= operator |
| a = 1 |
| a /= 2 |
| print(a) |
| |
| # floor division |
| print(1.0 // 2) |
| print(2.0 // 2) |
| |
| # comparison |
| print(1.2 <= 3.4) |
| print(1.2 <= -3.4) |
| print(1.2 >= 3.4) |
| print(1.2 >= -3.4) |
| |
| # comparison of nan is special |
| nan = float('nan') |
| print(nan == 1.2) |
| print(nan == nan) |
| |
| try: |
| 1.0 / 0 |
| except ZeroDivisionError: |
| print("ZeroDivisionError") |
| |
| try: |
| 1.0 // 0 |
| except ZeroDivisionError: |
| print("ZeroDivisionError") |
| |
| try: |
| 1.2 % 0 |
| except ZeroDivisionError: |
| print("ZeroDivisionError") |
| |
| try: |
| 0.0 ** -1 |
| except ZeroDivisionError: |
| print("ZeroDivisionError") |
| |
| # unsupported unary ops |
| |
| try: |
| ~1.2 |
| except TypeError: |
| print("TypeError") |
| |
| try: |
| 1.2 in 3.4 |
| except TypeError: |
| print("TypeError") |
| |
| # small int on LHS, float on RHS, unsupported op |
| try: |
| print(1 | 1.0) |
| except TypeError: |
| print('TypeError') |
| |
| # can't convert list to float |
| try: |
| float([]) |
| except TypeError: |
| print("TypeError") |
| |
| # test constant float with more than 255 chars |
| x = 1.84728699436059052516398251149631771898472869943605905251639825114963177189847286994360590525163982511496317718984728699436059052516398251149631771898472869943605905251639825114963177189847286994360590525163982511496317718984728699436059052516398251149631771898472869943605905251639825114963177189 |
| print("%.5f" % x) |