use crate::{Category, Difficulty, Question};
pub fn questions() -> Vec<Question> {
vec![
Question {
id: 1001,
category: Category::EulumdatFormat,
difficulty: Difficulty::Beginner,
text: "What file extension does the EULUMDAT format use?".into(),
options: vec![".ies".into(), ".ldt".into(), ".pho".into(), ".lum".into()],
correct_index: 1,
explanation: "EULUMDAT files use the .ldt extension (Leuchten-Daten-Transfer = Luminaire Data Transfer).".into(),
reference: Some("EULUMDAT specification".into()),
},
Question {
id: 1002,
category: Category::EulumdatFormat,
difficulty: Difficulty::Beginner,
text: "What unit are intensity values stored in within an EULUMDAT file?".into(),
options: vec!["Candelas (cd)".into(), "Lumens (lm)".into(), "cd/klm (candelas per kilolumen)".into(), "Lux (lx)".into()],
correct_index: 2,
explanation: "EULUMDAT stores intensities in cd/klm (candelas per kilolumen), which normalizes values to a 1000 lumen lamp.".into(),
reference: Some("EULUMDAT specification".into()),
},
Question {
id: 1003,
category: Category::EulumdatFormat,
difficulty: Difficulty::Beginner,
text: "What unit are luminaire dimensions stored in within an EULUMDAT file?".into(),
options: vec!["Centimeters (cm)".into(), "Millimeters (mm)".into(), "Meters (m)".into(), "Inches (in)".into()],
correct_index: 1,
explanation: "EULUMDAT stores luminaire dimensions (length, width, height) in millimeters.".into(),
reference: Some("EULUMDAT specification, Lines 8-10".into()),
},
Question {
id: 1004,
category: Category::EulumdatFormat,
difficulty: Difficulty::Beginner,
text: "Who proposed the EULUMDAT format?".into(),
options: vec!["CIE Technical Committee".into(), "Axel Stockmar".into(), "IESNA Standards Committee".into(), "Philips Lighting".into()],
correct_index: 1,
explanation: "The EULUMDAT format was proposed by Axel Stockmar in 1990.".into(),
reference: Some("EULUMDAT specification history".into()),
},
Question {
id: 1005,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "What does Line 3 of an EULUMDAT file specify?".into(),
options: vec!["Luminaire name".into(), "Number of C-planes".into(), "Symmetry indicator (Isym, 0-4)".into(), "Light output ratio".into()],
correct_index: 2,
explanation: "Line 3 contains the symmetry indicator Isym (0=none, 1=vertical axis, 2=C0-C180, 3=C90-C270, 4=both planes).".into(),
reference: Some("EULUMDAT specification, Line 3".into()),
},
Question {
id: 1006,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "What is the maximum number of lamp sets allowed in an EULUMDAT file?".into(),
options: vec!["5".into(), "10".into(), "20".into(), "Unlimited".into()],
correct_index: 2,
explanation: "An EULUMDAT file can contain up to 20 lamp sets, though most files use only 1.".into(),
reference: Some("EULUMDAT specification, Line 24".into()),
},
Question {
id: 1007,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "What does the type indicator on Line 2 represent?".into(),
options: vec!["File version number".into(), "Luminaire type (point source, linear, area)".into(), "Manufacturer code".into(), "Measurement lab ID".into()],
correct_index: 1,
explanation: "Line 2 contains Itype: 1=point source with C0-C180 symmetry, 2=linear source, 3=point source with any symmetry.".into(),
reference: Some("EULUMDAT specification, Line 2".into()),
},
Question {
id: 1008,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "What is the maximum number of C-planes (Mc) in an EULUMDAT file?".into(),
options: vec!["36".into(), "360".into(), "721".into(), "1000".into()],
correct_index: 2,
explanation: "Mc can be up to 721, corresponding to 0.5° increments across 360° (721 values from 0 to 360).".into(),
reference: Some("EULUMDAT specification".into()),
},
Question {
id: 1009,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "What is the light output ratio (LOR) value range in an EULUMDAT file?".into(),
options: vec!["0 to 1".into(), "0 to 100".into(), "0 to 255".into(), "0 to 1000".into()],
correct_index: 1,
explanation: "The LOR in EULUMDAT is stored as a percentage from 0 to 100.".into(),
reference: Some("EULUMDAT specification, Line 23".into()),
},
Question {
id: 1010,
category: Category::EulumdatFormat,
difficulty: Difficulty::Expert,
text: "How are European decimal commas handled during EULUMDAT parsing?".into(),
options: vec!["They are ignored".into(), "They cause a parse error".into(), "Commas are converted to dots before parsing".into(), "Both comma and dot are valid decimal separators natively".into()],
correct_index: 2,
explanation: "Since EULUMDAT originated in Europe, many files use commas as decimal separators. Parsers convert commas to dots for numeric parsing.".into(),
reference: Some("EULUMDAT parsing convention".into()),
},
Question {
id: 1011,
category: Category::EulumdatFormat,
difficulty: Difficulty::Expert,
text: "What encoding fallback is used for legacy EULUMDAT files?".into(),
options: vec!["ASCII".into(), "UTF-16".into(), "ISO-8859-1 (Latin-1)".into(), "Windows-1250".into()],
correct_index: 2,
explanation: "Legacy EULUMDAT files often use ISO-8859-1 (Latin-1) encoding for European characters. Modern parsers try UTF-8 first, then fall back to Latin-1.".into(),
reference: Some("EULUMDAT encoding convention".into()),
},
Question {
id: 1012,
category: Category::EulumdatFormat,
difficulty: Difficulty::Expert,
text: "What does a negative lamp count indicate in an EULUMDAT file?".into(),
options: vec!["File is corrupted".into(), "Absolute photometry mode".into(), "Lamp count is unknown".into(), "Multiple lamp configurations".into()],
correct_index: 1,
explanation: "A negative value for the number of lamps indicates absolute photometry mode, where intensity values are in actual cd rather than cd/klm.".into(),
reference: Some("EULUMDAT specification".into()),
},
Question {
id: 1013,
category: Category::EulumdatFormat,
difficulty: Difficulty::Beginner,
text: "In what year was the EULUMDAT format first proposed?".into(),
options: vec!["1985".into(), "1990".into(), "1995".into(), "2000".into()],
correct_index: 1,
explanation: "The EULUMDAT format was first proposed by Axel Stockmar in 1990 as a standard for exchanging luminaire photometric data in Europe.".into(),
reference: Some("EULUMDAT specification history".into()),
},
Question {
id: 1014,
category: Category::EulumdatFormat,
difficulty: Difficulty::Intermediate,
text: "Which line in an EULUMDAT file contains the luminaire name?".into(),
options: vec!["Line 1".into(), "Line 4".into(), "Line 5".into(), "Line 6".into()],
correct_index: 0,
explanation: "Line 1 of an EULUMDAT file contains the luminaire manufacturer/company identification, and Line 4 contains the luminaire name.".into(),
reference: Some("EULUMDAT specification, Line 1/4".into()),
},
Question {
id: 1015,
category: Category::EulumdatFormat,
difficulty: Difficulty::Expert,
text: "What is the relationship between Mc (number of C-planes stored) and Isym (symmetry)?".into(),
options: vec![
"Mc is always the full number of planes regardless of symmetry".into(),
"For Isym=1, Mc=1; for Isym=4, Mc=Nc/4+1".into(),
"Symmetry has no effect on Mc".into(),
"Mc is doubled for each symmetry level".into(),
],
correct_index: 1,
explanation: "Symmetry determines how many C-planes are stored: Isym=0 stores all, Isym=1 stores just 1, Isym=2 stores half+1, Isym=4 stores quarter+1.".into(),
reference: Some("EULUMDAT specification".into()),
},
]
}