/*
 * Description      :   Test spatial accessors
 * Expected Result  :   Success
 * Date             :   Oct 16, 2012
 */

drop dataverse test if exists;
create dataverse test;
use dataverse test;

write output to nc1:"rttest/spatial_spatial_accessors.adm";

let $point := create-point(2.3,5.0)
let $circle := create-circle(create-point(6.0,3.0), 1.0)
let $line := create-line(create-point(100.6,999.4), create-point(-872.0,-876.9))
let $rectangle := create-rectangle(create-point(9.2,49.0), create-point(77.8,111.1))
let $polygon := create-polygon(create-point(1.0,1.0), create-point(2.0,2.0), create-point(3.0,3.0), create-point(4.0,4.0))
let $line_list := get-points($line)
let $rectangle_list := get-points($rectangle)
let $polygon_list := get-points($polygon)
return {"x-coordinate": get-x($point), "y-coordinate": get-y($point), "circle-radius": get-radius($circle), "circle-center": get-center($circle), "line-first-point": $line_list[0], "line-second-point": $line_list[1], "rectangle-left-bottom-point": $rectangle_list[0], "rectangle-top-upper-point": $rectangle_list[1], "polygon-first-point": $polygon_list[0], "polygon-second-point": $polygon_list[1], "polygon-third-point": $polygon_list[2], "polygon-forth-point": $polygon_list[3]}