annotate src/layout/rdf_value.test.ts @ 119:8715633f5213

fancier column sorting to bring preds from the same type together
author drewp@bigasterisk.com
date Sun, 20 Mar 2022 01:17:35 -0700
parents 5e6840229a05
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
1 import Immutable from "immutable";
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
2 import { DataFactory, NamedNode, Term } from "n3";
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
3 import { EX } from "./namespaces";
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
4 import { uniqueSortedTerms } from "./rdf_value";
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
5 const { namedNode, literal } = DataFactory;
119
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
6
108
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
7 describe("Immutable.Set", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
8 it("contains", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
9 const s = Immutable.Set([EX("e1")]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
10 expect(s.contains(EX("e1"))).toBeTruthy();
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
11 expect(s.contains(EX("e2"))).toBeFalsy();
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
12 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
13 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
14
119
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
15 describe("Immutable.Map", () => {
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
16 it("gets", () => {
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
17 let m: Immutable.Map<NamedNode, number> = Immutable.Map();
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
18 m = m.set(EX("e1"), 5);
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
19 expect(m.get(EX("e1"))).toEqual(5);
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
20 });
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
21 });
8715633f5213 fancier column sorting to bring preds from the same type together
drewp@bigasterisk.com
parents: 108
diff changeset
22
108
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
23 const uri1 = namedNode("http://example.com/1");
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
24 const uri2 = namedNode("http://example.com/2");
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
25 const lit1 = literal("lit1");
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
26 const lit2 = literal("lit2");
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
27 const lit3 = literal("lit2", namedNode("#othertype"));
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
28 const lit4 = literal("http://example.com/1"); // sic literal (that looks like a URI)
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
29
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
30 describe("uniqueSortedTerms", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
31 it("takes Term arrays", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
32 const actual = uniqueSortedTerms([lit1] as Term[]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
33 expect(actual).toEqual([lit1]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
34 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
35 it("takes NamedNode arrays", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
36 const actual = uniqueSortedTerms([uri1] as NamedNode[]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
37 expect(actual).toEqual([uri1]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
38 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
39 it("dedups URIs", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
40 expect(uniqueSortedTerms([uri1, uri1, uri2])).toEqual([uri1, uri2]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
41 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
42 it("sorts URIs", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
43 expect(uniqueSortedTerms([uri2, uri1])).toEqual([uri1, uri2]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
44 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
45 it("dedups literals", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
46 expect(uniqueSortedTerms([lit1, lit2, lit2, lit3, lit3])).toEqual([
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
47 lit1,
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
48 lit2,
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
49 lit3,
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
50 ]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
51 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
52 it("sorts literals", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
53 expect(uniqueSortedTerms([lit3, lit2, lit1])).toEqual([lit1, lit2, lit3]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
54 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
55 it("doesn't confuse literal URI strings", () => {
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
56 expect(uniqueSortedTerms([uri1, lit4])).toEqual([lit4, uri1]);
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
57 });
5e6840229a05 rewrite freeStatements rendering to put more planning in layout
drewp@bigasterisk.com
parents:
diff changeset
58 });