Initial import
diff --git a/test/test.js b/test/test.js
new file mode 100644
index 0000000..f19e0bb
--- /dev/null
+++ b/test/test.js
@@ -0,0 +1,39 @@
+const { execSync } = require('child_process');
+const exp = require('constants');
+
+describe('conllu2cmc', () => {
+  test('Test sparse mode', (done) => {
+    // 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');
+    var emoimg_count = (stdout.match(/EMOIMG/g) || []).length;
+    expect(emoimg_count).toBe(382);
+    var ascimg_count = (stdout.match(/EMOASC/g) || []).length;
+    expect(ascimg_count).toBe(60);
+    var ascimg_count = (stdout.match(/URL/g) || []).length;
+    expect(ascimg_count).toBe(8);
+    var adr_count = (stdout.match(/ADR/g) || []).length;
+    expect(adr_count).toBe(2);
+    var lines_count = (stdout.split("\n")).length;
+    expect(lines_count).toBe(744);
+    done();
+  });
+
+  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');
+      var emoimg_count = (stdout.match(/EMOIMG/g) || []).length;
+      expect(emoimg_count).toBe(382);
+      var ascimg_count = (stdout.match(/EMOASC/g) || []).length;
+      expect(ascimg_count).toBe(60);
+      var ascimg_count = (stdout.match(/URL/g) || []).length;
+      expect(ascimg_count).toBe(8);
+      var adr_count = (stdout.match(/ADR/g) || []).length;
+      expect(adr_count).toBe(2);
+      var lines_count = (stdout.split("\n")).length;
+      expect(lines_count).toBe(6200);
+      done();
+  });
+});