Mercurial > code > home > repos > streamed-graph
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 |
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 }); |