use strict;
use Test::More 0.98;
use ISO::639_1;
is(get_iso639_1('en')->{nativeName}, 'English', 'en native name, without localisation');
is(get_iso639_1('fr')->{nativeName}, 'Français', 'fr native name, without localisation');
is(get_iso639_1('ab')->{nativeName}, 'аҧсуа бызшәа, аҧсшәа', 'ab native name, without localisation');
is(get_iso639_1('English'), undef, 'Badly formatted code should return undef');
is(get_iso639_1('en-us')->{nativeName}, 'English (US)', 'en-us native name, with localisation');
is(get_iso639_1('fr_BE')->{nativeName}, 'Français (BE)', 'fr_BE native name, with localisation');
is(get_iso639_1('fr+FR'), undef, 'Badly formatted localized code should return undef');
is(get_iso639_1('fr')->{nativeName}, 'Français', 'Check that we didn\'t change the codes hash table (ie don\'t use refs)');
is(get_iso639_1_from_639_2('fra')->{nativeName}, 'Français', 'Check get_iso639_1_from_639_2');
is(get_iso639_1_from_639_2('fre')->{nativeName}, 'Français', 'Check get_iso639_1_from_639_2 with 639-2/B code');
is(get_iso639_1_from_name('French')->{nativeName}, 'Français', 'Check get_iso639_1_from_name');
is(get_iso639_1_from_native_name('Français')->{name}, 'French', 'Check get_iso639_1_from_native_name');
is_deeply(get_iso639_1('zh'), {
"639-1" => "zh",
"639-2" => "zho",
"639-2/B" => "chi",
"family" => "Sino-Tibetan",
"name" => "Chinese",
"nativeName" => "中文 (Zhōngwén), 汉语, 漢語",
"wikiUrl" => "https://en.wikipedia.org/wiki/Chinese_language"
}, 'zh native name, full structure');
done_testing;