Mercurial > code > home > repos > streamed-graph
view src/tabulate.test.ts @ 95:47d3b5a5bd5e
refactor
author | drewp@bigasterisk.com |
---|---|
date | Wed, 12 Jan 2022 22:15:13 -0800 |
parents | ac7ad087d474 |
children |
line wrap: on
line source
import { groupByRdfType } from "./tabulate"; import { Literal, DataFactory, Store, Prefixes, Parser, Quad, NamedNode, } from "n3"; import Immutable from "immutable"; const { namedNode } = DataFactory; describe("equality", () => { test("investigation of https://github.com/rdfjs/N3.js/issues/265", () => { const x = namedNode("x"); const x2 = namedNode("x"); // (NamedNode.prototype as any).hashCode = () => 0; // expect((x as any).hashCode()).toEqual((x2 as any).hashCode()) expect(x === x2).toBeFalsy(); expect(x == x2).toBeFalsy(); expect(x.equals(x2)).toBeTruthy(); let imap = Immutable.Map(); imap = imap.set(x, 11); imap = imap.set(x, 22); imap = imap.set(x2, 33); expect(imap.has(x)).toBeTruthy(); expect(imap.has(x2)).toBeTruthy(); expect(imap.size).toEqual(1); }); }); describe("groupByRdfType", () => { test("finds multiple graphs", () => {}); test("works", async () => { const store = new Store(); const parser = new Parser(); await new Promise((res, rej) => { parser.parse( `PREFIX : <urn:> :rs1 a :Foo; :pred1 "obj1" . :rs2 a :Foo; :pred1 "obj2" . :rs3 a :Bar . :rs4 :pred1 "obj4" . `, (error, quad: Quad, prefixes: Prefixes) => { if (quad) { store.addQuad(quad); } else { res(undefined); } } ); }); const grouped = groupByRdfType(store); expect(Array.from(grouped.byType.keys())).toHaveLength(2); expect(grouped.byType.get(namedNode("urn:Foo"))).toEqual( Immutable.Set([namedNode("urn:rs1"), namedNode("urn:rs2")]) ); expect(grouped.byType.get(namedNode("urn:Bar"))).toEqual( Immutable.Set([namedNode("urn:rs3")]) ); expect(grouped.untypedSubjs).toEqual([namedNode("urn:rs4")]); }); });