Fork of https://github.com/oxigraph/oxigraph.git for the purpose of NextGraph project
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
83 lines
2.7 KiB
use oxigraph::model::vocab::{rdf, xsd};
|
|
use oxigraph::model::*;
|
|
use oxigraph::RocksDbStore;
|
|
use std::io;
|
|
use std::process::Command;
|
|
|
|
fn quads(graph_name: GraphNameRef<'static>) -> Vec<QuadRef<'static>> {
|
|
let paris = NamedNodeRef::new_unchecked("http://www.wikidata.org/entity/Q90");
|
|
let france = NamedNodeRef::new_unchecked("http://www.wikidata.org/entity/Q142");
|
|
let city = NamedNodeRef::new_unchecked("http://schema.org/City");
|
|
let name = NamedNodeRef::new_unchecked("http://schema.org/name");
|
|
let country = NamedNodeRef::new_unchecked("http://schema.org/country");
|
|
let population = NamedNodeRef::new_unchecked("http://schema.org/population");
|
|
let start_date = NamedNodeRef::new_unchecked("http://schema.org/startDate");
|
|
let url = NamedNodeRef::new_unchecked("http://schema.org/url");
|
|
let postal_code = NamedNodeRef::new_unchecked("http://schema.org/postalCode");
|
|
vec![
|
|
QuadRef::new(paris, rdf::TYPE, city, graph_name),
|
|
QuadRef::new(
|
|
paris,
|
|
name,
|
|
LiteralRef::new_language_tagged_literal_unchecked("Paris", "fr"),
|
|
graph_name,
|
|
),
|
|
QuadRef::new(
|
|
paris,
|
|
name,
|
|
LiteralRef::new_language_tagged_literal_unchecked("la ville lumière", "fr"),
|
|
graph_name,
|
|
),
|
|
QuadRef::new(paris, country, france, graph_name),
|
|
QuadRef::new(
|
|
paris,
|
|
population,
|
|
LiteralRef::new_typed_literal("2000000", xsd::INTEGER),
|
|
graph_name,
|
|
),
|
|
QuadRef::new(
|
|
paris,
|
|
start_date,
|
|
LiteralRef::new_typed_literal("-300", xsd::G_YEAR),
|
|
graph_name,
|
|
),
|
|
QuadRef::new(
|
|
paris,
|
|
url,
|
|
LiteralRef::new_typed_literal("https://www.paris.fr/", xsd::ANY_URI),
|
|
graph_name,
|
|
),
|
|
QuadRef::new(
|
|
paris,
|
|
postal_code,
|
|
LiteralRef::new_simple_literal("75001"),
|
|
graph_name,
|
|
),
|
|
]
|
|
}
|
|
|
|
#[test]
|
|
fn test_backward_compatibility() -> io::Result<()> {
|
|
{
|
|
let store = RocksDbStore::open("tests/rockdb_bc_data")?;
|
|
for q in quads(GraphNameRef::DefaultGraph) {
|
|
assert!(store.contains(q)?);
|
|
}
|
|
for q in quads(
|
|
NamedNodeRef::new_unchecked("http://www.wikidata.org/wiki/Special:EntityData/Q90")
|
|
.into(),
|
|
) {
|
|
assert!(store.contains(q)?);
|
|
}
|
|
};
|
|
reset_dir("tests/rockdb_bc_data")?;
|
|
Ok(())
|
|
}
|
|
|
|
fn reset_dir(dir: &str) -> io::Result<()> {
|
|
assert!(Command::new("git")
|
|
.args(&["checkout", "HEAD", "--", dir])
|
|
.status()?
|
|
.success());
|
|
Ok(())
|
|
}
|
|
|