8.4 The test file

The test file: test.dylan.
module: timespace

format-out("Creating an instance of <absolute-position>:\n");

define variable *my-absolute-position*
  = make(<absolute-position>, 
         latitude: make(<latitude>, 
                        total-seconds: encode-total-seconds(42, 19, 34),
                        direction: "North"),
         longitude: make(<longitude>,
                         total-seconds: encode-total-seconds(70, 56, 26),
                         direction: "West")); 

say (*my-absolute-position*);

format-out("\n");


format-out("Creating an instance of <relative-position>:\n");

define variable *her-relative-position*
  = make(<relative-position>,
         distance: 30,
         angle: make(<angle>,
                     total-seconds: encode-total-seconds(90, 5, 0)));
say(*her-relative-position*);
format-out("\n");


format-out("Creating an instance of <time-offset> in *minus-2-hours*.\n");

define variable *minus-2-hours*
  = make(<time-offset>, total-seconds: - encode-total-seconds (2, 0, 0));


format-out("Creating an instance of <time-offset> in *plus-15-20-45*.\n");

define variable *plus-15-20-45*
  = make(<time-offset>, total-seconds: encode-total-seconds (15, 20, 45));


format-out("Creating an instance of <time-of-day> in *8-30-59*.\n");

define variable *8-30-59*
  = make(<time-of-day>, total-seconds: encode-total-seconds (8, 30, 59));


format-out("Adding <time-offset> + <time-offset>: *minus-2-hours* + *plus-15-20-45*:\n");

decode-total-seconds(*minus-2-hours* + *plus-15-20-45*);


format-out("Adding <time-offset> + <time-of-day>: *minus-2-hours* + *8-30-59*:\n");

decode-total-seconds(*minus-2-hours* + *8-30-59*);


format-out("Adding <time-of-day> + <time-offset>: *8-30-59* + *minus-2-hours* :\n");

decode-total-seconds(*8-30-59* + *minus-2-hours*);

When we run the test file, we see the following output and values:

Creating an instance of <absolute-position>:
42 degrees 19 minutes 34 seconds North latitude
70 degrees 56 minutes 26 seconds West longitude
Creating an instance of <relative-position>:
30 miles away at heading 90 degrees
Creating an instance of <time-offset> in *minus-2-hours*.
Creating an instance of <time-offset> in *plus-15-20-45*.
Creating an instance of <time-of-day> in *8-30-59*.
Adding <time-offset> + <time-offset>: *minus-2-hours* + *plus-15-20-45":
13
20
45
Adding <time-offset> + <time-of-day>: *minus-2-hours* + *8-30-59":
6
30
59
Adding <time-of-day> + <time-offset>: *8-30-59* + *minus-2-hours*:
6
30
59