geos/swig/ruby/test/test_combinations.rb

57 строки
1.2 KiB
Ruby

#!/usr/bin/env ruby
require 'test/unit'
require 'geos'
require 'test_helper'
class TestGeosCombinations < Test::Unit::TestCase
def setup
@test_helper = GeosTestHelper.new()
end
def run_combination(message, &block)
STDOUT << "\n" << "-------- #{message} COMBINATION ------" << "\n"
STDOUT.flush()
geoms = @test_helper.create_geoms()
new_geoms = Array.new()
geoms.each do |geom1|
geoms.each do |geom2|
begin
# Get the actual result from the provided block
result = yield(geom1, geom2)
new_geoms.push(result)
# puts result
# Geometry Collection is not a valid argument
rescue RuntimeError => error
# This is ok
end
end
end
end
def test_union()
run_combination("UNION") do |geom1, geom2|
geom1.union(geom2)
end
end
def test_intersection()
run_combination("INTERSECTION") do |geom1, geom2|
geom1.intersection(geom2)
end
end
def test_difference()
run_combination("DIFFERENCE") do |geom1, geom2|
geom1.difference(geom2)
end
end
def test_symdifference()
run_combination("SYMDIFFERENCE") do |geom1, geom2|
geom1.sym_difference(geom2)
end
end
end