f22c5ebbfe
- PHP/MySQL Backend (XAMPP + Produktionsserver) - Front-Controller, API-Endpunkte, Session-Management - Flussmanagement-Simulation (Echtzeit, Punkt-basierter Fluss) - Stadt & Raumplanung (Prototyp, Top-Down Kachelsystem) - Klimawaechter 3D: Deiche kleiner, Baeume kippen, Budget angepasst - persistence.ts: Dualer Speicher (localStorage + Server-API) - 6 Unit-Test-Dateien fuer bestehende Simulationen Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
101 lines
3.1 KiB
TypeScript
101 lines
3.1 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
||
import {
|
||
AUSTRIA, GERMANY_BAYERN, SWITZERLAND,
|
||
getLocalName, getPrimaryStages, requiresReading,
|
||
getReadingLevel, getSubjectName
|
||
} from '../../src/core/education-levels'
|
||
|
||
describe('Education Levels — Österreich', () => {
|
||
|
||
it('AT: 1. Klasse MS = Schulstufe 5', () => {
|
||
expect(getLocalName(AUSTRIA, 5)).toBe('1. Klasse')
|
||
})
|
||
|
||
it('AT: 4. Klasse MS = Schulstufe 8', () => {
|
||
expect(getLocalName(AUSTRIA, 8)).toBe('4. Klasse')
|
||
})
|
||
|
||
it('AT: Volksschule = Schulstufe 1–4', () => {
|
||
expect(getLocalName(AUSTRIA, 1)).toBe('1. Klasse Volksschule')
|
||
expect(getLocalName(AUSTRIA, 4)).toBe('4. Klasse Volksschule')
|
||
})
|
||
|
||
it('AT: Hauptfokus = Stufe 5–8 (4 Stufen)', () => {
|
||
const primary = getPrimaryStages(AUSTRIA)
|
||
expect(primary).toHaveLength(4)
|
||
expect(primary[0].level).toBe(5)
|
||
expect(primary[3].level).toBe(8)
|
||
})
|
||
|
||
it('AT: Fach heißt "Geografie und wirtschaftliche Bildung" ab Stufe 5', () => {
|
||
expect(getSubjectName(AUSTRIA, 5)).toBe('Geografie und wirtschaftliche Bildung')
|
||
})
|
||
|
||
it('AT: Fach heißt "Sachunterricht" in der Volksschule', () => {
|
||
expect(getSubjectName(AUSTRIA, 3)).toBe('Sachunterricht')
|
||
})
|
||
|
||
it('AT: Stundentafel korrekt (2-1-2-2)', () => {
|
||
const primary = getPrimaryStages(AUSTRIA)
|
||
expect(primary.map(s => s.hoursPerWeek)).toEqual([2, 1, 2, 2])
|
||
})
|
||
})
|
||
|
||
describe('Education Levels — Deutschland Bayern', () => {
|
||
|
||
it('DE-BY: Stufe 5 = "5. Jahrgangsstufe"', () => {
|
||
expect(getLocalName(GERMANY_BAYERN, 5)).toBe('5. Jahrgangsstufe')
|
||
})
|
||
|
||
it('DE-BY: Kein Geo in Stufe 6 und 9 (0 Stunden)', () => {
|
||
const stages = getPrimaryStages(GERMANY_BAYERN)
|
||
const stage6 = stages.find(s => s.level === 6)
|
||
const stage9 = stages.find(s => s.level === 9)
|
||
expect(stage6?.hoursPerWeek).toBe(0)
|
||
expect(stage9?.hoursPerWeek).toBe(0)
|
||
})
|
||
|
||
it('DE-BY: Fach heißt "Geographie"', () => {
|
||
expect(getSubjectName(GERMANY_BAYERN, 7)).toBe('Geographie')
|
||
})
|
||
})
|
||
|
||
describe('Education Levels — Schweiz', () => {
|
||
|
||
it('CH: Stufe 7 = "1. Oberstufe"', () => {
|
||
expect(getLocalName(SWITZERLAND, 7)).toBe('1. Oberstufe')
|
||
})
|
||
|
||
it('CH: Hauptfokus = Stufe 7–9 (Zyklus 3)', () => {
|
||
const primary = getPrimaryStages(SWITZERLAND)
|
||
expect(primary).toHaveLength(3)
|
||
expect(primary[0].level).toBe(7)
|
||
})
|
||
|
||
it('CH: Fach heißt "Räume, Zeiten, Gesellschaften" in Zyklus 3', () => {
|
||
expect(getSubjectName(SWITZERLAND, 8)).toBe('Räume, Zeiten, Gesellschaften')
|
||
})
|
||
|
||
it('CH: Fach heißt "Natur, Mensch, Gesellschaft" in Zyklus 2', () => {
|
||
expect(getSubjectName(SWITZERLAND, 5)).toBe('Natur, Mensch, Gesellschaft')
|
||
})
|
||
})
|
||
|
||
describe('Education Levels — Lesekompetenz', () => {
|
||
|
||
it('Stufe 1 (6-jährige): keine Lesekompetenz', () => {
|
||
expect(getReadingLevel(1)).toBe('none')
|
||
expect(requiresReading(1)).toBe(false)
|
||
})
|
||
|
||
it('Stufe 2–3 (7-9 Jahre): basale Lesekompetenz', () => {
|
||
expect(getReadingLevel(2)).toBe('basic')
|
||
expect(getReadingLevel(3)).toBe('basic')
|
||
})
|
||
|
||
it('Stufe 4+ (ab 9 Jahre): fließende Lesekompetenz', () => {
|
||
expect(getReadingLevel(4)).toBe('fluent')
|
||
expect(getReadingLevel(7)).toBe('fluent')
|
||
})
|
||
})
|