Open ermshiperete opened 2 months ago
Test specification and instructions
User tests are not required
We just have to be a little careful with testing in case metadata formats have changed.
One thing that changed is in iso639-3.tab
the Language_Type
column now has H
(Historical) instead of A
(Ancient) for several languages. But I'm not sure that information is used anywhere in our code.
Other than that it's only updated data AFAICT.
Here are some observations using the Delphi debugger. However, I really don't understand the whole code. There is an error about inserting dulplicates
class procedure TISO6393ToBCP47Map.Fill(dict: TDictionary<string, string>);
begin
dict.Add('aar','aa');
dict.Add('abk','ab');
For the failing test of sqt-YE
the following if statement in CanonicalLanguageCodeUtils.FindBestTag
evaluates to true and exits. For the master branch this if statement evaluates to false.
if not TLangTagsMap.LangTags.TryGetValue(t.Tag, LangTag) then
begin
// Not a known tag but perhaps it's a custom language
// We'll make no further assumptions
Exit(t.Tag);
end;
The duplicate insertion area was the key here, due to duplicates in the langtag.json source, this meant the dictionary was not completely loaded resulting in these other tests failing. In other words those failed tests where a side effect of the duplicate data error.
Failing tests due to data issues in langtags.json, reported at:
Note that most of the failing tests are caused by a cascade of errors rather than these root causes.
@keymanapp-test-bot skip