Expand locale data sets; match tests against patterns instead of fixed sets

This commit is contained in:
lilleman
2026-06-08 16:02:58 +02:00
parent 770dcd72f2
commit e28b92090d
24 changed files with 250 additions and 143 deletions
+24 -38
View File
@@ -1,39 +1,25 @@
[
{
"format": "{street} {street-number}\n{postal-code} {locality}",
"street": [
{
"format": "{first}{last}",
"first": ["Bergs", "Kungs", "Stor"],
"last": ["gatan", "vägen", "stigen"]
},
["Vintjärn", "Staby", "Promenaden"]
],
"street-number": [
{
"format": "1"
},
{
"format": "10"
},
{
"format": "100",
"weight": 0.2
},
{
"format": "1A",
"weight": 0.2
},
{
"format": "10A",
"weight": 0.1
}
],
"postal-code": [
{
"format": "100 10"
}
],
"locality": ["Göteborg", "Linköping", "Malmö", "Stockholm", "Uppsala", "Västerås", "Örebro"]
}
]
{
"format": "{street} {street-number}\n{postal-code} {locality}",
"street": [
{
"format": "{first}{last}",
"first": ["Ängs", "Bergs", "Björk", "Drottning", "Eke", "Furu", "Hamn", "Köpmans", "Kungs", "Linné", "Norra", "Nybro", "Oden", "Öster", "Park", "Skogs", "Skol", "Slotts", "Söder", "Stations", "Stor", "Strand", "Trädgårds", "Vasa", "Vasa", "Väster"],
"last": ["gatan", "vägen", "stigen", "gränd", "backen", "torget", "allén"]
},
["Avenyn", "Birger Jarlsgatan", "Promenaden", "Staby", "Sveavägen", "Vintjärn"]
],
"street-number": [
{ "format": "1" },
{ "format": "10" },
{ "format": "100", "weight": 0.2 },
{ "format": "1A", "weight": 0.2 },
{ "format": "10A", "weight": 0.1 },
{ "format": "100A", "weight": 0.05 }
],
"postal-code": [
{ "format": "100 10" }
],
"locality": ["Alingsås", "Alvesta", "Arboga", "Arvika", "Avesta", "Boden", "Bollnäs", "Borlänge", "Borås", "Enköping", "Eskilstuna", "Eslöv", "Fagersta", "Falkenberg", "Falköping", "Falun", "Finspång", "Gällivare", "Gävle", "Göteborg", "Halmstad", "Haparanda", "Helsingborg", "Hudiksvall", "Huddinge", "Härnösand", "Hässleholm", "Jönköping", "Kalmar", "Karlshamn", "Karlskoga", "Karlskrona", "Karlstad", "Katrineholm", "Kiruna", "Kramfors", "Kristianstad", "Kristinehamn", "Köping", "Landskrona", "Lidingö", "Lidköping", "Lindesberg", "Linköping", "Ljungby", "Ludvika", "Luleå", "Lund", "Lycksele", "Malmö", "Mariestad", "Mjölby", "Mora", "Motala", "Mölndal", "Nacka", "Norrköping", "Norrtälje", "Nyköping", "Nynäshamn", "Nässjö", "Oskarshamn", "Piteå", "Ronneby", "Sandviken", "Sigtuna", "Skara", "Skellefteå", "Skövde", "Sollentuna", "Solna", "Stockholm", "Strängnäs", "Sundbyberg", "Sundsvall", "Säffle", "Sävsjö", "Söderhamn", "Södertälje", "Sölvesborg", "Tierp", "Tranås", "Trelleborg", "Trollhättan", "Täby", "Uddevalla", "Ulricehamn", "Umeå", "Upplands Väsby", "Uppsala", "Varberg", "Vetlanda", "Vimmerby", "Visby", "Värnamo", "Vänersborg", "Västervik", "Västerås", "Växjö", "Ystad", "Ängelholm", "Örebro", "Örnsköldsvik", "Östersund"]
}
]
+1 -1
View File
@@ -4,5 +4,5 @@
"x": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"],
"weight": 2
},
["Blå", "Brun", "Grå", "Grön", "Gul", "Himmelsblå", "Lila", "Orange", "Rosa", "Röd", "Svart", "Vit"]
["Beige", "Benvit", "Blå", "Brun", "Cerise", "Grå", "Grön", "Guldgul", "Gul", "Gräsgrön", "Havsblå", "Himmelsblå", "Korall", "Krämvit", "Lila", "Ljusblå", "Ljusgrön", "Marinblå", "Mörkblå", "Mörkgrön", "Mörkröd", "Olivgrön", "Orange", "Persika", "Purpur", "Rosa", "Röd", "Senapsgul", "Silver", "Skogsgrön", "Smaragdgrön", "Solgul", "Svart", "Turkos", "Vinröd", "Vit", "Äppelgrön"]
]
+4 -4
View File
@@ -4,11 +4,11 @@
"base": [
{
"format": "{a}{b}",
"a": ["Berg", "Blå", "Järn", "Nord", "Ny", "Sjö", "Skog", "Sol", "Sten", "Stor"],
"b": ["bygg", "data", "gruppen", "handel", "konsult", "logistik", "produkter", "system", "teknik", "verkstad"]
"a": ["Berg", "Blå", "Eko", "Fjäll", "Grön", "Järn", "Nord", "Ny", "Sjö", "Skog", "Sol", "Sten", "Stor", "Syd", "Söder", "Trä", "Vind", "Väst", "Ås", "Öst"],
"b": ["bygg", "data", "design", "energi", "frakt", "gruppen", "handel", "konsult", "kraft", "logistik", "media", "produkter", "system", "teknik", "verkstad", "vård"]
},
["Aktiebolaget Vega", "Ekonomihuset", "Lindberg", "Nordström", "Svensson & Co"]
["Aktiebolaget Vega", "Bröderna Lund", "Ekonomihuset", "Hantverkargruppen", "Lindberg", "Mälardalens Bygg", "Nordström", "Skandinaviska Handelshuset", "Sundbergs Verkstad", "Svensson & Co", "Vasa Logistik"]
],
"suffix": ["AB", "AB", "AB", "HB", "KB"]
"suffix": ["AB", "AB", "AB", "AB", "HB", "KB"]
}
]
+19 -5
View File
@@ -4,12 +4,26 @@
"local": [
{
"format": "{first}{sep}{last}{n}",
"first": ["erik", "anna", "lars", "karin", "johan", "sara", "anders", "emma", "per", "sofia"],
"last": ["andersson", "johansson", "karlsson", "nilsson", "eriksson", "larsson", "olsson", "persson", "svensson", "gustafsson"],
"sep": [".", "_", "."],
"n": ["", "", "1", "7", "42"]
"weight": 3,
"first": ["agnes", "alice", "anders", "anna", "anton", "asa", "axel", "bjorn", "david", "ebba", "elin", "elsa", "emil", "emma", "erik", "ester", "frida", "fredrik", "gustav", "hampus", "hanna", "henrik", "hugo", "ida", "ingrid", "isak", "johan", "jonas", "julia", "karin", "kjell", "klara", "lars", "lena", "linus", "magnus", "maja", "mats", "mattias", "mikael", "moa", "nils", "olle", "oskar", "par", "patrik", "per", "pontus", "rasmus", "samuel", "sara", "sofia", "soren", "stina", "sven", "tobias", "tuva", "viktor", "wilma", "ylva"],
"last": ["ahlberg", "andersson", "berg", "berglund", "bergstrom", "blom", "dahlberg", "eklund", "ekstrom", "engstrom", "eriksson", "falk", "forsberg", "fredriksson", "gustafsson", "hellstrom", "holm", "holmberg", "jakobsson", "johansson", "jonsson", "karlsson", "larsson", "lind", "lindberg", "lindgren", "lindqvist", "lundberg", "lundgren", "lundqvist", "magnusson", "nilsson", "norberg", "nystrom", "olsson", "persson", "petersson", "samuelsson", "sandberg", "sjoberg", "sjogren", "strand", "strom", "sundberg", "svensson", "soderberg", "wallin", "aberg", "oberg"],
"sep": [".", ".", "_", "-", ""],
"n": ["", "", "", "1", "7", "42", "88", "99"]
},
{
"format": "{adj}{noun}{n}",
"weight": 2,
"adj": ["blixt", "busig", "cool", "frisk", "galen", "glad", "kaxig", "kvick", "listig", "lugn", "mega", "modig", "mysig", "pigg", "rolig", "smart", "snabb", "stark", "super", "trygg", "turbo", "varm", "vild"],
"noun": ["abborren", "bamsen", "bjorn", "drake", "ekorre", "falken", "grodan", "hund", "igelkott", "kaninen", "katt", "korpen", "krabban", "musen", "nallen", "ninja", "orn", "panda", "pirat", "raven", "robot", "sillen", "sparven", "uggla", "varg", "vargen"],
"n": ["", "", "7", "13", "14", "42", "77", "99", "123", "420", "2024"]
},
{
"format": "{w}{n}",
"weight": 1,
"w": ["blip", "blupp", "boop", "busigekorre", "coolkatten", "doot", "fizz", "floof", "galnaalgen", "gladgrodan", "glorp", "kapow", "kazoo", "kvickharen", "listigaraven", "megaraven", "mysmoln", "nattugglan", "pew", "pigghund", "pixelfox", "plonk", "rolighund", "snabbkatten", "snork", "splat", "superhunden", "turbohund", "vildvargen", "vroom", "wahoo", "waooooh", "woot", "yeet", "zap", "zoom"],
"n": ["", "", "7", "14", "42", "69", "99", "123", "420", "1337", "2000", "9000"]
}
],
"domain": ["example.com", "example.org", "example.net", "mail.example.com"]
"domain": ["example.com", "example.org", "example.net", "example.se", "example.nu", "example.io", "mail.example.se", "webmail.example.se", "inkorg.example.se", "post.example.se", "demo.example.se", "test.example.org", "dev.example.se"]
}
]
+13 -6
View File
@@ -1,14 +1,21 @@
[
{
"format": "{prefix}{femalefirst|malefirst} {last}",
"femalefirst": ["Anna", "Astrid", "Elin", "Emma", "Ingrid", "Karin", "Linnéa", "Maria", "Sara", "Sofia"],
"malefirst": ["Anders", "Erik", "Gustav", "Johan", "Karl", "Lars", "Mikael", "Nils", "Oskar", "Per"],
{
"format": "{prefix}{femalefirst|malefirst} {last}",
"femalefirst": ["Agnes", "Alice", "Alicia", "Alma", "Amanda", "Anna", "Astrid", "Cornelia", "Ebba", "Elin", "Ella", "Ellen", "Elsa", "Emilia", "Emma", "Ester", "Eva", "Frida", "Hanna", "Hedda", "Ida", "Ingrid", "Isabelle", "Julia", "Karin", "Klara", "Kristina", "Lena", "Linnéa", "Lova", "Maja", "Maria", "Moa", "Molly", "Märta", "Nellie", "Nora", "Olivia", "Saga", "Sara", "Selma", "Signe", "Siri", "Sofia", "Stina", "Tilde", "Tuva", "Wilma", "Ylva", "Åsa"],
"malefirst": ["Adam", "Albin", "Alexander", "Alfred", "Anders", "Anton", "Arvid", "Axel", "Bengt", "Bo", "Carl", "David", "Edvin", "Elias", "Emil", "Erik", "Filip", "Folke", "Fredrik", "Gustav", "Göran", "Hampus", "Hans", "Henrik", "Hugo", "Isak", "Johan", "Jonas", "Karl", "Kjell", "Lars", "Leo", "Linus", "Love", "Magnus", "Mats", "Mattias", "Mikael", "Nils", "Olle", "Oskar", "Otto", "Patrik", "Per", "Pontus", "Rasmus", "Samuel", "Sixten", "Stefan", "Sten", "Sven", "Theodor", "Tobias", "Viktor", "William", "Åke"],
"last": [
{
"format": "{first}sson",
"first": ["Ander", "Erik", "Johan", "Karl", "Lar"]
"weight": 5,
"first": ["Ander", "Arvid", "Bengt", "Daniel", "David", "Erik", "Fredrik", "Gustaf", "Henrik", "Håkan", "Isak", "Jakob", "Johan", "Jon", "Jöns", "Karl", "Lar", "Magnu", "Matt", "Mikael", "Mårten", "Nil", "Ol", "Per", "Petter", "Samuel", "Sven"]
},
["Berg", "von Flemming", "Eismar"]
{
"format": "{first}{last}",
"weight": 4,
"first": ["Ahl", "Berg", "Blom", "Ceder", "Dahl", "Ek", "Eng", "Falk", "Fors", "Gran", "Hag", "Hed", "Hell", "Holm", "Lind", "Lund", "Mal", "Norr", "Ny", "Rosen", "Sand", "Sjö", "Skog", "Söder", "Sten", "Strand", "Sund", "Wall", "Wik", "Öst"],
"last": ["berg", "blad", "crona", "dahl", "ed", "fors", "gren", "holm", "in", "kvist", "löf", "lund", "man", "mark", "qvist", "roth", "stedt", "sten", "strand", "ström", "vall"]
},
["Berg", "Blom", "Eismar", "Falk", "Holm", "Lind", "Norberg", "Strand", "Ström", "von Flemming", "Åberg", "Öberg"]
],
"prefix": [
"",
+11 -6
View File
@@ -1,12 +1,17 @@
[
{
"format": "#070-000 00 00",
"weight": 10
"format": "{prefix}-{a} {b} {c}",
"weight": 10,
"prefix": ["070", "072", "073", "076", "079"],
"a": [{ "format": "000" }],
"b": [{ "format": "00" }],
"c": [{ "format": "00" }]
},
{
"format": "#01-000 00 00"
},
{
"format": "#010-000 00 00"
"format": "{prefix}-{a} {b} {c}",
"prefix": ["08", "011", "013", "018", "019", "021", "023", "026", "031", "033", "035", "036", "040", "042", "044", "046", "054", "060", "063", "090"],
"a": [{ "format": "000" }],
"b": [{ "format": "00" }],
"c": [{ "format": "00" }]
}
]
+7 -1
View File
@@ -1,7 +1,13 @@
[
{
"format": "{amt}{ore} kr",
"amt": [{ "format": "10", "weight": 3 }, { "format": "100", "weight": 2 }, { "format": "1 000" }],
"amt": [
{ "format": "1", "weight": 2 },
{ "format": "10", "weight": 4 },
{ "format": "100", "weight": 3 },
{ "format": "1 000", "weight": 1 },
{ "format": "10 000", "weight": 0.3 }
],
"ore": ["", { "format": ",{c}", "c": [{ "format": "00" }], "weight": 0.4 }]
}
]
+16 -6
View File
@@ -1,10 +1,20 @@
[
{
"format": "{lead} {adj} {noun} {verb} {prep} {adj} {noun}.",
"lead": ["Alla", "Den", "En", "Ett", "Varje"],
"adj": ["gamla", "gyllene", "ljusa", "mörka", "snabba", "stora", "tysta", "vilda"],
"noun": ["berget", "floden", "hamnen", "motorn", "räven", "signalen", "skogen", "trädgården"],
"verb": ["bygger", "bär", "följer", "formar", "korsar", "når", "vaktar"],
"prep": ["bortom", "genom", "längs", "under", "över"]
"format": "{lead} {adj} {noun} {verb} {prep} {adj} {noun}{end}",
"weight": 4,
"lead": ["Alla", "Den", "Denna", "Det", "En", "Ett", "Ingen", "Många", "Något", "Varenda", "Varje", "Vår", "Våra"],
"adj": ["blåa", "branta", "djupa", "dunkla", "ensamma", "fjärran", "forna", "gamla", "glömda", "gröna", "gyllene", "heliga", "kalla", "ljusa", "lugna", "mäktiga", "mörka", "nordliga", "rofyllda", "ruvande", "snabba", "starka", "stilla", "stora", "susande", "tidlösa", "tysta", "vackra", "varma", "vidsträckta", "vilda", "vintriga", "väldiga", "ödsliga"],
"noun": ["arkivet", "berget", "bäcken", "dalen", "eken", "fjället", "floden", "fyren", "fågeln", "gården", "glaciären", "hamnen", "holmen", "klippan", "kusten", "lampan", "lyktan", "motorn", "måsen", "ravinen", "räven", "seglaren", "signalen", "sjön", "skogen", "slätten", "stigen", "stjärnan", "stranden", "tornet", "trädgården", "vandraren", "vinden", "vågen", "ängen"],
"verb": ["anar", "bevakar", "bygger", "bär", "döljer", "famnar", "följer", "formar", "gömmer", "hälsar", "korsar", "leder", "lockar", "lyser", "minns", "möter", "når", "skyddar", "speglar", "söker", "nder", "vaktar", "väcker", "värnar", "återvänder"],
"prep": ["bakom", "bland", "bortom", "framför", "genom", "intill", "kring", "längs", "mot", "nära", "ovanför", "runt", "under", "vid", "över"],
"end": [".", ".", ".", "!"]
},
{
"format": "{q} {adj} {noun} {verb} {prep} {noun}?",
"q": ["Hur formar den", "Kan en", "Når den", "När bygger ett", "Var möter den", "Varför döljer varje", "Vart följer den", "Vilken väg leder den"],
"adj": ["branta", "ensamma", "forna", "gamla", "gyllene", "ljusa", "mörka", "snabba", "stilla", "tysta", "vidsträckta", "vilda"],
"noun": ["berget", "fyren", "glaciären", "hamnen", "klippan", "räven", "seglaren", "skogen", "stjärnan", "vandraren", "vågen", "ängen"],
"verb": ["famna", "följa", "gömma", "korsa", "leda", "möta", "nå", "skydda", "spegla", "söka", "vakta", "värna"],
"prep": ["bakom", "bortom", "genom", "kring", "längs", "mot", "nära", "ovanför", "runt", "under", "över"]
}
]
+7 -2
View File
@@ -1,7 +1,12 @@
[
{
"format": "https://{host}{path}",
"host": ["example.com", "www.example.com", "example.org", "blogg.example.net", "butik.example.com", "example.se"],
"path": ["", { "format": "/{seg}", "seg": ["om", "produkter", "blogg", "kontakt", "hjalp", "artiklar", "logga-in", "nyheter", "start", "sok"] }]
"host": ["example.com", "www.example.com", "example.org", "example.se", "www.example.se", "blogg.example.net", "butik.example.com", "shop.example.se", "api.example.se", "dokument.example.org", "nyheter.example.net", "mail.example.se"],
"path": [
"",
"",
{ "format": "/{seg}", "seg": ["om", "om-oss", "produkter", "blogg", "kontakt", "hjalp", "artiklar", "logga-in", "nyheter", "start", "sok", "kundvagn", "kassa", "villkor", "integritet", "priser", "tjanster", "foretag", "karriar", "support", "konto", "installningar", "registrera"] },
{ "format": "/{seg}/{sub}", "weight": 0.5, "seg": ["blogg", "produkter", "hjalp", "dokument", "kategori"], "sub": ["oversikt", "kom-igang", "guide", "2024", "senaste", "arkiv", "detaljer"] }
]
}
]
+18 -3
View File
@@ -1,9 +1,24 @@
[
{
"format": "{first}{sep}{last}{n}",
"first": ["erik", "anna", "lars", "karin", "johan", "sara", "anders", "emma", "per", "sofia"],
"last": ["berg", "lind", "holm", "strom", "dahl", "ek", "sjo", "ahl", "falk", "ros"],
"weight": 2,
"first": ["agnes", "alice", "anders", "anna", "asa", "axel", "bjorn", "ebba", "elin", "emil", "emma", "erik", "frida", "gustav", "hanna", "hugo", "ida", "johan", "jonas", "julia", "karin", "klara", "lars", "lena", "magnus", "maja", "moa", "nils", "oskar", "per", "sara", "sofia", "viktor", "ylva"],
"last": ["ahl", "alm", "berg", "bjork", "dahl", "ek", "falk", "gran", "hag", "hed", "holm", "lind", "lund", "mark", "nor", "ohman", "ros", "sand", "sjo", "skog", "sten", "strom", "vik"],
"sep": ["", "", ".", "_"],
"n": ["", "", "", "1", "7", "23", "99"]
"n": ["", "", "", "1", "7", "23", "99", "2024"]
},
{
"format": "{adj}{sep}{noun}{n}",
"weight": 2,
"adj": ["blixt", "busig", "cool", "frisk", "galen", "glad", "kaxig", "kvick", "listig", "lugn", "mega", "modig", "mysig", "pigg", "rolig", "smart", "snabb", "stark", "super", "trygg", "turbo", "varm", "vild"],
"noun": ["abborre", "bamse", "bjorn", "drake", "ekorre", "falk", "groda", "hund", "igelkott", "kanin", "katt", "korp", "krabba", "mus", "nalle", "ninja", "orn", "panda", "pirat", "rav", "robot", "sill", "sparv", "uggla", "varg"],
"sep": ["", "", ".", "_"],
"n": ["", "", "7", "13", "42", "77", "99", "123", "420", "2024"]
},
{
"format": "{w}{n}",
"weight": 1,
"w": ["blip", "blupp", "boop", "busigekorre", "coolkatten", "fizz", "floof", "galnaalgen", "gladgrodan", "glorp", "kapow", "kazoo", "kvickharen", "listigaraven", "megaraven", "mysmoln", "nattugglan", "pigghund", "pixelfox", "plonk", "rolighund", "snabbkatten", "snork", "splat", "superhunden", "turbohund", "vildvargen", "vroom", "wahoo", "waooooh", "woot", "yeet", "zap", "zoom"],
"n": ["", "", "7", "14", "42", "69", "99", "123", "420", "1337", "2000", "9000"]
}
]
+1 -1
View File
@@ -1 +1 @@
["dröm", "fjäll", "glädje", "hav", "höst", "insjö", "källa", "ljus", "morgon", "norr", "ödmjuk", "penna", "regn", "skog", "sommar", "stjärna", "träd", "under", "vinter", "väg", "åker", "äng", "öken", "blomma", "fågel", "gata", "höjd", "klocka", "ljud", "måne"]
["al", "alm", "anka", "apa", "ask", "backe", "bark", "barn", "berg", "björk", "blad", "blomma", "bläck", "bo", "bok", "bro", "brunn", "brygga", "buske", "by", "båt", "bäck", "dag", "dal", "dimma", "doft", "droppe", "dröm", "duva", "dvärg", "ek", "eka", "ekorre", "eld", "enbär", "fena", "fjord", "fjäll", "flinga", "flod", "fluga", "frö", "fyr", "fågel", "fält", "fönster", "gata", "glädje", "glänta", "gnista", "gran", "gren", "grotta", "gräs", "gård", "hage", "hand", "hare", "hav", "hed", "himmel", "hjort", "hjärta", "holme", "horn", "hund", "hägg", "häll", "häst", "höjd", "höst", "igelkott", "insjö", "is", "jord", "kamin", "klocka", "klyfta", "kniv", "knopp", "ko", "korp", "krona", "krydda", "kudde", "kula", "kust", "kvist", "kväll", "källa", "kärr", "lada", "lampa", "land", "lek", "lera", "ljud", "ljung", "ljus", "lo", "lugn", "lund", "låga", "lärka", "lök", "mark", "mes", "moln", "morgon", "mossa", "mur", "mygga", "myr", "måne", "mård", "mås", "natt", "norr", "nyckel", "näbb", "näckros", "näsa", "nät", "ollon", "orm", "ost", "oxe", "pelare", "penna", "pil", "planka", "plog", "port", "ravin", "regn", "ren", "rev", "ros", "rot", "rum", "rådjur", "råg", "räka", "ränna", "rönn", "sal", "sand", "sav", "sed", "segel", "sik", "sippa", "sjö", "skog", "skär", "slott", "slätt", "snäcka", "snö", "sol", "sommar", "sork", "spik", "spår", "stack", "stam", "sten", "stig", "stjärna", "stol", "stork", "storm", "strand", "ström", "svala", "svan", "säd", "säl", "säng", "säv", "tall", "tand", "tjärn", "torg", "torn", "torp", "trappa", "tråd", "träd", "tundra", "tärna", "udde", "uggla", "ugn", "ull", "ulv", "under", "ur", "val", "varg", "vass", "vatten", "vidd", "vik", "vinbär", "vind", "vinge", "vinter", "vrak", "våg", "väg", "vän", "värld", "yta", "åker", "ås", "åska", "ädel", "älg", "älv", "äng", "äpple", "ärla", "ärt", "äventyr", "ö", "ödla", "ödmjuk", "öken", "öl", "öra", "örn", "ört"]