﻿// Reduce tests

CastI1("false")
CastI1("true")

CastIA("-5")
CastI1("-5")
CastI2("-5")
CastI4("-5")
CastI8("-5")
CastU1("-5")
CastU2("-5")
CastU4("-5")
CastU8("-5")

// Values at boundaries.
CastI1("127")
CastI2("127")
CastI4("127")
CastI8("127")

CastI1("128")
CastI2("128")
CastI4("128")
CastI8("128")

CastI1("255")
CastI2("255")
CastI4("255")
CastI8("255")

CastI1("256")
CastI2("256")
CastI4("256")
CastI8("256")

CastI1("32767")
CastI2("32767")
CastI4("32767")
CastI8("32767")

CastI1("32768")
CastI2("32768")
CastI4("32768")
CastI8("32768")

CastI1("65535")
CastI2("65535")
CastI4("65535")
CastI8("65535")

CastI1("65536")
CastI2("65536")
CastI4("65536")
CastI8("65536")

CastI1("2147483647")
CastI2("2147483647")
CastI4("2147483647")
CastI8("2147483647")

CastI1("2147483648\u202C")
CastI2("2147483648")
CastI4("2147483648")
CastI8("2147483648")

CastI1("4294967295")
CastI2("4294967295")
CastI4("4294967295")
CastI8("4294967295")

CastI1("4294967296")
CastI2("4294967296")
CastI4("4294967296")
CastI8("4294967296")

CastI1("9223372036854775807")
CastI2("9223372036854775807")
CastI4("9223372036854775807")
CastI8("9223372036854775807")
CastIA("9223372036854775807")

CastI1("9223372036854775808")
CastI2("9223372036854775808")
CastI4("9223372036854775808")
CastI8("9223372036854775808")
CastIA("9223372036854775808")

CastI1("18446744073709551615")
CastI2("18446744073709551615")
CastI4("18446744073709551615")
CastI8("18446744073709551615")
CastIA("18446744073709551615")

CastIA("18446744073709551616")

CastI2("32767.9")
CastI2("32768.8")
CastI2("-123.456")
CastI2("-0.0")

CastR4("32767.9")
CastR4("32768.8")
CastR4("-123.456")
CastR4("-0.0")

// Very small/large values
CastI8("2e300")
CastU8("2e300")
CastR8("2e300")

CastI1("-50")
CastI1("50")
CastU1("50")
CastU1("-50")
CastR4("50")
CastR8("-50")

CastI1("128")
CastI1("-128")

CastU1("128")
CastU2("128")
CastU4("128")
CastU8("128")

// Rx

CastR4("128")
CastR8("128")

CastR4("-4e37")
CastR4("-4 e37")

CastR8("-2e200")
CastR8("-2e-200")

// String specific cases.
CastI1("")
CastU1("")
CastR4("")

CastI1(" ")
CastU1(" ")
CastR4(" ")

CastI1("123")
CastU1("123")
CastR4("123")

CastI1(" 123 ")
CastU1(" 123 ")
CastR4(" 123 ")

CastI1(" 12 3 ")
CastU1(" 12 3 ")
CastR4(" 12 3 ")

CastI1(Null("hi"))
CastU1(Null("hi"))
CastR4(Null("hi"))

// Thousands separators
CastI2("12,345")
CastU2("12,345")
CastR4("12,345")
CastIA("12,345")

// Parenthesis
CastI2("(123)")
CastU2("(123)")
CastR4("(123)")
CastIA("(123)")

// Parenthesis and thousands separators
CastI2("(12,345)")
CastU2("(12,345)")
CastR4("(12,345)")
CastIA("(12,345)")

// Decimal point
CastI1("9.223372")
CastU1("9.223372")
CastR4("9.223372")
CastIA("9.223372")

// Thousand separator with decimal point
CastI2("9,223.372")
CastU2("9,223.372")
CastR4("9,223.372")
CastIA("9,223.372")

// Parenthesis with decimal point
CastI1("(9.223372)")
CastU1("(9.223372)")
CastR4("(9.223372)")
CastIA("(9.223372)")

// Infinity
CastI8("∞")
CastR8("∞")
CastR4("∞")
CastIA("∞")

CastI8("-∞")
CastR8("-∞")
CastR4("-∞")
CastIA("-∞")

CastI8("Infinity")
CastR8("Infinity")
CastR4("Infinity")
CastIA("Infinity")

CastI8("-Infinity")
CastR8("-Infinity")
CastR4("-Infinity")
CastIA("-Infinity")

CastI8("NaN")
CastR8("NaN")
CastR4("NaN")
CastIA("NaN")
