# test.govlab/patterns/core/predicates/schema.predicate.test.ts

> 11 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-core-predicates-schema-predicate-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/core/predicates/schema.predicate.test.ts.txt

Listed in [test.govlab/patterns/core/predicates](https://banes-lab.com/api/source/testing/test.govlab/patterns/core/predicates.md), after [test.govlab/patterns/core/predicates/representation.predicate.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/predicates/representation.predicate.test.ts.md).

## Contained in

- [test.govlab/patterns/core/predicates](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-patterns-core-predicates.md)

## Source

```typescript
import { describe, expect, it } from "vitest";
import { detectSchema } from "@govlab/patterns/core/analyzers/schema.analyzer.ts";
import { isCoordinatePair } from "@govlab/patterns/core/predicates/schema.predicate.ts";

describe("isCoordinatePair", () => {
    it("accepts a fixed-length numeric pair and refuses a longer list", () => {
        const [pair] = detectSchema([{ point: [0, 0] }, { point: [1, 1] }]);
        const [triple] = detectSchema([{ point: [0, 0, 0] }]);
        expect(pair !== undefined && isCoordinatePair(pair)).toBe(true);
        expect(triple !== undefined && isCoordinatePair(triple)).toBe(false);
    });
});
```
