#lang scheme/base (require "tz.ss" "base.ss" srfi/19 (planet bzlib/base) (planet bzlib/date)) (define tests '(((#s(*date 1800 1 1 0 0 0 0) "America/Los_Angeles") . -28378) ((#s(*date 1919 10 1 0 0 0 0) "America/Los_Angeles") . -25200) ((#s(*date 1948 4 2 0 0 0 0) "America/Los_Angeles") . -25200) ((#s(*date 1949 1 2 0 0 0 0) "America/Los_Angeles") . -28800) ((#s(*date 1989 4 10 0 0 0 0) "America/Los_Angeles") . -25200) ((#s(*date 2010 3 10 0 0 0 0) "America/Los_Angeles") . -28800) ((#s(*date 2010 3 20 0 0 0 0) "America/Los_Angeles") . -25200) ((#s(*date 2040 3 10 0 0 0 0) "America/Los_Angeles") . -28800) ((#s(*date 2040 3 20 0 0 0 0) "America/Los_Angeles") . -25200) ((#s(*date 1800 1 1 0 0 0 0) "Asia/Kolkata") . 21208) ((#s(*date 1943 1 1 0 0 0 0) "Asia/Kolkata") . 23400) ((#s(*date 2043 1 1 0 0 0 0) "Asia/Kolkata") . 19800) ((#s(*date 1800 1 1 0 0 0 0) "Asia/Taipei") . 29160) ((#s(*date 2043 1 1 0 0 0 0) "Asia/Taipei") . 28800) ((#s(*date 1980 8 1 0 0 0 0) "Asia/Taipei") . 32400) ((#s(*date 1980 5 1 0 0 0 0) "Asia/Taipei") . 28800) )) (define (test-tz-offset!) (define (helper *date tz) (tz-offset (*date->date *date) tz)) (map (lambda (test) (assert! (apply helper (car test)) = (cdr test))) tests))