/*
 * Description      :   Check the calendar-duration functions
 * Expected Result  :   Success
 * Date             :   15th Oct, 2012
 */

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

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

let $t1 := datetime("1987-11-19T23:49:23.938")
let $t2 := date("-1328-10-23")
let $dr1 := duration("P7382DT39283M3921.329S")
let $dr2 := duration("-PT63H398212M3219.328S")
let $dr3 := duration("P1Y90M")
let $dr4 := duration("-P3Y89M4089DT47382.983S")
let $cdr1 := calendar-duration-from-datetime($t1, $dr1)
let $cdr2 := calendar-duration-from-datetime($t1, $dr2)
let $cdr3 := calendar-duration-from-datetime($t1, $dr3)
let $cdr4 := calendar-duration-from-datetime($t1, $dr4)
let $cdr5 := calendar-duration-from-date($t2, $dr1)
let $cdr6 := calendar-duration-from-date($t2, $dr2)
let $cdr7 := calendar-duration-from-date($t2, $dr3)
let $cdr8 := calendar-duration-from-date($t2, $dr4)

return { "cduration1":$cdr1, "cduration2":$cdr2, "cduration3":$cdr3, "cduration4":$cdr4, "cduration5":$cdr5, "cduration6":$cdr6, "cduration7":$cdr7, "cduration8":$cdr8 }
