source: project/release/4/locale/trunk/tests/run.scm @ 15641

Last change on this file since 15641 was 15641, checked in by Kon Lovett, 11 years ago

Save

File size: 3.1 KB
Line 
1;;;; locale-test.scm
2
3(use testbase testbase-output-compact)
4(use locale posix)
5
6(define-test locale-test "Locale"
7
8        (test/case "Posix Timezone" (
9                [tz0 (make-timezone-components "PST+8:00" "TEST")]
10                [tz1 (make-timezone-components "PST+8:00PDT+7:00:00" '("POSIX" "TZ"))]
11                [tz2 (make-timezone-components "PST+8:00PDT7,J23/12:34,34/1:00:01" "TEST")] )
12
13                (expect-set! tz0
14                  (update-timezone-components! tz0
15                    'std-name "PST" 'std-offset (* 8 60 60)))
16                (expect-set! tz1
17                  (update-timezone-components! tz1
18        'std-name "PST" 'std-offset (* 8 60 60)
19        'dst-name "PDT" 'dst-offset (* 7 60 60)
20        'dst-start (make-timezone-dst-rule-mwd 4 1 0 3600)
21        'dst-end (make-timezone-dst-rule-mwd 10 5 0 3600)))
22                (expect-set! tz2
23                  (update-timezone-components! tz2
24        'std-name "PST" 'std-offset (* 8 60 60)
25        'dst-name "PDT" 'dst-offset (* 7 60 60)
26        'dst-start (make-timezone-dst-rule-julian-noleap 23 (+ (* 12 60 60) (* 34 60)))
27        'dst-end (make-timezone-dst-rule-julian-leap 34 (+ (* 1 60 60) 1))))
28
29                (expect-false "F1" (posix-timezone-string->timezone-components ":foo,bar,baz"))
30                (expect-false "F2" (posix-timezone-string->timezone-components "23,foo"))
31                (expect-false "F3" (posix-timezone-string->timezone-components "foo/23"))
32                (expect-false "F4" (posix-timezone-string->timezone-components "foo-23bar/23"))
33                (expect-false "F5" (posix-timezone-string->timezone-components "foo-23bar-22/23"))
34
35                (expect-equal "S1" tz0
36                        (posix-timezone-string->timezone-components "PST+8:00" "TEST"))
37                (expect-equal "S2" tz1
38                        (posix-timezone-string->timezone-components "PST+8:00PDT+7:00:00" '("POSIX" "TZ")))
39                (expect-equal "S3" tz2
40                        (posix-timezone-string->timezone-components "PST+8:00PDT7,J23/12:34,34/1:00:01" "TEST"))
41
42                (side-effect (setenv "TZ" "PST+8:00PDT+7:00:00"))
43                (side-effect (posix-load-timezone))
44                (expect-equal "S4" tz1 (current-timezone-components))
45        )
46
47        (test/case "Posix Locale" (
48                [lc0 (make-locale-components "en_US" '("POSIX" "LANG"))]
49                [lc1 (make-locale-components "en-Latn_US.UTF8@foo,bar,baz" "TEST")] )
50
51                (expect-set! lc0
52                  (update-locale-components! lc0
53        'language "en"
54        'region "US"))
55                (expect-set! lc1
56                  (update-locale-components! lc1
57        'language "en"
58        'script "Latn"
59        'region "US"
60        'codeset "UTF8"
61        'modifier "foo,bar,baz"))
62
63                (expect-false "F1" (posix-locale-string->locale-components "/foo,bar,baz" "TEST"))
64                (expect-false "F2" (posix-locale-string->locale-components "23,bar,baz" "TEST"))
65                (expect-false "F3" (posix-locale-string->locale-components "foo-bar_1" "TEST"))
66
67                (expect-equal "S1" lc0 (posix-locale-string->locale-components "en_US" '("POSIX" "LANG")))
68                (expect-equal "S2" lc1 (posix-locale-string->locale-components "en-Latn_US.UTF8@foo,bar,baz" "TEST"))
69
70                (side-effect (setenv "LANG" "en_US"))
71                (side-effect (posix-load-locale))
72                (expect-equal "S3" lc0 (current-locale-components))
73                (expect-equal "S4" lc0 (locale-category-ref 'monetary))
74        )
75
76  #;
77        (test/case "Local Timezone" ()
78          (with-tzset "" (lambda () ))
79        )
80)
81
82(test::styler-set! locale-test test::output-style-compact)
83(run-test "Locale Tests")
Note: See TracBrowser for help on using the repository browser.