-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
125 lines (111 loc) · 4.68 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
'use strict'
const tokenize = require('.')
const a = require('assert')
const l = str => process.stdout.write(str + '\n')
// todo:
// - Wolterdingen (Han)
// - Soltau (Han)
// - `grep '(Kr '`
// - `grep '(Bz '`
// - `grep '(b '`
// - `grep 'Bergstr)`
// - `grep 'DB`
// - Sachsenhausen (Nordb) -> "nordbahnhof"
// - https://mobile.twitter.com/RecumbentTravel/status/926932596222722048
const tests = [
['Foo BAR baz', 'foo bar baz'],
['foo bar', 'foo bar'],
['Zwiesel (Bay)', 'zwiesel bayern'],
['Wurzbach (Thür)', 'wurzbach thueringen'],
['Zwickau (Sachs) Hbf', 'zwickau sachsen hauptbahnhof'],
['Wulfen (Anh)', 'wulfen anhalt'],
['Wulfen (Westf)', 'wulfen westfalen'],
['Wildberg (Württ)', 'wildberg wuerttemberg'],
['Wiesau (Oberpf)', 'wiesau oberpfalz'],
['Westheim (Schwab)', 'westheim schwaben'],
['Weßling (Oberbay)', 'wessling oberbayern'],
['Wedel (Holst)', 'wedel holstein'],
['Weddel (Braunschw)', 'weddel braunschweig'],
['Wallwitz (Saalkr)', 'wallwitz saalekreis'],
['Domnitz (SaalKr)', 'domnitz saalekreis'],
['Vilshofen (Niederbay)', 'vilshofen niederbayern'],
['Villingen (Schwarzw)', 'villingen schwarzwald'],
['Varel (Oldb)', 'varel oldenburg'],
['Strasburg (Uckerm)', 'strasburg uckermark'],
['Langenfeld (Rheinl)-Berghausen', 'langenfeld rheinland berghausen'],
['Stockheim (Oberfr)', 'stockheim oberfranken'],
['Sprendlingen (Rheinhess)', 'sprendlingen rheinhessen'],
['Seligenstadt (Hess)', 'seligenstadt hessen'],
['Seehausen (Altm)', 'seehausen altmark'],
// todo: use "stadt limes" instead?
['Schwalbach a Ts (Limes)', 'schwalbach a ts limesstadt'],
['Schöneck (Vogtl)', 'schoeneck vogtland'],
['Reuth (b Plauen/Vogtl)', 'reuth bei plauen vogtland'],
['Schönberg (Meckl)', 'schoenberg mecklenburg'],
['Rückersdorf (Mittelfr)', 'rueckersdorf mittelfranken'],
['Rodenbach (Dillkr)', 'rodenbach dillkreis'],
['Reinheim (Odenw)', 'reinheim odenwald'],
['Oelsnitz (Erzgeb)', 'oelsnitz erzgebirge'],
['Neustadt (Weinstr) Hbf', 'neustadt wein strasse hauptbahnhof'],
['Liebenthal (Prign)', 'liebenthal prignitz'],
['Lich (Oberhess)', 'lich oberhessen'],
['Leer (Ostfriesl)', 'leer ostfriesland'],
['Langenhorn (Schlesw)', 'langenhorn schleswig'],
['Königstein (Sächs Schweiz)', 'koenigstein saechsische schweiz'],
['Kirchheim (Unterfr)', 'kirchheim unterfranken'],
['Dernbach (Westerw)', 'dernbach westerwald'],
['Burg (Dithm)', 'burg dithmarschen'],
['Bad Blankenburg (Thüringerw)', 'bad blankenburg thueringer wald'],
['Lindhorst (Schaumb-Lippe)', 'lindhorst schaumburg lippe'],
// fictive names, check that it recognizes non-ASCII as the same word
['Foo (Käbay)', 'foo kaebay'],
['Foo (Kübay)', 'foo kuebay'],
['Foo (Köbay)', 'foo koebay'],
['Bar (Kaßoberpf)', 'bar kassoberpf'],
['Pößneck ob Bf', 'poessneck oben bahnhof'],
['Wittgensdorf ob Bf', 'wittgensdorf oben bahnhof'],
['Pößneck unt Bf', 'poessneck unten bahnhof'],
// fictive names, check that it recognizes non-ASCII as the same word
['Foo Tráob', 'foo traob'],
['Bar Kaçunt', 'bar kacunt'],
['Schweinfurt Hbf', 'schweinfurt hauptbahnhof'],
['Frankfurt(M) Flughafen Fernbf', 'frankfurt main flughafen fernbahnhof'],
['Frankfurt am Main Flughafen Fernbf', 'frankfurt main flughafen fernbahnhof'],
['Berlin Hbf (S-Bahn)', 'berlin hauptbahnhof sbahn'],
['Charlottenburg Bahnhof (S), Berlin', 'charlottenburg bahnhof sbahn berlin'],
['Berlin Hauptbahnhof (S+U), Berlin', 'berlin hauptbahnhof sbahn ubahn berlin'],
['Hermannplatz (U), Berlin', 'hermann platz ubahn berlin'],
// fictive names, check that it recognizes non-ASCII as the same word
['FäS', 'faes'],
['FäS-Bahn', 'faes bahn'],
['FooßU', 'foossu'],
['FooßU-Bahn', 'foossu bahn'],
['Neukölln [U7], Berlin', 'neukoelln u7 berlin'],
['Turmstr. [Bus Alt-Moabit] (U), Berlin', 'turm strasse bus alt moabit ubahn berlin'],
['Angermünde', 'angermuende'],
['Plön', 'ploen'],
['Plänterwald', 'plaenterwald'],
['Weißenau', 'weissenau'],
['Seestraße', 'see strasse'],
['Wiebestr/Huttenstr (Berlin)', 'wiebe strasse hutten strasse berlin'],
['Alexanderplatz', 'alexander platz'],
['Alexanderpl.', 'alexander platz'],
['Friedrich-Wilhelm-Pl.', 'friedrich wilhelm platz'],
['Olivaer Pl', 'olivaer platz'],
['Olivaer Pl.', 'olivaer platz'],
['Taucha (b Leipzig)', 'taucha bei leipzig'],
['Horb', 'horb'],
// fictive names, check that it recognizes non-ASCII as the same word
['Tréb Foo', 'treb foo'],
['Kœb Bar', 'koeb bar'], // U+0153
// todo: what about U+0276?
['Heinrich-von-Kleist-Str., Potsdam', 'heinrich von kleist strasse potsdam']
]
l('TAP version 13')
let i = 0
for (const [input, expected] of tests) {
l(`# ${input} -> ${expected}`)
a.deepStrictEqual(tokenize(input), expected.split(' '))
l('ok ' + (++i))
}
l(`1..${i}\n# ok`)