@@ -15,6 +15,54 @@ import {
1515 unescapeQuotes ,
1616} from '../src/N3DataFactory' ;
1717
18+
19+ const DEEP_TRIPLE = new Quad (
20+ new Quad (
21+ new Quad (
22+ new Quad (
23+ new BlankNode ( 'n3-000' ) ,
24+ new Variable ( 'var-b' ) ,
25+ new Literal ( '"abc"@en-us' ) ,
26+ new NamedNode ( 'http://ex.org/d' )
27+ ) ,
28+ new Variable ( 'var-b' ) ,
29+ new Quad (
30+ new BlankNode ( 'n3-000' ) ,
31+ new Variable ( 'var-b' ) ,
32+ new Literal ( '"abc"@en-us' ) ,
33+ new NamedNode ( 'http://ex.org/d' )
34+ ) ,
35+ new NamedNode ( 'http://ex.org/d' )
36+ ) ,
37+ new Variable ( 'var-b' ) ,
38+ new Quad (
39+ new BlankNode ( 'n3-000' ) ,
40+ new Variable ( 'var-b' ) ,
41+ new Literal ( '"abc"@en-us' ) ,
42+ new NamedNode ( 'http://ex.org/d' )
43+ ) ,
44+ new NamedNode ( 'http://ex.org/d' )
45+ ) ,
46+ new NamedNode ( 'http://ex.org/b' ) ,
47+ new Quad (
48+ new Quad (
49+ new BlankNode ( 'n3-000' ) ,
50+ new Variable ( 'var-b' ) ,
51+ new Literal ( '"abc"@en-us' ) ,
52+ new NamedNode ( 'http://ex.org/d' )
53+ ) ,
54+ new Variable ( 'var-b' ) ,
55+ new Quad (
56+ new BlankNode ( 'n3-000' ) ,
57+ new Variable ( 'var-b' ) ,
58+ new Literal ( '"abc"@en-us' ) ,
59+ new NamedNode ( 'http://ex.org/d' )
60+ ) ,
61+ new NamedNode ( 'http://ex.org/d' )
62+ ) ,
63+ new NamedNode ( 'http://ex.org/d' )
64+ ) ;
65+
1866describe ( 'Term' , ( ) => {
1967 describe ( 'The Term module' , ( ) => {
2068 it ( 'should be a function' , ( ) => {
@@ -161,6 +209,11 @@ describe('Term', () => {
161209 termFromId ( termToId ( q ) ) . should . deep . equal ( q ) ;
162210 } ) ;
163211
212+ it ( 'should correctly handle deeply nested quads' , ( ) => {
213+ DEEP_TRIPLE . equals ( termFromId ( termToId ( DEEP_TRIPLE ) ) ) . should . equal ( true ) ;
214+ termFromId ( termToId ( DEEP_TRIPLE ) ) . equals ( DEEP_TRIPLE ) . should . equal ( true ) ;
215+ } ) ;
216+
164217 describe ( 'with a custom factory' , ( ) => {
165218 const factory = {
166219 defaultGraph : function ( ) { return [ 'd' ] ; } ,
0 commit comments