diff --git a/test/test.js b/test/test.js
index 94391a3..31a39e2 100644
--- a/test/test.js
+++ b/test/test.js
@@ -6,41 +6,41 @@
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
 
-    // Genderstern singular noun: Bürger*in → lemma Bürger*in, NOUN NN Gender=NonBin|Number=Sing
-    expect(stdout).toContain('Bürger*in\tBürger*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    // Genderstern singular noun: Bürger*in → lemma Bürger*in, NOUN NN Gender=Fem,Masc,NonBin|Number=Sing
+    expect(stdout).toContain('Bürger*in\tBürger*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // Long compound: Jugendpsychiater*in
-    expect(stdout).toContain('Jugendpsychiater*in\tJugendpsychiater*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Jugendpsychiater*in\tJugendpsychiater*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // Compound with umlaut base: Generalstaatsanwält*in
-    expect(stdout).toContain('Generalstaatsanwält*in\tGeneralstaatsanwält*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Generalstaatsanwält*in\tGeneralstaatsanwält*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // Nachfolger*in
-    expect(stdout).toContain('Nachfolger*in\tNachfolger*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Nachfolger*in\tNachfolger*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // With umlaut base: Antragssteller*in (no umlaut but long compound)
-    expect(stdout).toContain('Antragssteller*in\tAntragssteller*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Antragssteller*in\tAntragssteller*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
   });
 
   test('Full mode: Genderstern plural nouns → lemma uses singular, Number=Plur', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
     // Fachärzt*innen → lemma Fachärzt*in
-    expect(stdout).toContain('Fachärzt*innen\tFachärzt*in\tNOUN\tNN\tGender=NonBin|Number=Plur');
+    expect(stdout).toContain('Fachärzt*innen\tFachärzt*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Plur');
   });
 
   test('Full mode: Doppelpunkt nouns', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
     // Doppelpunkt singular
-    expect(stdout).toContain('Anhänger:in\tAnhänger:in\tNOUN\tNN\tGender=NonBin|Number=Sing');
-    expect(stdout).toContain('Wirt:in\tWirt:in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Anhänger:in\tAnhänger:in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
+    expect(stdout).toContain('Wirt:in\tWirt:in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // Doppelpunkt plural  
-    expect(stdout).toContain('Lehrer:innen\tLehrer:in\tNOUN\tNN\tGender=NonBin|Number=Plur');
+    expect(stdout).toContain('Lehrer:innen\tLehrer:in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Plur');
     // Long compound with umlaut base
-    expect(stdout).toContain('Menschenrechtsanwält:innen\tMenschenrechtsanwält:in\tNOUN\tNN\tGender=NonBin|Number=Plur');
+    expect(stdout).toContain('Menschenrechtsanwält:innen\tMenschenrechtsanwält:in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Plur');
   });
 
   test('Full mode: Unterstrich plural nouns', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
-    expect(stdout).toContain('Autor_innen\tAutor_in\tNOUN\tNN\tGender=NonBin|Number=Plur');
+    expect(stdout).toContain('Autor_innen\tAutor_in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Plur');
   });
 
   test('Full mode: Binnen-I nouns (binary intended → Gender=Masc,Fem)', () => {
@@ -73,37 +73,37 @@
   test('Full mode: gendered determiners/pronouns (non-binary intended)', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
-    // jede*r → DET PIAT Gender=NonBin, lemma jede*r
-    expect(stdout).toContain('jede*r\tjede*r\tDET\tPIAT\tGender=NonBin');
+    // jede*r → DET PIAT Gender=Fem,Masc,NonBin, lemma jede*r
+    expect(stdout).toContain('jede*r\tjede*r\tDET\tPIAT\tGender=Fem,Masc,NonBin');
     const jeder_count = (stdout.match(/jede\*r\tjede\*r/g) || []).length;
     expect(jeder_count).toBe(2);  // appears in two sentences
-    // eine*n → DET ART Gender=NonBin  (non-binary via *)
-    expect(stdout).toContain('eine*n\teine*n\tDET\tART\tGender=NonBin');
-    // jede:r → DET PIAT Gender=NonBin
-    expect(stdout).toContain('jede:r\tjede:r\tDET\tPIAT\tGender=NonBin');
-    // die*der → DET ART Gender=NonBin  (* marker → NonBin even for merged forms)
-    expect(stdout).toContain('die*der\tdie*der\tDET\tART\tGender=NonBin');
+    // eine*n → DET ART Gender=Fem,Masc,NonBin  (non-binary via *)
+    expect(stdout).toContain('eine*n\teine*n\tDET\tART\tGender=Fem,Masc,NonBin');
+    // jede:r → DET PIAT Gender=Fem,Masc,NonBin
+    expect(stdout).toContain('jede:r\tjede:r\tDET\tPIAT\tGender=Fem,Masc,NonBin');
+    // die*der → DET ART Gender=Fem,Masc,NonBin  (* marker → inclusive even for merged forms)
+    expect(stdout).toContain('die*der\tdie*der\tDET\tART\tGender=Fem,Masc,NonBin');
   });
 
-  test('Full mode: neo-pronoun (sie*er → PRON PPER Gender=NonBin)', () => {
+  test('Full mode: neo-pronoun (sie*er → PRON PPER Gender=Fem,Masc,NonBin)', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
-    expect(stdout).toContain('sie*er\tsie*er\tPRON\tPPER\tGender=NonBin');
+    expect(stdout).toContain('sie*er\tsie*er\tPRON\tPPER\tGender=Fem,Masc,NonBin');
   });
 
-  test('Full mode: neo-pronoun lexicon forms (PRON PPER Gender=NonBin|PronType=Prs)', () => {
+  test('Full mode: neo-pronoun lexicon forms (PRON PPER Gender=Fem,Masc,NonBin|PronType=Prs)', () => {
     const command = 'node src/index.js < test/data/gender.conllu';
     const stdout = execSync(command).toString();
     // sier: NOM of sier-paradigm
-    expect(stdout).toContain('sier\tsier\tPRON\tPPER\tGender=NonBin|PronType=Prs');
+    expect(stdout).toContain('sier\tsier\tPRON\tPPER\tGender=Fem,Masc,NonBin|PronType=Prs');
     // xier: NOM of xier-paradigm
-    expect(stdout).toContain('xier\txier\tPRON\tPPER\tGender=NonBin|PronType=Prs');
+    expect(stdout).toContain('xier\txier\tPRON\tPPER\tGender=Fem,Masc,NonBin|PronType=Prs');
     // oj: NOM of oj-paradigm
-    expect(stdout).toContain('oj\toj\tPRON\tPPER\tGender=NonBin|PronType=Prs');
+    expect(stdout).toContain('oj\toj\tPRON\tPPER\tGender=Fem,Masc,NonBin|PronType=Prs');
     // el: NOM of el-paradigm
-    expect(stdout).toContain('el\tel\tPRON\tPPER\tGender=NonBin|PronType=Prs');
+    expect(stdout).toContain('el\tel\tPRON\tPPER\tGender=Fem,Masc,NonBin|PronType=Prs');
     // hen: NOM of hen-paradigm
-    expect(stdout).toContain('hen\then\tPRON\tPPER\tGender=NonBin|PronType=Prs');
+    expect(stdout).toContain('hen\then\tPRON\tPPER\tGender=Fem,Masc,NonBin|PronType=Prs');
   });
 
   test('Full mode: foundry comment changed to gender', () => {
@@ -159,7 +159,7 @@
 
 `;
     const stdout = execSync('node src/index.js', { input: testInput }).toString();
-    expect(stdout).toContain('Lehrer*innen\tLehrer*in\tNOUN\tNN\tGender=NonBin|Number=Plur');
+    expect(stdout).toContain('Lehrer*innen\tLehrer*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Plur');
     // Regular noun 'Lehrerin' must not be incorrectly tagged
     expect(stdout).toContain('Lehrerin\t_\tNOUN\tNN\t_');
   });
@@ -177,9 +177,9 @@
 `;
     const stdout = execSync('node src/index.js', { input: testInput }).toString();
     // jede*r: missing feats should be filled in
-    expect(stdout).toContain('jede*r\tjede*r\tDET\tPIAT\tGender=NonBin');
+    expect(stdout).toContain('jede*r\tjede*r\tDET\tPIAT\tGender=Fem,Masc,NonBin');
     // Arzt*in: umlaut base, missing everything
-    expect(stdout).toContain('Arzt*in\tArzt*in\tNOUN\tNN\tGender=NonBin|Number=Sing');
+    expect(stdout).toContain('Arzt*in\tArzt*in\tNOUN\tNN\tGender=Fem,Masc,NonBin|Number=Sing');
     // Ärztin (regular moviertes Femininum, no gender marker): unchanged
     expect(stdout).toContain('Ärztin\tÄrztin\tNOUN\tNN\tGender=Fem|Number=Sing');
     // jede (without gender marker): unchanged
