Nothing
context("reading and parsing blaise datamodels")
makeblafile = function(model){
blafile = tempfile('testbla', fileext = '.bla')
writeLines(model, con = blafile)
return(blafile)
}
test_that("correct datamodel can be read and reproduced", {
model = "
DATAMODEL Test
FIELDS
A : STRING[9]
B : INTEGER[2]
C : REAL[9,2]
D : STRING[4]
E : DATETYPE {testcomment}
F : (Male, Female)
G : 1..20
H : 1.0..99.9
I : (Male (1), Female (2), Unknown (9))
{ multiline comment {with nesting}
second line}
ENDMODEL
"
Ncols = 9
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla), c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', "I"))
expect_equivalent(model_types(bla), c('STRING',
'INTEGER',
'REAL',
'STRING',
'DATETYPE',
'ENUM',
'INTEGER',
'REAL',
'ENUM'))
})
test_that("Unknown datatypes throw an error", {
model = "
DATAMODEL Test
FIELDS
A : STRING[9]
B : INTEGER[2]
C : ONZIN1[9,2]
D : ONzin2[4]
ENDMODEL
"
blafile = makeblafile(model)
expect_error(read_model(blafile))
})
test_that("secondary text is accepted", {
model = "
DATAMODEL Test
FIELDS
A \"var A\" : STRING[9]
B \"VAR B\" : INTEGER[2]
C \"VAR C\" : REAL[9,2]
D \"VAR D\" : STRING[4]
E \"VAR E\" : DATETYPE {testcomment}
F \"VAR F\" : (Male, Female)
G \"VAR G\" : 1..20
H \"VAR H\" : 1.0..99.9
I \"VAR I\" : (Male (1), Female (2), Unknown (9))
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', "I"))
expect_equivalent(model_types(bla), c('STRING',
'INTEGER',
'REAL',
'STRING',
'DATETYPE',
'ENUM',
'INTEGER',
'REAL',
'ENUM'))
})
test_that("Empty STRING or large STRING throws an error", {
model = "
DATAMODEL Test
FIELDS
A : STRING[0]
B : STRING[256]
ENDMODEL
"
blafile = makeblafile(model)
expect_error(read_model(blafile))
})
test_that("datatypes are detected", {
model =
"
DATAMODEL Test
FIELDS
A : STRING[9]
B : INTEGER[2]
C : REAL[9,2]
D : STRING[4]
E : DATETYPE
F : (MALE, FEMALE)
ENDMODEL
"
blafile = makeblafile(model)
bla = read_model(blafile)
types = model_types(bla)
expect_equivalent(types[1], 'STRING')
expect_equivalent(types[2], 'INTEGER')
expect_equivalent(types[3], 'REAL')
expect_equivalent(types[4], 'STRING')
expect_equivalent(types[5], 'DATETYPE')
expect_equivalent(types[6], 'ENUM')
})
test_that("names are detected", {
model =
"
DATAMODEL Test
FIELDS
A : STRING[9]
B : INTEGER[2]
C : REAL[9,2]
D : STRING[4]
ENDMODEL
"
blafile = makeblafile(model)
bla = read_model(blafile)
expect_equivalent(model_names(bla), c('A', 'B', 'C', 'D'))
})
test_that("lengths are detected", {
model =
"
DATAMODEL Test
FIELDS
A : STRING[9]
B : INTEGER[2]
C : REAL[9,2]
D : STRING[4]
ENDMODEL
"
blafile = makeblafile(model)
bla = read_model(blafile)
widths = model_widths(bla)
expect_equivalent(widths[1], 9)
expect_equivalent(widths[2], 2)
expect_equivalent(widths[3], 9)
expect_equivalent(widths[4], 4)
})
test_that("floats lengths and decimals are detected", {
model =
"
DATAMODEL Test
FIELDS
A : STRING[9]
B : REAL[3]
C : REAL[9,2]
D : STRING[4]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
widths = model_widths(bla)
decs = model_decimals(bla)
expect_equivalent(widths[2], 3)
expect_equivalent(widths[3], 9)
expect_true(is.na(decs[1]))
expect_true(is.na(decs[2]))
expect_equivalent(decs[3], 2)
})
test_that("ENUMS get correctly read", {
model =
"
DATAMODEL Test
FIELDS
A : (Male, Female)
B : (1,2,3,4,5,6,7,8,9,10)
C : INTEGER[3]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B', 'C'))
expect_equivalent(model_types(bla), c('ENUM', 'ENUM', 'INTEGER'))
expect_equivalent(model_widths(bla), c(1, 2, 3))
expect_equivalent(model_labels(bla)[[1]],
c('Male', 'Female'))
expect_equivalent(model_labels(bla)[[2]],
c('1', '2', '3', '4', '5', '6', '7', '8', '9', '10'))
expect_equivalent(model_labels(bla)[[3]],
NA_character_)
})
test_that("ENUMS accept secondary text", {
model =
"
DATAMODEL Test
FIELDS
A : (Male \"Man\", Female \"vrouw\")
B \"VAR B\" : (Male \"Man\", Female \"vrouw\")
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B'))
expect_equivalent(model_types(bla), c('ENUM', 'ENUM'))
expect_equivalent(model_labels(bla)[[1]],
c('Male', 'Female'))
expect_equivalent(model_labels(bla)[[2]],
c('Male', 'Female'))
})
test_that("alternative representations for INTEGER and REAL work", {
model = "
DATAMODEL Test
FIELDS
G : 1..20
H : 1.0..99.9
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_types(bla), c('INTEGER', 'REAL'))
})
test_that("Only 8 width or empty datetypes work", {
model = "
DATAMODEL Test
FIELDS
A : DATETYPE
ENDMODEL
"
blafile = makeblafile(model)
expect_silent(read_model(blafile))
model = "
DATAMODEL Test
FIELDS
A : DATETYPE[8]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent(read_model(blafile))
model = "
DATAMODEL Test
FIELDS
A : DATETYPE[10]
ENDMODEL
"
blafile = makeblafile(model)
expect_error(read_model(blafile))
})
test_that("field descriptions over multiple lines work", {
model =
"
DATAMODEL Test
FIELDS
A :
STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A : (Male,
Female)
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'ENUM')
expect_equivalent(model_widths(bla), 1)
model =
"
DATAMODEL Test
FIELDS
A
:STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A
:
STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A \"test\"
:
STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A
\"test\"
:
STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A
\"test\":
STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A
\"test\"
:STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'STRING')
expect_equivalent(model_widths(bla), 9)
model =
"
DATAMODEL Test
FIELDS
A
\"test\":
(c1 (1) \"tekst1\",
c2 (2) \"tekst2\")
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), 'ENUM')
expect_equivalent(model_widths(bla), 1)
})
test_that("malformed datamodel throws an error", {
model =
"
DATAMODEL Test
FIELDS
A : STRING[9]
END
"
blafile = makeblafile(model)
expect_error({bla = read_model(blafile)})
model =
"
FIELDS
A : STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_error({bla = read_model(blafile)})
model =
"
DATAMODEL test
A : STRING[9]
ENDMODEL
"
blafile = makeblafile(model)
expect_error({bla = read_model(blafile)})
model =
"
DATAMODEL test
FIELDS
A : STRING
ENDMODEL
"
blafile = makeblafile(model)
expect_error({bla = read_model(blafile)})
model =
"
DATAMODEL test
FIELDS
A :
ENDMODEL
"
blafile = makeblafile(model)
expect_error({bla = read_model(blafile)})
})
test_that("Nonsense decimals don't work", {
model =
"
DATAMODEL Test
FIELDS
A : REAL[3,3]
ENDMODEL
"
blafile = makeblafile(model)
expect_error(read_model(blafile))
model =
"
DATAMODEL Test
FIELDS
A : REAL[3,2]
ENDMODEL
"
blafile = makeblafile(model)
expect_error(read_model(blafile))
})
test_that("lowercase variables also work", {
model = "
DATAMODEL Test
FIELDS
A : String[9]
B : integer[2]
C : real[9,2]
D : STRING[4]
E : Datetype
F : (Male, Female)
G : 1..20
H : 1.0..99.9
ENDMODEL
"
Ncols = 8
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla), c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'))
expect_equivalent(model_types(bla), c('STRING',
'INTEGER',
'REAL',
'STRING',
'DATETYPE',
'ENUM',
'INTEGER',
'REAL'))
})
test_that("lowercase DATAMODEL etc. works", {
model = "
Datamodel Test
Fields
A : String[9]
Endmodel
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == 1)
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), c('STRING'))
model = "
Datamodel Test
Fields
A : String[9]
Endmodel
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == 1)
expect_equivalent(model_names(bla), 'A')
expect_equivalent(model_types(bla), c('STRING'))
})
test_that("DUMMY variables are accepted", {
model = "
DATAMODEL Test
FIELDS
B : integer[2]
DUMMY[1]
D : STRING[4]
ENDMODEL
"
Ncols = 3
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla), c('B', 'DUMMY1', 'D'))
expect_equivalent(model_types(bla), c('INTEGER',
'DUMMY',
'STRING'))
})
test_that("multiple DUMMY variables are accepted", {
model = "
DATAMODEL Test
FIELDS
B : integer[2]
DUMMY[1]
DUMMY[1]
D : STRING[4]
ENDMODEL
"
Ncols = 4
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla), c('B', 'DUMMY1', 'DUMMY2', 'D'))
expect_equivalent(model_types(bla), c('INTEGER',
'DUMMY',
'DUMMY',
'STRING'))
})
test_that("real with spaces is read", {
model = "
DATAMODEL Test
FIELDS
A : STRING[9]
C : REAL[9, 2]
ENDMODEL
"
Ncols = 2
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla), c('A', 'C'))
expect_equivalent(model_types(bla), c('STRING',
'REAL'))
expect_equivalent(model_decimals(bla), c(NA, 2))
})
test_that("numbered enums work", {
model = "
DATAMODEL Test
FIELDS
A : (Male (1), Female (2), Unknown (9))
B : (M(1),F(2),X(10))
ENDMODEL
"
Ncols = 2
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B'))
expect_equivalent(model_types(bla), c('ENUM', 'ENUM'))
expect_equivalent(model_widths(bla), c(1, 2))
expect_equal(sapply(variables(bla), is.numbered_enum), c(A = T, B = T))
expect_equivalent(model_labels(bla)[[1]], c('Male', 'Female', 'Unknown'))
expect_equivalent(model_labels(bla)[[2]], c('M', 'F', 'X'))
expect_equivalent(model_levels(bla)[[1]], c(1, 2, 9))
expect_equivalent(model_levels(bla)[[2]], c(1, 2, 10))
})
test_that("numbered enums work when constructed vertically", {
model = "
DATAMODEL Test
FIELDS
A : (Male (1),
Female (2),
Unknown (9))
DUMMY[1]
B : (M(1),
F(2),
X(10))
ENDMODEL
"
Ncols = 2
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'DUMMY1', 'B'))
expect_equivalent(model_types(bla), c('ENUM',
'DUMMY',
'ENUM'))
expect_equivalent(model_widths(bla), c(1, 1, 2))
})
test_that("numbered enums accept secondary text", {
model = "
DATAMODEL Test
FIELDS
A : (Male (1) \"Man\",
Female (2) \"Vrouw\",
Unknown (9) \"Onbekend\")
B \"VAR B\" : (Male (1) \"Man\",
Female (2) \"Vrouw\",
Unknown (9) \"Onbekend\")
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B'))
expect_equivalent(model_types(bla), c('ENUM', 'ENUM'))
expect_equivalent(model_widths(bla), c(1,1))
expect_equivalent(model_labels(bla)[[1]], c('Male', 'Female', 'Unknown'))
expect_equivalent(model_levels(bla)[[1]], c(1, 2, 9))
expect_equivalent(model_labels(bla)[[2]], c('Male', 'Female', 'Unknown'))
expect_equivalent(model_levels(bla)[[2]], c(1, 2, 9))
})
test_that("field names can contain special names", {
model = "
DATAMODEL Test
FIELDS
testfields : string[3]
isced97fields3\"oude isced tydelyk\" :string[3]
ditiseendatamodel : string[3]
ENDMODEL
"
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('testfields', 'isced97fields3', 'ditiseendatamodel'))
expect_equivalent(model_types(bla), c('STRING','STRING','STRING'))
expect_equivalent(model_widths(bla), c(3,3,3))
})
test_that("Custom Types can be read", {
model = "
DATAMODEL Test
TYPE
sex = (Male (1),
Female (2),
Unknown (9))
YesNo = (Yes (1),
No (0),
dontknow (10))
FIELDS
A : sex
B : YesNo
C : STRING[1]
ENDMODEL
"
Ncols = 3
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_equivalent(model_names(bla), c('A', 'B', 'C'))
expect_equivalent(model_types(bla), c('ENUM',
'ENUM',
'STRING'))
expect_equivalent(model_widths(bla), c(1, 2, 1))
})
test_that("complex datamodel uit de praktijk", {
model = "
{ ***************************************************************************
*
* OMSCHRIJVING
* Beschrijving van de structuur van het bestand met de gegevens van
* van het weegkader.
*
* GESCHIEDENIS
* 1015/05/20 1.0 MWGD ---
*
***************************************************************************
* }
DATAMODEL ModelWeegkader
TYPE
TypeGeslachtklasse = (
Man (1),
Vrouw( 2),
Onbekend (9))
TypeLeeftijdklasse = (
Van18TotEnMet20Jaar (1),
Van21TotEnMet25Jaar (2),
Van26TotEnMet30Jaar (3),
Vanaf31Jaar (4),
Onbekend (9))
TypeBurgerlijkeStaatklasse = (
Ongehuwd (1),
Gehuwd (2),
Verweduwd (3),
Gescheiden (4),
Partnerschap (5),
VerweduwdNaPartnerschap (6),
GescheidenNaPartnerschap (7),
VerweduwdOfGescheiden (8),
Onbekend(99))
TypePlaatsInHuishoudenklasse = (
ThuiswonendKind (1),
Alleenstaande (2),
PartnerNietGehuwdZonderKinderen (3),
PartnerGehuwdStelZonderKinderen (4),
PartnerNietGehuwdMetKinderen (5),
PartnerGehuwdStelMetKinderen (6),
OuderEenouderHH (7),
RefPersoonOverigHH (8),
OverigLid (9),
LidInstitutioneelHH (10),
Onbekend (99))
TypeTypeHuishoudenklasse = (
Eenpersoonshuishouden (1),
NietGehuwdPaarZonderKinderen (2),
GehuwdPaarZonderKinderen (3),
NietGehuwdPaarMetKinderen (4),
GehuwdPaarMetKinderen (5),
Eenouderhuishouden (6),
OverigHH (7),
InstitutioneelHH (8),
Onbekend (99))
TypeSocEcoCategorieklasse = (
Werknemer (1),
DGA (2),
Zelfstandige (3),
OverigActief (4),
OntvangerWW (5),
OntvangerBijstand (6),
OntvangerOverigeUitkering (7),
OntvangerUitkeringZiekte (8),
OntvangerPensioen (9),
SchoolgaandStudentMetInkomen (10),
SchoolgaandStudentZonderInkomen (11),
OverigZonderInkomen (12),
WerknemerEnDGA (21),
ZelfstandigeEnOverigActief (22),
OntvangerUItkering (23),
SchoolgaandStudent (24),
OverigNietActief (31),
Onbekend (99))
TypeStedelijkheidklasse = (
ZeerSterStedelijk (1),
SterkStedelijk (2),
MatigStedelijk (3),
WeinigStedelijk (4),
NietStedelijk (5),
Onbekend (9))
TypeLandsdeelklasse = (
NoordNederland (1),
OostNederland (2),
WestNederland (3),
ZuidNederland (4),
Onbekend (9))
TypePersInkomensklasse = (
Perc00TotEnMet01 (1),
Perc02TotEnMet10 (2),
Perc11TotEnMet20 (3),
Perc21TotEnMet30 (4),
Perc31TotEnMet40 (5),
Perc41TotEnMet50 (6),
Perc51TotEnMet60 (7),
Perc61TotEnMet99 (8),
Perc00TotEnMet10 (9),
Onbekend (99))
TypeInschrijfduurklasse = (
Van0000TotEnMet0050Dagen ( 1),
Van0051TotEnMet0220Dagen ( 2),
Van0221TotEnMet0420Dagen ( 3),
Van0421TotEnMet0650Dagen ( 4),
Van0651TotEnMet0900Dagen ( 5),
Van0901TotEnMet1140Dagen ( 6),
Van1141TotEnMet1470Dagen ( 7),
Van1471TotEnMet1860Dagen ( 8),
Van1861TotEnMet2280Dagen ( 9),
Van2281TotEnMet2840Dagen (10),
Van2841TotEnMet7200Dagen (11),
Van7201TotEnMet9999Dagen (12),
Van0000TotEnMet0220Dagen (13),
Van2841TotEnMet9999Dagen (14),
Onbekend (99))
TypeAantalImmigratiesklasse = (
GeenImmigraties (0),
EenImmigratie (1),
TweeOfMeerImmigraties (2),
Onbekend (9))
TypeTypeNationaliteitklasse = (
UitsluitendNederlands (1),
NederlandsEnEenNietNL (2),
NederlandsEnTweeNietNL (3),
NederlandsEnDrieNietNL (4),
EenNietNederlands (5),
TweeNietNederlands (6),
DrieNietNederlands (7),
NietVanToepassing (9),
Nederlands (10),
NietNederlands (11),
Onbekend (99))
TypeSoortVerblijfklasse = (
Onbekend (0),
VreemdelingenWet09 ( 1),
VreemdelingenWet10 ( 2),
VreemdelingenWet11 ( 3),
VreemdelingenWet12 ( 4),
VreemdelingenWet13 ( 5),
VreemdelingenWet14 ( 6),
VreemdelingenWet15 ( 7),
VreemdelingenWet16 ( 8),
VreemdelingenWet17 ( 9),
VreemdelingenWet18 (10),
VreemdelingenWet19 (11),
VreemdelingenWet20 (12),
VreemdelingenWet21 (13),
VreemdelingenWet22 (14),
VreemdelingenWet23 (15),
VreemdelingenWet24 (16),
VreemdelingenWet25 (17),
VreemdelingenWet26 (18),
VreemdelingenWet27 (19),
VreemdelingenWet28 (20),
VreemdelingenWet29 (21),
VreemdelingenWet30 (22),
VreemdelingenWet31 (23),
VreemdelingenWet32 (24),
VreemdelingenWet33 (25),
VreemdelingenWet34 (26),
VreemdelingenWet35 (27),
VreemdelingenWet36 (28),
VreemdelingenWet37 (29),
VreemdelingenWet38 (30),
VreemdelingenWet39 (31),
VreemdelingenWet40 (32),
VreemdelingenWet41 (33),
VreemdelingenWet42 (34),
VreemdelingenWet43 (35),
VreemdelingenWet91 (36),
VreemdelingenWet92 (37),
VreemdelingenWet93 (38),
VreemdelingenWet98 (39),
VreemdelingenWet99 (40))
TypeG3klasse = (
NoordNederland (1),
OostNederland (2),
WestNederland (3),
ZuidNederland (4),
Amsterdam (5),
DenHaag (6),
Rotterdam (7),
Onbekend (9))
TypeJaNee = (
Nee (0),
Ja (1),
Onbekend (9))
FIELDS
CBKSoortNr : STRING[1]
RINPersoon : STRING[9]
RINPersoonVolgnummer : STRING[2]
GBAGeboortejaar : STRING[4]
GBAGeboortemaand : STRING[2]
GBAGeboorteland : STRING[4]
GBAGeslacht : STRING[1] { * }
RINAdres : STRING[9]
GBARegiocode2014 : STRING[8]
GBAGeboortelandMoeder : STRING[4]
GBAGeboortelandVader : STRING[4]
AflHerkomstWetSAMEN : STRING[1]
AflHerkomstCBS : STRING[1]
AflGeneratie : STRING[1]
GBANationaliteit1 : STRING[4]
GBANationaliteit2 : STRING[4]
GBATypeNationaliteit : STRING[1] { ? }
GBABurgerlijkeStaat : STRING[1] { * }
GBASoortVerblijf : STRING[2] { * }
GBALandVanHerkomst : STRING[4]
GBALandVanBestemming : STRING[4]
CBKBeginGeldigheid : STRING[8]
CBKEindGeldigheid : STRING[8]
CBKMutatieCode : STRING[4]
DatumEersteVestiging : STRING[8]
DatumLaatsteVestiging : STRING[8]
InschrijfduurInDagen : INTEGER[6] { * }
AantalImmigraties : INTEGER[3] { * }
AantalEmigraties : INTEGER[3]
AantalOverigeAfvoer : INTEGER[3]
AantalAdreswijzigingen : INTEGER[3]
IngeschrevenOp20140819 : INTEGER[3]
IngeschrevenOp20141001 : INTEGER[3]
IngeschrevenOp20150331 : INTEGER[3]
IngeschrevenOp20150508 : INTEGER[3]
Leeftijd : INTEGER[3] { * }
DUMMY[1]
InWeegkader : INTEGER[1]
InSteekproefkader : INTEGER[1]
InNettoSteekproef : INTEGER[1]
IsBenaderd : STRING[1]
HeeftJuistAdres : STRING[1]
HeeftGerespondeerd : STRING[1]
DUMMY[1]
PlaatsInHuishouden : STRING[2]
{ *
* : Onbekend; (N = 380)
* 1 : Thuiswonend kind (N = 4.578.201)
* 2 : Alleenstaande (N = 2.842.715)
* 3 : Partner in niet-gehuwd paar zonder
* kinderen (N = 1.070.198)
* 4 : Partner in gehuwd paar zonder
kinderen (N = 3.290.518)
* 5 : Partner in niet-gehuwd paar met
* kinderen (N = 800.292)
* 6 : Partner in gehuwd paar met
kinderen (N = 3.257.338)
* 7 : Ouder in eenouderhuishouden; (N = 545.464)
* 8 : Referentiepersoon in overig HH; (N = 41.288)
* 9 : Overig lid van een huishouden; (N = 215.015)
* 10 : Lid van institutioneel HH. (N = 232.288)
* }
TypeHuishouden : STRING[1]
{ *
* : Onbekend; (N = 380)
* 1 : Eenpersoonshuishouden; (N = 2.842.715)
* 2 : Niet-gehuwd paar zonder kinderen; (N = 1.076.259)
* 3 : Gehuwd paar zonder kinderen; (N = 3.328.474)
* 4 : Niet-gehuwd paar met kinderen; (N = 1.486.262)
* 5 : Gehuwd paar met kinderen; (N = 6.406.246)
* 6 : Eenouderhuishouden; (N = 1.380.385)
* 7 : Overig huishouden; (N = 120.508)
* 8 : Institutioneel huishouden. (N = 232.288)
* }
SocEcoCategorie : STRING[2]
{ *
* : Onbekend (N = 476.625)
* 11 : Werknemer; (N = 6.046.104)
* 12 : DGA; (N = 191.648)
* 13 : Zelfstandige; (N = 778.251)
* 14 : Overige actief; (N = 113.348)
* 21 : Ontvanger WW-uitkering; (N = 248.790)
* 22 : Ontvanger bijstandsuitkering; (N = 356.426)
* 23 : Ontvanger uitkering sociale voorzineningen,
* overig (N = 225.826)
* 24 : Ontvanger uitkering ziekt, AU (N = 486.618)
* 25 : Ontvanger pensioensuitkering (N = 2.851.332)
* 26 : Nog niet schoolgaand, schoolgaand, student,
* met inkomen (N = 1.006.609)
* 31 : Nog niet schoolgaand, schoolgaand, student,
* zonder inkomen (N = 3.237.198)
* 32 : Zonder inkomen
* }
PersInkomenPerc : STRING[2]
HeeftPersInkomen : STRING[1]
OntvangtWWUitkering : STRING[1]
OntvangtBijstanduitkering : STRING[1]
OntvangtAOUitkering : STRING[1]
GBAGemeentecode2014 : STRING[4]
Stedelijkheid : STRING[1]
Landsdeel : STRING[2]
DUMMY[1]
{ *
* De indeling van de hulpvariabelen voor de weging in klassen.
* }
Geslachtklasse : TypeGeslachtklasse
Leeftijdklasse : TypeLeeftijdklasse
BurgerlijkeStaatklasse : TypeBurgerlijkeStaatklasse
PlaatsInHuishoudenklasse : TypePlaatsInHuishoudenklasse
TypeHuishoudenklasse : TypeTypeHuishoudenklasse
SocEcoCategorieklasse : TypeSocEcoCategorieklasse
OntvangtWWUitkeringklasse : TypeJaNee
Stedelijkheidklasse : TypeStedelijkheidklasse
Landsdeelklasse : TypeLandsdeelklasse
PersInkomensklasse : TypePersInkomensklasse
Inschrijfduurklasse : TypeInschrijfduurklasse
AantalImmigratiesklasse : TypeAantalImmigratiesklasse
TypeNationaliteitklasse : TypeTypeNationaliteitklasse
SoortVerblijfklasse : TypeSoortVerblijfklasse
G3klasse : TypeG3klasse
IngeschrevenOp20150508klasse : TypeJaNee
ENDMODEL
"
Ncols = 72
blafile = makeblafile(model)
expect_silent({bla = read_model(blafile)})
expect_true(length(model_names(bla)) == Ncols)
expect_true(length(model_types(bla)) == Ncols)
expect_true(length(model_widths(bla)) == Ncols)
expect_equivalent(model_names(bla)[69], 'TypeNationaliteitklasse')
expect_equivalent(model_widths(bla)[69], 2L)
expect_equivalent(model_labels(bla)[[69]], c("1","2","3","4","5","6","7","9","10","11","99"))
expect_equivalent(model_names(bla)[50], 'OntvangtWWUitkering')
expect_equivalent(model_widths(bla)[50], 1L)
expect_equivalent(model_names(bla)[44], 'DUMMY2')
expect_equivalent(model_widths(bla)[44], 1L)
expect_equivalent(model_names(bla)[34], 'IngeschrevenOp20150331')
expect_equivalent(model_widths(bla)[34], 3L)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.