File: time.l

package info (click to toggle)
euslisp 9.32%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 55,268 kB
  • sloc: ansic: 41,693; lisp: 3,339; makefile: 286; sh: 238; asm: 138; python: 53
file content (76 lines) | stat: -rw-r--r-- 2,537 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
;; time.l
;; Author: Yuki Furuta <furushchev@jsk.imi.i.u-tokyo.ac.jp>

(require :unittest "lib/llib/unittest.l")

(init-unit-test)

(deftest test-date-time

  (setq d (instance calendar-time :make
           :year 2015 :month 8 :day 16
           :hour 18 :minute 39 :second 58
            :micro 746342))

  (setq d-add1 (send d :add
                 (instance interval-time :make
                  :hour 2 :minute 3 :second 4 :micro 300)))
  (assert (and (eq (send d-add1 :hour)
                   (+ (send d :hour) 2))
               (eq (send d-add1 :minute)
                   (+ (send d :minute) 4))
               (eq (send d-add1 :second)
                   (mod (+ (send d :second) 4) 60))
               (eq (send d-add1 :micro)
                   (+ (send d :micro) 300))))

  (setq d-add2 (send d :add
                 (instance interval-time :make
                  :hour 2 :minute 3 :second 4 :micro 3000000)))
  (assert (and (eq (send d-add2 :hour)
                   (+ (send d :hour) 2))
               (eq (send d-add2 :minute)
                   (+ (send d :minute) 4))
               (eq (send d-add2 :second)
                   (mod (+ (send d :second) 4 3) 60))
               (eq (send d-add2 :micro)
                   (send d :micro))))

  (setq d-sub1 (send d :subtract
                 (instance interval-time :make
                  :hour 2 :minute 3 :second 4 :micro 300)))
  (assert (and (eq (send d-sub1 :hour)
                   (- (send d :hour) 2))
               (eq (send d-sub1 :minute)
                   (- (send d :minute) 3))
               (eq (send d-sub1 :second)
                   (- (send d :second) 4))
               (eq (send d-sub1 :micro)
                   (- (send d :micro) 300))))

  (setq d-sub2 (send d :subtract
                 (instance interval-time :make
                  :hour 2 :minute 3 :second 4 :micro 3000000)))
  (assert (and (eq (send d-sub2 :hour)
                   (- (send d :hour) 2))
               (eq (send d-sub2 :minute)
                   (- (send d :minute) 3))
               (eq (send d-sub2 :second)
                   (- (send d :second) 4 3))
               (eq (send d-sub2 :micro)
                   (send d :micro))))

)

(deftest test-asctime
  ;; asctime segfaults on arm32:sid
  (unix::asctime (unix::localtime)) ;; check if asctime works
  (assert (string=
	   (unix::asctime #(41 26 15 27 8 125 6 269 nil ("JST" "JST")))
	   (format nil "Sat Sep 27 15:26:41 2025~%")))
)

(eval-when (load eval)
  (run-all-tests)
  (exit))
;; end of time.l