Sha256: 6f8b996b77ff8c160f187e78da13720448ad00b344909cffda0aa5c7e6af2576

Contents?: true

Size: 1.51 KB

Versions: 37

Compression:

Stored size: 1.51 KB

Contents

require 'spec_helper'

#
# Example from http://sqlite.org/rtree.html
#
describe "SQLite3 R*Tree extension" do
  before( :each ) do
    @db = Amalgalite::Database.new( ":memory:" )
    x = @db.execute_batch <<-sql
    CREATE VIRTUAL TABLE demo_index USING rtree(
       id,              -- Integer primary key
       minX, maxX,      -- Minimum and maximum X coordinate
       minY, maxY       -- Minimum and maximum Y coordinate
    );
    -- 
    INSERT INTO demo_index VALUES(
        1,                   -- Primary key
        -80.7749, -80.7747,  -- Longitude range
        30.3776, 30.3778     -- Latitude range
    );
    INSERT INTO demo_index VALUES(
        2,
        -81.0, -79.6,
        35.0, 36.2
    );
    sql
    x.should == 3
  end

  after( :each ) do
    @db.close
  end

  it "has 2 rows" do
    r = @db.first_value_from( "SELECT count(*) FROM demo_index")
    r.should == 2
  end

  it "queries normally" do
    r = @db.execute "SELECT * FROM demo_index WHERE id=1;"
    r.size.should be == 1
    row = r.first
    row['id'].should be == 1
  end

  it "does a 'contained within' query" do
    r = @db.execute <<-sql
    SELECT id FROM demo_index
     WHERE minX>=-81.08 AND maxX<=-80.58
       AND minY>=30.00  AND maxY<=30.44;
    sql

    r.size.should be == 1
    r.first['id'].should be == 1
  end

  it "does an 'overlapping' query" do
    r = @db.execute <<-sql
    SELECT id FROM demo_index
     WHERE maxX>=-81.08 AND minX<=-80.58
       AND maxY>=30.00  AND minY<=35.44;
    sql
    r.size.should == 2
  end
end

Version data entries

37 entries across 37 versions & 2 rubygems

Version Path
amalgalite-1.6.3-x64-mingw32 spec/rtree_spec.rb
amalgalite-1.6.3 spec/rtree_spec.rb
amalgalite-1.6.1-x86-mingw32 spec/rtree_spec.rb
amalgalite-1.6.1-x64-mingw32 spec/rtree_spec.rb
amalgalite-1.6.1 spec/rtree_spec.rb
amalgalite-1.6.0-x64-mingw32 spec/rtree_spec.rb
amalgalite-1.6.0-x86-mingw32 spec/rtree_spec.rb
amalgalite-1.6.0 spec/rtree_spec.rb
amalgalite-1.5.0-x86-mingw32 spec/rtree_spec.rb
amalgalite-1.5.0 spec/rtree_spec.rb
amalgalite-1.4.1-x86-mingw32 spec/rtree_spec.rb
amalgalite-1.4.1 spec/rtree_spec.rb
amalgalite-1.4.0-x86-mingw32 spec/rtree_spec.rb
amalgalite-1.4.0 spec/rtree_spec.rb
asana2flowdock-1.0.0 vendor/bundle/ruby/1.9.1/gems/amalgalite-1.3.0/spec/rtree_spec.rb
amalgalite-1.3.0-x86-mswin32 spec/rtree_spec.rb
amalgalite-1.3.0 spec/rtree_spec.rb