# test.coordination/core/validators/literal.validator.test.ts

> 19 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-coordination-core-validators-literal-validator-test-ts
Source text: https://banes-lab.com/source/testing/test.coordination/core/validators/literal.validator.test.ts.txt

Listed in [test.coordination/core/validators](https://banes-lab.com/api/source/testing/test.coordination/core/validators.md), after [test.coordination/core/validators/governance.validator.test.ts](https://banes-lab.com/source/testing/test.coordination/core/validators/governance.validator.test.ts.md) and before [test.coordination/core/validators/marker.validator.test.ts](https://banes-lab.com/source/testing/test.coordination/core/validators/marker.validator.test.ts.md).

## Contained in

- [test.coordination/core/validators](https://banes-lab.com/anatomy/testing/folder-testing-test-coordination-core-validators.md)

## Source

````typescript
import { describe, it } from "vitest";
import assert from "node:assert/strict";
import { countLiterals } from "coordination-surface/tools/core/validators/literal.validator.ts";

describe("countLiterals", () => {
    it("reports a numeral followed by a derived noun, outside code spans and fences", () => {
        const lines = [
            "This checklist holds 12 tasks across 3 phases.",
            "Version 1.2 rules nothing, and `4 rules` is quoted.",
            "```",
            "5 files",
            "```",
            "Seven rules is spelled out.",
        ];
        assert.deepEqual(countLiterals(lines), [
            { line: 1, noun: "tasks", numeral: "12" },
            { line: 1, noun: "phases", numeral: "3" },
        ]);
    });
});
````
