Add complex property generator expansion test
authorMarkus Lanthaler <mark_lanthaler@gmx.net>
Fri, 07 Dec 2012 02:09:45 +0100
changeset 998 80f8941d998a
parent 997 861cf9127026
child 999 1371f1e9446c
Add complex property generator expansion test

This addresses #142, #160.
test-suite/tests/expand-0039-in.jsonld
test-suite/tests/expand-0039-out.jsonld
test-suite/tests/expand-manifest.jsonld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0039-in.jsonld	Fri Dec 07 02:09:45 2012 +0100
@@ -0,0 +1,161 @@
+{
+  "@context": {
+    "vocab": "http://example.com/vocab/",
+    "sharedTerm": "http://www.example.org/shared/term",
+    "@language": "de",
+    "propGenA": {
+      "@id": [ "vocab:propGenA", "sharedTerm" ]
+    },
+    "propGenB": {
+      "@id": [ "sharedTerm", "vocab:propGenB", "http://example.com/somethingElse" ],
+      "@type": "http://datatype.example.org/type",
+      "@container": "@list"
+    },
+    "propGenC": {
+      "@id": [ "sharedTerm", "vocab:propGenB", "http://example.com/somethingElse" ],
+      "@language": "en"
+    }
+  },
+  "@id": "http://ex.com/root",
+  "propGenA": [
+    {
+      "@id": "http://ex.com/propA.1"
+    },
+    {
+      "vocab:term": "http://ex.com/propA.2"
+    },
+    "propA.3",
+    {
+      "@id": "http://ex.com/propA.4"
+    },
+    {
+      "vocab:term": "http://ex.com/propA.5",
+      "vocab:nested": [
+        {
+          "vocab:term": "http://ex.com/propA.5.1",
+          "vocab:nested": [
+            10510,
+            "propA.5.1.1",
+            {
+              "@id": "http://ex.com/propA.5.1.2"
+            },
+            {
+              "vocab:term": "http://ex.com/propA.5.1.3"
+            }
+          ]
+        },
+        {
+          "@id": "http://ex.com/propA.5.2",
+          "vocab:nested": [
+            "propA.5.2.1",
+            {
+              "vocab:term": "http://ex.com/propA.5.2.2"
+            },
+            {
+              "@id": "http://ex.com/propA.5.2.3"
+            },
+            10524
+          ]
+        }
+      ]
+    },
+    10600,
+    {
+      "vocab:term": "collission"
+    }
+  ],
+  "propGenB": [
+    20000,
+    "propB.1",
+    {
+      "vocab:term": "collission"
+    },
+    {
+      "@id": "http://ex.com/propB.2",
+      "vocab:nested": [
+        {
+          "vocab:term": "http://ex.com/propB.2.1",
+          "vocab:nested": [
+            20110,
+            "propB.2.1.1",
+            {
+              "@id": "http://ex.com/propB.2.1.2"
+            },
+            {
+              "vocab:term": "http://ex.com/propB.2.1.3"
+            }
+          ]
+        },
+        {
+          "@id": "http://ex.com/propB.2.2",
+          "vocab:nested": [
+            "propB.2.2.1",
+            {
+              "vocab:term": "http://ex.com/propB.2.2.2"
+            },
+            {
+              "@id": "http://ex.com/propB.2.2.3"
+            },
+            20224
+          ]
+        }
+      ]
+    },
+    {
+      "vocab:term": "http://ex.com/propB.3"
+    }
+  ],
+  "propGenC": [
+    {
+      "vocab:term": "collission"
+    },
+    "propC.2",
+    30300,
+    {
+      "@id": "http://ex.com/propC.4"
+    },
+    {
+      "vocab:term": "http://ex.com/propC.5",
+      "vocab:nested": [
+        {
+          "vocab:term": "http://ex.com/propC.5.1",
+          "vocab:nested": [
+            10510,
+            "propC.5.1.1",
+            {
+              "@id": "http://ex.com/propC.5.1.2"
+            },
+            {
+              "vocab:term": "http://ex.com/propC.5.1.3"
+            }
+          ]
+        },
+        {
+          "@id": "http://ex.com/propC.5.2",
+          "vocab:nested": [
+            "propC.5.2.1",
+            {
+              "vocab:term": "http://ex.com/propC.5.2.2"
+            },
+            {
+              "@id": "http://ex.com/propC.5.2.3"
+            },
+            10524
+          ]
+        }
+      ]
+    }
+  ],
+  "http://example.com/vocab/propGenA": [
+    "propGenA.coll.1",
+    {
+      "vocab:term": "collission"
+    }
+  ],
+  "http://example.com/vocab/propGenB": [
+    "propGenB.coll.1",
+    {
+      "vocab:term": "collission"
+    }
+  ]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-suite/tests/expand-0039-out.jsonld	Fri Dec 07 02:09:45 2012 +0100
@@ -0,0 +1,496 @@
+[{
+   "@id": "http://ex.com/root",
+   "http://example.com/vocab/propGenA": [{
+      "@value": "propGenA.coll.1",
+      "@language": "de"
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }]
+   }, {
+      "@id": "http://ex.com/propA.1"
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propA.2",
+         "@language": "de"
+      }],
+      "@id": "_:t0"
+   }, {
+      "@value": "propA.3",
+      "@language": "de"
+   }, {
+      "@id": "http://ex.com/propA.4"
+   }, {
+      "http://example.com/vocab/nested": [{
+         "http://example.com/vocab/nested": [{
+            "@value": 10510
+         }, {
+            "@value": "propA.5.1.1",
+            "@language": "de"
+         }, {
+            "@id": "http://ex.com/propA.5.1.2"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propA.5.1.3",
+               "@language": "de"
+            }],
+            "@id": "_:t3"
+         }],
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propA.5.1",
+            "@language": "de"
+         }],
+         "@id": "_:t2"
+      }, {
+         "@id": "http://ex.com/propA.5.2",
+         "http://example.com/vocab/nested": [{
+            "@value": "propA.5.2.1",
+            "@language": "de"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propA.5.2.2",
+               "@language": "de"
+            }],
+            "@id": "_:t4"
+         }, {
+            "@id": "http://ex.com/propA.5.2.3"
+         }, {
+            "@value": 10524
+         }]
+      }],
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propA.5",
+         "@language": "de"
+      }],
+      "@id": "_:t1"
+   }, {
+      "@value": 10600
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }],
+      "@id": "_:t5"
+   }],
+   "http://example.com/vocab/propGenB": [{
+      "@value": "propGenB.coll.1",
+      "@language": "de"
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }]
+   }, {
+      "@list": [{
+         "@value": 20000,
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "@value": "propB.1",
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "collission",
+            "@language": "de"
+         }],
+         "@id": "_:t6"
+      }, {
+         "@id": "http://ex.com/propB.2",
+         "http://example.com/vocab/nested": [{
+            "http://example.com/vocab/nested": [{
+               "@value": 20110
+            }, {
+               "@value": "propB.2.1.1",
+               "@language": "de"
+            }, {
+               "@id": "http://ex.com/propB.2.1.2"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.1.3",
+                  "@language": "de"
+               }],
+               "@id": "_:t8"
+            }],
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propB.2.1",
+               "@language": "de"
+            }],
+            "@id": "_:t7"
+         }, {
+            "@id": "http://ex.com/propB.2.2",
+            "http://example.com/vocab/nested": [{
+               "@value": "propB.2.2.1",
+               "@language": "de"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.2.2",
+                  "@language": "de"
+               }],
+               "@id": "_:t9"
+            }, {
+               "@id": "http://ex.com/propB.2.2.3"
+            }, {
+               "@value": 20224
+            }]
+         }]
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propB.3",
+            "@language": "de"
+         }],
+         "@id": "_:t10"
+      }]
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }],
+      "@id": "_:t11"
+   }, {
+      "@value": "propC.2",
+      "@language": "en"
+   }, {
+      "@value": 30300
+   }, {
+      "@id": "http://ex.com/propC.4"
+   }, {
+      "http://example.com/vocab/nested": [{
+         "http://example.com/vocab/nested": [{
+            "@value": 10510
+         }, {
+            "@value": "propC.5.1.1",
+            "@language": "de"
+         }, {
+            "@id": "http://ex.com/propC.5.1.2"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.1.3",
+               "@language": "de"
+            }],
+            "@id": "_:t14"
+         }],
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propC.5.1",
+            "@language": "de"
+         }],
+         "@id": "_:t13"
+      }, {
+         "@id": "http://ex.com/propC.5.2",
+         "http://example.com/vocab/nested": [{
+            "@value": "propC.5.2.1",
+            "@language": "de"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.2.2",
+               "@language": "de"
+            }],
+            "@id": "_:t15"
+         }, {
+            "@id": "http://ex.com/propC.5.2.3"
+         }, {
+            "@value": 10524
+         }]
+      }],
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propC.5",
+         "@language": "de"
+      }],
+      "@id": "_:t12"
+   }],
+   "http://www.example.org/shared/term": [{
+      "@id": "http://ex.com/propA.1"
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propA.2",
+         "@language": "de"
+      }],
+      "@id": "_:t0"
+   }, {
+      "@value": "propA.3",
+      "@language": "de"
+   }, {
+      "@id": "http://ex.com/propA.4"
+   }, {
+      "http://example.com/vocab/nested": [{
+         "http://example.com/vocab/nested": [{
+            "@value": 10510
+         }, {
+            "@value": "propA.5.1.1",
+            "@language": "de"
+         }, {
+            "@id": "http://ex.com/propA.5.1.2"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propA.5.1.3",
+               "@language": "de"
+            }],
+            "@id": "_:t3"
+         }],
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propA.5.1",
+            "@language": "de"
+         }],
+         "@id": "_:t2"
+      }, {
+         "@id": "http://ex.com/propA.5.2",
+         "http://example.com/vocab/nested": [{
+            "@value": "propA.5.2.1",
+            "@language": "de"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propA.5.2.2",
+               "@language": "de"
+            }],
+            "@id": "_:t4"
+         }, {
+            "@id": "http://ex.com/propA.5.2.3"
+         }, {
+            "@value": 10524
+         }]
+      }],
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propA.5",
+         "@language": "de"
+      }],
+      "@id": "_:t1"
+   }, {
+      "@value": 10600
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }],
+      "@id": "_:t5"
+   }, {
+      "@list": [{
+         "@value": 20000,
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "@value": "propB.1",
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "collission",
+            "@language": "de"
+         }],
+         "@id": "_:t6"
+      }, {
+         "@id": "http://ex.com/propB.2",
+         "http://example.com/vocab/nested": [{
+            "http://example.com/vocab/nested": [{
+               "@value": 20110
+            }, {
+               "@value": "propB.2.1.1",
+               "@language": "de"
+            }, {
+               "@id": "http://ex.com/propB.2.1.2"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.1.3",
+                  "@language": "de"
+               }],
+               "@id": "_:t8"
+            }],
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propB.2.1",
+               "@language": "de"
+            }],
+            "@id": "_:t7"
+         }, {
+            "@id": "http://ex.com/propB.2.2",
+            "http://example.com/vocab/nested": [{
+               "@value": "propB.2.2.1",
+               "@language": "de"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.2.2",
+                  "@language": "de"
+               }],
+               "@id": "_:t9"
+            }, {
+               "@id": "http://ex.com/propB.2.2.3"
+            }, {
+               "@value": 20224
+            }]
+         }]
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propB.3",
+            "@language": "de"
+         }],
+         "@id": "_:t10"
+      }]
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }],
+      "@id": "_:t11"
+   }, {
+      "@value": "propC.2",
+      "@language": "en"
+   }, {
+      "@value": 30300
+   }, {
+      "@id": "http://ex.com/propC.4"
+   }, {
+      "http://example.com/vocab/nested": [{
+         "http://example.com/vocab/nested": [{
+            "@value": 10510
+         }, {
+            "@value": "propC.5.1.1",
+            "@language": "de"
+         }, {
+            "@id": "http://ex.com/propC.5.1.2"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.1.3",
+               "@language": "de"
+            }],
+            "@id": "_:t14"
+         }],
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propC.5.1",
+            "@language": "de"
+         }],
+         "@id": "_:t13"
+      }, {
+         "@id": "http://ex.com/propC.5.2",
+         "http://example.com/vocab/nested": [{
+            "@value": "propC.5.2.1",
+            "@language": "de"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.2.2",
+               "@language": "de"
+            }],
+            "@id": "_:t15"
+         }, {
+            "@id": "http://ex.com/propC.5.2.3"
+         }, {
+            "@value": 10524
+         }]
+      }],
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propC.5",
+         "@language": "de"
+      }],
+      "@id": "_:t12"
+   }],
+   "http://example.com/somethingElse": [{
+      "@list": [{
+         "@value": 20000,
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "@value": "propB.1",
+         "@type": "http://datatype.example.org/type"
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "collission",
+            "@language": "de"
+         }],
+         "@id": "_:t6"
+      }, {
+         "@id": "http://ex.com/propB.2",
+         "http://example.com/vocab/nested": [{
+            "http://example.com/vocab/nested": [{
+               "@value": 20110
+            }, {
+               "@value": "propB.2.1.1",
+               "@language": "de"
+            }, {
+               "@id": "http://ex.com/propB.2.1.2"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.1.3",
+                  "@language": "de"
+               }],
+               "@id": "_:t8"
+            }],
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propB.2.1",
+               "@language": "de"
+            }],
+            "@id": "_:t7"
+         }, {
+            "@id": "http://ex.com/propB.2.2",
+            "http://example.com/vocab/nested": [{
+               "@value": "propB.2.2.1",
+               "@language": "de"
+            }, {
+               "http://example.com/vocab/term": [{
+                  "@value": "http://ex.com/propB.2.2.2",
+                  "@language": "de"
+               }],
+               "@id": "_:t9"
+            }, {
+               "@id": "http://ex.com/propB.2.2.3"
+            }, {
+               "@value": 20224
+            }]
+         }]
+      }, {
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propB.3",
+            "@language": "de"
+         }],
+         "@id": "_:t10"
+      }]
+   }, {
+      "http://example.com/vocab/term": [{
+         "@value": "collission",
+         "@language": "de"
+      }],
+      "@id": "_:t11"
+   }, {
+      "@value": "propC.2",
+      "@language": "en"
+   }, {
+      "@value": 30300
+   }, {
+      "@id": "http://ex.com/propC.4"
+   }, {
+      "http://example.com/vocab/nested": [{
+         "http://example.com/vocab/nested": [{
+            "@value": 10510
+         }, {
+            "@value": "propC.5.1.1",
+            "@language": "de"
+         }, {
+            "@id": "http://ex.com/propC.5.1.2"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.1.3",
+               "@language": "de"
+            }],
+            "@id": "_:t14"
+         }],
+         "http://example.com/vocab/term": [{
+            "@value": "http://ex.com/propC.5.1",
+            "@language": "de"
+         }],
+         "@id": "_:t13"
+      }, {
+         "@id": "http://ex.com/propC.5.2",
+         "http://example.com/vocab/nested": [{
+            "@value": "propC.5.2.1",
+            "@language": "de"
+         }, {
+            "http://example.com/vocab/term": [{
+               "@value": "http://ex.com/propC.5.2.2",
+               "@language": "de"
+            }],
+            "@id": "_:t15"
+         }, {
+            "@id": "http://ex.com/propC.5.2.3"
+         }, {
+            "@value": 10524
+         }]
+      }],
+      "http://example.com/vocab/term": [{
+         "@value": "http://ex.com/propC.5",
+         "@language": "de"
+      }],
+      "@id": "_:t12"
+   }]
+}]
--- a/test-suite/tests/expand-manifest.jsonld	Fri Dec 07 01:30:22 2012 +0100
+++ b/test-suite/tests/expand-manifest.jsonld	Fri Dec 07 02:09:45 2012 +0100
@@ -196,6 +196,11 @@
       "name": "Ensure all blank nodes are relabeled during expansion.",
       "input": "expand-0038-in.jsonld",
       "expect": "expand-0038-out.jsonld"
+    }, {
+      "@type": ["test:TestCase", "jld:ExpandTest"],
+      "name": "Complex property generator test case with multiple colliding IRIs",
+      "input": "expand-0039-in.jsonld",
+      "expect": "expand-0039-out.jsonld"
     }
   ]
 }