fc6ee4555f
The old tests were just mirroring the wrong behaviour in Elixir, which was fixed in Elixir 1.12.
197 lines
7.9 KiB
Elixir
197 lines
7.9 KiB
Elixir
defmodule RDF.XSD.TestData do
|
|
@zero %{
|
|
0 => {0, nil, "0"},
|
|
"0" => {0, nil, "0"},
|
|
"+0" => {0, "+0", "0"},
|
|
"-0" => {0, "-0", "0"},
|
|
"000" => {0, "000", "0"}
|
|
}
|
|
|
|
@basic_valid_positive_integers %{
|
|
# input => { value, lexical, canonicalized }
|
|
1 => {1, nil, "1"},
|
|
"1" => {1, nil, "1"},
|
|
"01" => {1, "01", "1"},
|
|
"0123" => {123, "0123", "123"},
|
|
"+1" => {1, "+1", "1"}
|
|
}
|
|
|> Map.merge(@zero)
|
|
|
|
@basic_valid_negative_integers %{
|
|
-1 => {-1, nil, "-1"},
|
|
"-1" => {-1, nil, "-1"},
|
|
"-01" => {-1, "-01", "-1"},
|
|
"-0123" => {-123, "-0123", "-123"}
|
|
}
|
|
|> Map.merge(@zero)
|
|
|
|
@valid_unsigned_bytes %{
|
|
255 => {255, nil, "255"},
|
|
"0255" => {255, "0255", "255"}
|
|
}
|
|
|> Map.merge(@basic_valid_positive_integers)
|
|
|
|
@valid_unsigned_shorts %{
|
|
65535 => {65535, nil, "65535"}
|
|
}
|
|
|> Map.merge(@valid_unsigned_bytes)
|
|
|
|
@valid_unsigned_ints %{
|
|
4_294_967_295 => {4_294_967_295, nil, "4294967295"}
|
|
}
|
|
|> Map.merge(@valid_unsigned_shorts)
|
|
|
|
@valid_unsigned_longs %{
|
|
18_446_744_073_709_551_615 =>
|
|
{18_446_744_073_709_551_615, nil, "18446744073709551615"}
|
|
}
|
|
|> Map.merge(@valid_unsigned_ints)
|
|
|
|
@valid_bytes Map.merge(@basic_valid_positive_integers, @basic_valid_negative_integers)
|
|
|
|
@valid_shorts %{
|
|
32767 => {32767, nil, "32767"},
|
|
-32768 => {-32768, nil, "-32768"}
|
|
}
|
|
|> Map.merge(@valid_bytes)
|
|
|
|
@valid_ints %{
|
|
2_147_483_647 => {2_147_483_647, nil, "2147483647"},
|
|
-2_147_483_648 => {-2_147_483_648, nil, "-2147483648"}
|
|
}
|
|
|> Map.merge(@valid_bytes)
|
|
|
|
@valid_longs %{
|
|
9_223_372_036_854_775_807 =>
|
|
{9_223_372_036_854_775_807, nil, "9223372036854775807"},
|
|
-9_223_372_036_854_775_808 =>
|
|
{-9_223_372_036_854_775_808, nil, "-9223372036854775808"}
|
|
}
|
|
|> Map.merge(@valid_bytes)
|
|
|
|
@valid_non_negative_integers %{
|
|
200_000_000_000_000_000_000_000 =>
|
|
{200_000_000_000_000_000_000_000, nil,
|
|
"200000000000000000000000"}
|
|
}
|
|
|> Map.merge(@valid_unsigned_longs)
|
|
|
|
@valid_non_positive_integers %{
|
|
-200_000_000_000_000_000_000_000 =>
|
|
{-200_000_000_000_000_000_000_000, nil,
|
|
"-200000000000000000000000"}
|
|
}
|
|
|> Map.merge(@basic_valid_negative_integers)
|
|
|
|
@valid_positive_integers Map.drop(@valid_non_negative_integers, Map.keys(@zero))
|
|
@valid_negative_integers Map.drop(@valid_non_positive_integers, Map.keys(@zero))
|
|
|
|
@valid_integers @zero
|
|
|> Map.merge(@valid_non_negative_integers)
|
|
|> Map.merge(@valid_non_positive_integers)
|
|
|
|
@basic_invalid_integers [
|
|
"foo",
|
|
"10.1",
|
|
"12xyz",
|
|
true,
|
|
false,
|
|
3.14,
|
|
"1 2",
|
|
"foo 1",
|
|
"1 foo"
|
|
]
|
|
|
|
@invalid_bytes [128, "128", -129, "-129"] ++ @basic_invalid_integers
|
|
@invalid_shorts [32768, "32768", -32769, "-32769"] ++ @basic_invalid_integers
|
|
@invalid_ints [2_147_483_648, "2147483648", -21_474_836_489, "-2147483649"] ++
|
|
@basic_invalid_integers
|
|
@invalid_longs [
|
|
9_223_372_036_854_775_808,
|
|
"9223372036854775808",
|
|
-9_223_372_036_854_775_809,
|
|
"-92233720368547758089"
|
|
] ++ @basic_invalid_integers
|
|
|
|
@invalid_non_negative_integers [-1, "-1"] ++ @basic_invalid_integers
|
|
@invalid_non_positive_integers [1, "1", "+1"] ++ @basic_invalid_integers
|
|
@invalid_positive_integers [0, "0"] ++ @invalid_non_negative_integers
|
|
@invalid_negative_integers [0, "0"] ++ @invalid_non_positive_integers
|
|
|
|
@invalid_unsigned_bytes [256, "256"] ++ @invalid_non_negative_integers
|
|
@invalid_unsigned_shorts [65536, "65536"] ++ @invalid_non_negative_integers
|
|
@invalid_unsigned_ints [4_294_967_296, "4294967296"] ++ @invalid_non_negative_integers
|
|
@invalid_unsigned_longs [18_446_744_073_709_551_616, "18446744073709551616"] ++
|
|
@invalid_non_negative_integers
|
|
|
|
@valid_floats %{
|
|
# input => { value, lexical, canonicalized }
|
|
0 => {0.0, "0.0", "0.0E0"},
|
|
42 => {42.0, "42.0", "4.2E1"},
|
|
0.0e0 => {0.0, "0.0", "0.0E0"},
|
|
1.0e0 => {1.0, "1.0", "1.0E0"},
|
|
:positive_infinity => {:positive_infinity, nil, "INF"},
|
|
:negative_infinity => {:negative_infinity, nil, "-INF"},
|
|
:nan => {:nan, nil, "NaN"},
|
|
"1.0E0" => {1.0e0, nil, "1.0E0"},
|
|
"0.0" => {0.0, "0.0", "0.0E0"},
|
|
"1" => {1.0e0, "1", "1.0E0"},
|
|
"01" => {1.0e0, "01", "1.0E0"},
|
|
"0123" => {1.23e2, "0123", "1.23E2"},
|
|
"-1" => {-1.0e0, "-1", "-1.0E0"},
|
|
"+01.000" => {1.0e0, "+01.000", "1.0E0"},
|
|
"1.0" => {1.0e0, "1.0", "1.0E0"},
|
|
"-0" =>
|
|
if Version.match?(System.version(), "~> 1.12") do
|
|
{0.0e0, "-0", "-0.0E0"}
|
|
else
|
|
# This is actual wrong, but we won't fix this wrong behaviour in older Elixir versions
|
|
{0.0e0, "-0", "0.0E0"}
|
|
end,
|
|
"0." => {0.0e0, "0.", "0.0E0"},
|
|
".0" => {0.0e0, ".0", "0.0E0"},
|
|
".0E0" => {0.0e0, ".0E0", "0.0E0"},
|
|
"123.456" => {1.23456e2, "123.456", "1.23456E2"},
|
|
"1.0e+1" => {1.0e1, "1.0e+1", "1.0E1"},
|
|
"1.0e-10" => {1.0e-10, "1.0e-10", "1.0E-10"},
|
|
"123.456e4" => {1.23456e6, "123.456e4", "1.23456E6"},
|
|
"1.E-8" => {1.0e-8, "1.E-8", "1.0E-8"},
|
|
"3E1" => {3.0e1, "3E1", "3.0E1"},
|
|
"INF" => {:positive_infinity, nil, "INF"},
|
|
"Inf" => {:positive_infinity, "Inf", "INF"},
|
|
"-INF" => {:negative_infinity, nil, "-INF"},
|
|
"NaN" => {:nan, nil, "NaN"}
|
|
}
|
|
|
|
@invalid_floats ["foo", "12.xyz", "1.0ez", "+INF", true, false, "1.1e1 foo", "foo 1.1e1"]
|
|
|
|
def valid_integers, do: @valid_integers
|
|
def valid_non_negative_integers, do: @valid_non_negative_integers
|
|
def valid_non_positive_integers, do: @valid_non_positive_integers
|
|
def valid_positive_integers, do: @valid_positive_integers
|
|
def valid_negative_integers, do: @valid_negative_integers
|
|
def valid_bytes, do: @valid_bytes
|
|
def valid_shorts, do: @valid_shorts
|
|
def valid_ints, do: @valid_ints
|
|
def valid_longs, do: @valid_longs
|
|
def valid_unsigned_bytes, do: @valid_unsigned_bytes
|
|
def valid_unsigned_shorts, do: @valid_unsigned_shorts
|
|
def valid_unsigned_ints, do: @valid_unsigned_ints
|
|
def valid_unsigned_longs, do: @valid_unsigned_longs
|
|
def valid_floats, do: @valid_floats
|
|
|
|
def invalid_integers, do: @basic_invalid_integers
|
|
def invalid_non_negative_integers, do: @invalid_non_negative_integers
|
|
def invalid_non_positive_integers, do: @invalid_non_positive_integers
|
|
def invalid_positive_integers, do: @invalid_positive_integers
|
|
def invalid_negative_integers, do: @invalid_negative_integers
|
|
def invalid_bytes, do: @invalid_bytes
|
|
def invalid_shorts, do: @invalid_shorts
|
|
def invalid_ints, do: @invalid_ints
|
|
def invalid_longs, do: @invalid_longs
|
|
def invalid_unsigned_bytes, do: @invalid_unsigned_bytes
|
|
def invalid_unsigned_shorts, do: @invalid_unsigned_shorts
|
|
def invalid_unsigned_ints, do: @invalid_unsigned_ints
|
|
def invalid_unsigned_longs, do: @invalid_unsigned_longs
|
|
def invalid_floats, do: @invalid_floats
|
|
end
|