Skip to content

Commit 5e00e7c

Browse files
committed
Merge pull request #61 from ruby-rdf/feature/xsd-equality
Better testing for Literal Equality
2 parents f3d1fd2 + 774c92b commit 5e00e7c

2 files changed

Lines changed: 30 additions & 6 deletions

File tree

lib/rdf/spec/mutable.rb

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,24 @@
204204

205205
it 'does not delete literal with different datatype' do
206206
if subject.mutable? && @supports_literal_equality
207-
float = RDF::Literal::Float.new(1.0)
208-
double = RDF::Literal::Double.new(1.0)
207+
dec = RDF::Literal::Decimal.new(1)
208+
int = RDF::Literal::Integer.new(1)
209209

210-
subject.insert([RDF::URI('s'), RDF::URI('p'), float])
210+
subject.insert([RDF::URI('s'), RDF::URI('p'), dec])
211211

212-
expect { subject.delete([RDF::URI('s'), RDF::URI('p'), double]) }
212+
expect { subject.delete([RDF::URI('s'), RDF::URI('p'), int]) }
213+
.not_to change { subject.count }
214+
end
215+
end
216+
217+
it 'does not delete literal with different lexical value' do
218+
if subject.mutable? && @supports_literal_equality
219+
one = RDF::Literal::Integer.new("1")
220+
zero_one = RDF::Literal::Integer.new("01")
221+
222+
subject.insert([RDF::URI('s'), RDF::URI('p'), one])
223+
224+
expect { subject.delete([RDF::URI('s'), RDF::URI('p'), zero_one]) }
213225
.not_to change { subject.count }
214226
end
215227
end

lib/rdf/spec/writable.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,22 @@
103103

104104
it "should insert statement with literal with unique datatype" do
105105
if subject.writable? && supports_literal_equality
106-
statement.object = RDF::Literal::Float.new(1.0)
106+
statement.object = RDF::Literal::Decimal.new(1)
107107
subject.insert(statement)
108108

109-
statement.object = RDF::Literal::Double.new(1.0)
109+
statement.object = RDF::Literal::Integer.new(1)
110+
subject.insert(statement)
111+
112+
expect(subject.count).to eq 2
113+
end
114+
end
115+
116+
it 'inserts literal with unique lexical value' do
117+
if subject.writable? && supports_literal_equality
118+
statement.object = RDF::Literal::Integer.new("1")
119+
subject.insert(statement)
120+
121+
statement.object = RDF::Literal::Integer.new("01")
110122
subject.insert(statement)
111123

112124
expect(subject.count).to eq 2

0 commit comments

Comments
 (0)