27 lines
921 B
Ruby
27 lines
921 B
Ruby
require 'rdf'
|
|
require 'rdf/turtle'
|
|
require 'rdf/ntriples'
|
|
require 'logger'
|
|
|
|
RSpec.describe 'data_examples/example_01.ttl' do
|
|
let(:data_dir) { File.expand_path('../data', __dir__) }
|
|
let(:example_file) { File.expand_path('../data_examples/example_01.ttl', __dir__) }
|
|
let(:null_logger) { Logger.new(File::NULL) }
|
|
|
|
let(:full_graph) do
|
|
graph = RDF::Graph.new
|
|
Dir.glob(File.join(data_dir, '*.ttl')).sort.each do |path|
|
|
graph.load(path, logger: null_logger)
|
|
end
|
|
graph
|
|
end
|
|
|
|
let(:example_graph) { RDF::Graph.load(example_file) }
|
|
|
|
it 'every triple in the example is present in the combined data graph' do
|
|
missing = example_graph.each_statement.reject { |stmt| full_graph.include?(stmt) }
|
|
expect(missing).to be_empty,
|
|
"#{missing.size} triple(s) from the example are not in the data graph:\n" +
|
|
missing.map { |s| " " + RDF::NTriples::Writer.serialize(s) }.join
|
|
end
|
|
end
|