local M = require "zh.lint"

describe("E001", function()
   it("中文字符后存在英文标点", function()
      assert.same("E001", M.lint("你好,你好")[1].err)
   end)
end)

describe("E002", function()
   it("中英文之间没有空格", function()
      assert.same("E002", M.lint("你好world")[1].err)
      assert.same("E002", M.lint("hello世界")[1].err)
   end)
end)

describe("E003", function()
   it("中文与数字之间没有空格", function()
      assert.same("E003", M.lint("你好123")[1].err)
      assert.same("E003", M.lint("123你好")[1].err)
   end)
end)

describe("E007", function()
   it("数字使用了全角字符", function()
      assert.same("E007", M.lint("１")[1].err)
   end)
end)

describe("E008", function()
   it("汉字之间存在空格", function()
      assert.same("E008", M.lint("你好 世界")[1].err)
   end)
end)

describe("E009", function()
   it("中文标点重复", function()
      assert.same("E009", M.lint("你好，，世界")[1].err)
   end)
end)

describe("E013", function()
   it("英文和数字之间没有空格", function()
      assert.same("E013", M.lint("case143")[1].err)
   end)
end)

describe("E015", function()
   it("英文标点重复", function()
      assert.same("E015", M.lint("hello!!")[1].err)
      assert.same("E015", M.lint("??sd")[1].err)
   end)
   it("ignore markdown headers", function()
      assert.is_nil(M.lint("## nihao")[1])
   end)
end)

describe("E017", function()
   it("数字之间存在空格", function()
      assert.same("E017", M.lint("123 45")[1].err)
   end)
end)
