# test.govlab/patterns/core/converters/finding.graph.converter.test.ts

> 23 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-core-converters-finding-graph-converter-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.graph.converter.test.ts.txt

Listed in [test.govlab/patterns/core/converters](https://banes-lab.com/api/source/testing/test.govlab/patterns/core/converters.md), after [test.govlab/patterns/core/converters/finding.distribution.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.distribution.converter.test.ts.md) and before [test.govlab/patterns/core/converters/finding.grid.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.grid.converter.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { GraphAccumulator } from "@govlab/patterns/core/aggregators/representation.graph.aggregator.ts";
import { graphFindings } from "@govlab/patterns/core/converters/finding.graph.converter.ts";

const summaryOf = function summaryOf(records: readonly unknown[]): ReturnType<GraphAccumulator["result"]> {
    const accumulator = new GraphAccumulator("tags");
    accumulator.update(records);
    return accumulator.result();
};

describe("graphFindings", () => {
    it("reports co-occurrence, lift and member uniformity over string lists", () => {
        const findings = graphFindings("tags", summaryOf([{ tags: ["a", "b"] }, { tags: ["a", "c"] }]));
        const names = findings.map((finding) => finding.name);
        expect(names).toStrictEqual(["member-uniformity", "cooccurrence", "lift", "positional", "combinatorics"]);
        expect(findings[0]?.significance?.nullModel).toBe("member-uniformity");
    });

    it("adds composition and ordered-domain findings over numeric lists", () => {
        const names = graphFindings("tags", summaryOf([{ tags: [1, 2] }, { tags: [2, 3] }])).map(
            (finding) => finding.name,
        );
        expect(names).toContain("composition");
        expect(names).toContain("ordered-domain");
    });
});
```
