%% FFI contracts include Erlang null aliases and tuples that JSON fixtures cannot produce. -module(albedo_openai_json_test). -include_lib("eunit/include/eunit.hrl"). semantically_empty_test_() -> [?_assertEqual(true, albedo_openai_json:semantically_empty(Value)) || Value <- [null, nil, undefined, <<>>, [], {}, #{}]] ++ [?_assertEqual(false, albedo_openai_json:semantically_empty(Value)) || Value <- [false, true, 0, <<"x">>, [null], {null}, #{<<"id">> => null}]]. object_fields_test_() -> [?_assertEqual({ok, Value}, albedo_openai_json:object_fields(Value)) || Value <- [#{}, #{<<"content">> => <<"hello">>, <<"opaque">> => [1, #{}]}]] ++ [?_assertEqual({error, #{}}, albedo_openai_json:object_fields(Value)) || Value <- [null, [], 42, <<"x">>, #{content => <<"hello">>}, #{<<"content">> => <<"hello">>, 1 => null}]].