This commit is contained in:
2026-08-12 18:24:12 +09:00
parent 78b5fb1512
commit ea90d9d3ab
+17 -8
View File
@@ -241,7 +241,8 @@ gaju_format() ->
JavaResults = string:split(trim(unicode:characters_to_list(ResContent)), "\n", all),
length(Cases) =:= length(JavaResults) andalso compare_results(Cases, JavaResults);
{error, Reason} ->
io:format("Failed to read Java results from: ~tp (Reason: ~tp)~nRaw Output: ~ts~n", [JavaResPath, Reason, RawOut]),
Format = "Failed to read Java results from: ~tp (Reason: ~tp)~nRaw Output: ~ts~n",
io:format(Format, [JavaResPath, Reason, RawOut]),
false
end.
@@ -268,13 +269,15 @@ gen_case(amount) ->
Style = random_style(),
Sep = lists:nth(rand:uniform(2), [$,, $_]),
Span = rand:uniform(4),
{amount, Style, Unit, Sep, Span, Pucks, hz_format:amount(Unit, hz_style(Style, Sep, Span), Pucks)};
Amount = hz_format:amount(Unit, hz_style(Style, Sep, Span), Pucks),
{amount, Style, Unit, Sep, Span, Pucks, Amount};
gen_case(approx) ->
Pucks = random_pucks(12),
Sep = lists:nth(rand:uniform(2), [$,, $_]),
Span = rand:uniform(2) + 2,
Prec = rand:uniform(18),
{approx, us, gaju, Sep, Span, Pucks, Prec, hz_format:approx_amount({Sep, Span}, Prec, Pucks)}.
Approx = hz_format:approx_amount({Sep, Span}, Prec, Pucks),
{approx, us, gaju, Sep, Span, Pucks, Prec, Approx}.
random_pucks(MaxBytes) ->
Bytes = rand:bytes(rand:uniform(MaxBytes)),
@@ -289,11 +292,17 @@ random_unit() ->
hz_style(us, Sep, Span) -> {Sep, Span};
hz_style(Style, _, _) -> Style.
serialize_case({amount, Style, Unit, Sep, Span, Pucks, _Expected}) ->
io_lib:format("amount|~ts|~ts|~c|~b|~b", [string:uppercase(atom_to_list(Style)), string:uppercase(atom_to_list(Unit)), Sep, Span, Pucks]);
serialize_case({approx, Style, Unit, Sep, Span, Pucks, Prec, _Expected}) ->
io_lib:format("approx|~ts|~ts|~c|~b|~b|~b", [string:uppercase(atom_to_list(Style)), string:uppercase(atom_to_list(Unit)), Sep, Span, Pucks, Prec]);
serialize_case({read, Input, _Expected}) ->
serialize_case({amount, Style, Unit, Sep, Span, Pucks, _}) ->
FStyle = string:uppercase(atom_to_list(Style)),
FUnit = string:uppercase(atom_to_list(Unit)),
Stuff = [FStyle, FUnit, Sep, Span, Pucks],
io_lib:format("amount|~ts|~ts|~c|~b|~b", Stuff);
serialize_case({approx, Style, Unit, Sep, Span, Pucks, Prec, _}) ->
FStyle = string:uppercase(atom_to_list(Style)),
FUnit = string:uppercase(atom_to_list(Unit)),
Stuff = [FStyle, FUnit, Sep, Span, Pucks, Prec],
io_lib:format("approx|~ts|~ts|~c|~b|~b|~b", Stuff);
serialize_case({read, Input, _}) ->
InputStr = unicode:characters_to_list(Input),
io_lib:format("read|~ts", [InputStr]).