Skip to content

Commit 1285ae4

Browse files
committed
Add validation GHA workflow for all maps interscript/maps#15
1 parent 18d5259 commit 1285ae4

File tree

3 files changed

+355
-0
lines changed

3 files changed

+355
-0
lines changed

ruby/Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ end
3333
gem 'pry'
3434

3535
gem 'iso-639-data'
36+
gem 'iso-15924'
3637

3738
gem 'simplecov', require: false, group: :test

ruby/spec/authority_codes.yaml

Lines changed: 309 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
acadsin:
2+
code: acadsin
3+
name:
4+
en: Academia Sinica
5+
ahl:
6+
code: ahl
7+
name:
8+
en: The Academy of the Hebrew Language
9+
alalc:
10+
code: alalc
11+
name:
12+
en: American Library Association -- Library of Congress
13+
ammi:
14+
code: ammi
15+
name:
16+
en: Afghanistan Ministry of Mines and Industries
17+
ansi:
18+
code: ansi
19+
name:
20+
en: American National Standards Institute
21+
apcbg:
22+
code: apcbg
23+
name:
24+
en: Antarctic Place-names Commission of Bulgaria
25+
asm:
26+
code: asm
27+
name:
28+
en: Academy of Sciences of Moldova
29+
az:
30+
code: az
31+
name:
32+
en: Azerbijian Government
33+
bas:
34+
code: bas
35+
name:
36+
en: Bulgarian Academy of Sciences
37+
bds:
38+
code: bds
39+
name:
40+
en: Bulgarian Institute for Standardization
41+
bgn:
42+
code: bgn
43+
name:
44+
en: United States Board on Geographic Names
45+
bgna:
46+
code: bgna
47+
name:
48+
en: National Assembly of the Republic of Bulgaria
49+
bgnpcgn:
50+
code: bgnpcgn
51+
name:
52+
en: United States Board on Geographic Names -- Permanent Committee on Geographical
53+
Names for British Official Use
54+
bis:
55+
code: bis
56+
name:
57+
en: Bureau of Indian Standards
58+
biulo:
59+
code: biulo
60+
name:
61+
en: Bibliothèque interuniversitaire des langues orientales
62+
bsi:
63+
code: bsi
64+
name:
65+
en: British Standards Institution
66+
bt:
67+
code: bt
68+
name:
69+
en: Royal Government of Bhutan
70+
bulac:
71+
code: bulac
72+
name:
73+
en: Bibliothèque universitaire des langues et civilisations
74+
by:
75+
code: by
76+
name:
77+
en: Government of Belarus
78+
cn:
79+
code: cn
80+
name:
81+
en: Government of China
82+
cnt:
83+
code: cnt
84+
name:
85+
en: Lao Commission Nationale de Toponymie
86+
din:
87+
code: din
88+
name:
89+
en: German Institute for Standardization
90+
dmg:
91+
code: dmg
92+
name:
93+
en: Deutsche Morgenländische Gesellschaft
94+
dos:
95+
code: dos
96+
name:
97+
en: Survey Department, Ministry of Land Management, Cooperatives and Poverty
98+
Alleviation, Government of Nepal
99+
easc:
100+
code: easc
101+
name:
102+
en: Euro-Asian Council for Standardization, Metrology and Certification
103+
efeo:
104+
code: efeo
105+
name:
106+
en: École française d'Extrême-Orient
107+
elot:
108+
code: elot
109+
name:
110+
en: Hellenic Organization for Standardization
111+
gaz:
112+
code: gaz
113+
name:
114+
en: Azeri Government
115+
ggg:
116+
code: ggg
117+
name:
118+
en: Georgian State Department of Geodesy and Cartography
119+
gki:
120+
code: gki
121+
name:
122+
en: State Committee on Property of the Republic of Belarus
123+
gost:
124+
code: gost
125+
name:
126+
en: Rosstandart
127+
gsi:
128+
code: gsi
129+
name:
130+
en: Geospatial Information Authority of Japan
131+
hk:
132+
code: hk
133+
name:
134+
en: Hong Kong Government
135+
icao:
136+
code: icao
137+
name:
138+
en: International Civil Aviation Organization
139+
ign:
140+
code: ign
141+
name:
142+
en: Institut Geographique Nationale
143+
iso:
144+
code: iso
145+
name:
146+
en: International Organization for Standardization
147+
itk:
148+
code: itk
149+
name:
150+
en: Inuit Tapiriit Kanatami
151+
jp:
152+
code: jp
153+
name:
154+
en: Government of Japan
155+
jra:
156+
code: jra
157+
name:
158+
en: Japan Road Association
159+
kp:
160+
code: kp
161+
name:
162+
en: Democratic People's Republic of Korea
163+
lbmod:
164+
code: lbmod
165+
name:
166+
en: Lebanese Republic Ministry of National Defense
167+
lshk:
168+
code: lshk
169+
name:
170+
en: Linguistic Society of Hong Kong
171+
ma:
172+
code: ma
173+
name:
174+
en: Kingdom of Morocco
175+
md:
176+
code: md
177+
name:
178+
en: Republic of Moldova
179+
mext:
180+
code: mext
181+
name:
182+
en: Ministry of Education, Culture, Sports, Science and Technology -- Japan
183+
mk:
184+
code: mk
185+
name:
186+
en: Republic of North Macedonia
187+
mlc:
188+
code: mlc
189+
name:
190+
en: Myanmar Language Commission
191+
mlit:
192+
code: mlit
193+
name:
194+
en: Ministry of Land, Infrastructure, Transport and Tourism of Japan
195+
mlmupc:
196+
code: mlmupc
197+
name:
198+
en: The Ministry of Land Management, Urban Planning and Construction of Cambodia
199+
masm:
200+
code: masm
201+
name:
202+
en: Mongolian Agency for Standardization and Metrology
203+
moct:
204+
code: moct
205+
name:
206+
en: Korean Ministry of Culture and Tourism
207+
mofa:
208+
code: mofa
209+
name:
210+
en: Ministry of Foreign Affairs of Japan
211+
msst:
212+
code: msst
213+
name:
214+
en: The Major State Service "Turkmenstandartlary"
215+
mv:
216+
code: mv
217+
name:
218+
en: Republic of Maldives
219+
nco:
220+
code: nco
221+
name:
222+
en: National Cartographic Center of Iran
223+
nikl:
224+
code: nikl
225+
name:
226+
en: National Institute of Korean Language
227+
nrs:
228+
code: nrs
229+
name:
230+
en: Nippon-no-Rômazi-Sya
231+
notes: Also known as the Japan Romanization Society.
232+
odni:
233+
code: odni
234+
name:
235+
en: Office of the Director Of National Intelligence
236+
rjgc:
237+
code: rjgc
238+
name:
239+
en: Royal Jordanian Geographic Center
240+
royin:
241+
code: royin
242+
name:
243+
en: The Royal Society of Thailand
244+
notes: Formerly named The Royal Institute of Thailand (royin)
245+
rs:
246+
code: rs
247+
name:
248+
en: Republic of Serbia
249+
sac:
250+
code: sac
251+
name:
252+
en: Standardization Administration of China
253+
sasm:
254+
code: sasm
255+
name:
256+
en: The former State Administration of Surveying and Mapping of the People's Republic of China
257+
ses:
258+
code: ses
259+
name:
260+
en: Survey of Egypt
261+
sfs:
262+
code: sfs
263+
name:
264+
en: Finnish Standards Association
265+
sgk:
266+
code: sgk
267+
name:
268+
en: Khmere Service Geographique
269+
tm:
270+
code: tm
271+
name:
272+
en: Republic of Turkmenistan
273+
ua:
274+
code: ua
275+
name:
276+
en: Government of Ukraine
277+
ucis:
278+
code: ucis
279+
name:
280+
en: Uyghur Computer Information Society
281+
un:
282+
code: un
283+
name:
284+
en: United Nations
285+
uz:
286+
code: uz
287+
name:
288+
en: Government of Uzbekistan
289+
var:
290+
code: var
291+
name:
292+
en: Various systems managed by ISO {docnumber}/AG
293+
xlsc:
294+
code: xlsc
295+
name:
296+
en: XUAR Language and Script Committee
297+
yivo:
298+
code: yivo
299+
name:
300+
en: YIVO Institute for Jewish Research
301+
mvd:
302+
code: mvd
303+
name:
304+
en: The Ministry of Internal Affairs of the Republic of Belarus
305+
306+
stategeocadastre:
307+
code: stategeocadastre
308+
name:
309+
en: State Service of Ukraine for Geodesy, Cartography and Cadastre (StateGeoCadastre)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
require "spec_helper"
2+
require "iso-639-data"
3+
require "iso-15924"
4+
5+
RSpec.describe "map names and metadata" do
6+
valid_authcodes = YAML.load(File.read(__dir__+"/authority_codes.yaml")).keys
7+
8+
Interscript.maps.each do |n|
9+
context n do
10+
parts = n.split('-', 5)
11+
authcode, lang, source_script, target_script, id = parts
12+
map = Interscript.parse(n)
13+
14+
it "has a valid name" do
15+
expect(parts.count).to be 5
16+
expect(valid_authcodes).to include authcode
17+
expect(Iso639Data.valid?(lang)).to be true
18+
expect(Iso15924.valid?(source_script)).to be true
19+
expect(Iso15924.valid?(target_script)).to be true
20+
end
21+
22+
it "has matching metadata" do
23+
expect(map.metadata[:authority_id]).to eq authcode
24+
expect(map.metadata[:source_script]).to eq source_script
25+
expect(map.metadata[:destination_script]).to eq target_script
26+
expect(map.metadata[:id]).to eq id
27+
end
28+
29+
it "has a correct language in the metadata" do
30+
m_auth, m_lang = map.metadata[:language].split(':', 2)
31+
32+
expect(lang).to eq m_lang
33+
34+
case m_auth
35+
when 'iso-639-2'
36+
expect(Iso639Data.iso_639_2.key? m_lang).to be true
37+
when 'iso-639-3'
38+
expect(Iso639Data.iso_639_3.key? m_lang).to be true
39+
else
40+
raise "#{m_auth} is an invalid authority for #{lang} - iso-639-2 or 3 expected"
41+
end
42+
end
43+
end
44+
end
45+
end

0 commit comments

Comments
 (0)