7
class TestGeosIO < Test::Unit::TestCase
9
@test_helper = GeosTestHelper.new()
12
def run_test(message, &block)
13
# This function tests writing and reading geometries to
14
# the well-known binary hex format
15
geoms = @test_helper.create_geoms()
17
STDOUT << "\n" << "-------- #{message} ----------" << "\n"
18
geoms.each do |geom_in|
19
geom_out = yield(geom_in)
22
## Geometries should be equal
23
assert(geom_out.equals(geom_in),
24
"Geom In: #{geom_in}\nGeom Out: #{geom_out}")
25
rescue Geos::IllegalArgumentException => error
29
## Check precision model
33
## This seems to always fail
34
# assert_equal(0, geom_in.compare_to(geom_out))
39
wkb_writer = Geos::WKBWriter.new()
40
wkb_reader = Geos::WKBReader.new(@test_helper.geom_factory)
42
self.run_test("TESTING WKB HEX IO") do |geom_in|
43
value = wkb_writer.write_hex(geom_in)
44
geom_out = wkb_reader.read_hex(value)
49
wkb_writer = Geos::WKBWriter.new()
50
wkb_reader = Geos::WKBReader.new(@test_helper.geom_factory)
52
self.run_test("TESTING WKB IO") do |geom_in|
53
value = wkb_writer.write(geom_in)
54
geom_out = wkb_reader.read(value)
59
wkt_writer = Geos::WKTWriter.new()
60
wkt_reader = Geos::WKTReader.new(@test_helper.geom_factory)
62
self.run_test("TESTING WKT IO") do |geom_in|
63
value = wkt_writer.write(geom_in)
64
geom_out = wkt_reader.read(value)
b'\\ No newline at end of file'