# © 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Data-driven test for XLocaleDistance.
# Format
# • supported ; desired ; dist(s,d) ; dist(d,x)
# • argument 4 only used when different
# • 100 = fail
# A line starting with @debug will reach a statement in the test code where you can put a breakpoint for debugging
# The test code also supports reformatting this file, by setting the REFORMAT flag.

en-CA ; en-CA ; 0 
ar-MK ; en-CA ; 100

iw ; 	he ; 	0
zh ; 	cmn ; 	0

# fallback languages get closer distances, between script (40) and region (4)
 
@debug
to ; 	en ; 	34 ; 	100
no ; 	no-DE ; 	4
nn ; 	no ; 	20
no-DE ; 	nn ; 	24
no ; 	no ; 	0
no ; 	da ; 	12
da ; 	zh-Hant ; 	100
zh-Hant ; 	zh-Hans ; 	100 ; 	100
zh-Hans ; 	en ; 	100

en-US ; 	en-AU ; 	5  # across clusters
en-VI ; 	en-GU ; 	4	# within cluster
en-AU ; 	en-CA ; 	4	# within cluster

# testScript
en-CA ; 	en-Cyrl ; 	100
en-Cyrl ; 	es-MX ; 	100

hr ; 	sr ; 	100
#hr ; 	sr-Latn ; 	8
sr ; 	sr-Latn ; 	5

# test419
# Should be as good as any in cluster
es-MX ; 	es-AR ; 	4
@debug
es-MX ; 	es-419 ; 	4
es-MX ; 	es-MX ; 	0
es-MX ; 	es-ES ; 	5
es-MX ; 	es-PT ; 	5
es-MX ; 	es-150 ; 	5
es-419 ; 	es-AR ; 	4
es-419 ; 	es-419 ; 	0
es-419 ; 	es-MX ; 	4
es-419 ; 	es-ES ; 	5
es-419 ; 	es-PT ; 	5
es-419 ; 	es-150 ; 	5
es-ES ; 	es-AR ; 	5
es-ES ; 	es-419 ; 	5
es-ES ; 	es-MX ; 	5
es-ES ; 	es-ES ; 	0
es-ES ; 	es-PT ; 	4
es-419 ; 	es-150 ; 	5

# testEuEc
xx-Xxxx-EC; xx-Xxxx-EU; 4
