diff --git a/test/test.js b/test/test.js
index aefc5f4..4a6be49 100644
--- a/test/test.js
+++ b/test/test.js
@@ -6,9 +6,9 @@
     // Modify the command based on your script's location and options
     const command = 'node src/index.js -s < test/data/ndy.conllu';
     const stdout = execSync(command).toString();
-    expect(stdout).toContain('😂\t😂\tEMOIMG\tEMOIMG');
+    expect(stdout).toContain('😂\t😂\t_\tEMOIMG');
     var emoimg_count = (stdout.match(/EMOIMG/g) || []).length;
-    expect(emoimg_count).toBe(382);
+    expect(emoimg_count).toBe(191);
     var ascimg_count = (stdout.match(/EMOASC/g) || []).length;
     expect(ascimg_count).toBe(30);
     var url_count = (stdout.match(/\tURL\t/g) || []).length;
@@ -27,9 +27,9 @@
   test('Test full mode', (done) => {
     const command = 'node src/index.js < test/data/ndy.conllu';
     const stdout = execSync(command).toString();
-      expect(stdout).toContain('😂\t😂\tEMOIMG\tEMOIMG');
+      expect(stdout).toContain('😂\t😂\t_\tEMOIMG');
       var emoimg_count = (stdout.match(/EMOIMG/g) || []).length;
-      expect(emoimg_count).toBe(382);
+      expect(emoimg_count).toBe(191);
       var ascimg_count = (stdout.match(/EMOASC/g) || []).length;
       expect(ascimg_count).toBe(30);
       var url_count = (stdout.match(/\tURL\t/g) || []).length;
@@ -55,12 +55,12 @@
     const stdout = execSync('node src/index.js', { input: testInput }).toString();
     
     // Check that compound emojis are tagged as EMOIMG and lemma has base emoji
-    expect(stdout).toContain('✊🏿\t✊\tEMOIMG\tEMOIMG');
-    expect(stdout).toContain('👨‍👨‍👦\t👨\tEMOIMG\tEMOIMG');
+    expect(stdout).toContain('✊🏿\t✊\t_\tEMOIMG');
+    expect(stdout).toContain('👨‍👨‍👦\t👨\t_\tEMOIMG');
     
     // Count EMOIMG occurrences (should be 1 per emoji - only in XPOS column)
     var emoimg_count = (stdout.match(/EMOIMG/g) || []).length;
-    expect(emoimg_count).toBe(4); // 2 emojis × 2 columns = 4
+    expect(emoimg_count).toBe(2); // 2 emojis × 1 column = 2
     done();
   });
 
@@ -104,7 +104,7 @@
     expect(stdout).toContain('g=smileys_&_emotion|s=face_smiling|q=fully_qualified|v=E1.0|n=smiling_face_with_halo');
     
     // Also check for the base emoji lemma and tags
-    expect(stdout).toContain('😇\t😇\tEMOIMG\tEMOIMG');
+    expect(stdout).toContain('😇\t😇\t_\tEMOIMG');
     
     done();
   });
