Artifact
eae56917e020c56106f13ff9b67aa08c772d7aa9:
- File
fmt/test-fmt-js.scm
— part of check-in
[80c8c83034]
at
2016-07-07 18:11:39
on branch trunk
— initial import
(user:
ovenpasta@pizzahack.eu
size: 1073)
0000: 0a 28 63 6f 6e 64 2d 65 78 70 61 6e 64 0a 20 28 .(cond-expand. (
0010: 63 68 69 63 6b 65 6e 0a 20 20 28 6c 6f 61 64 20 chicken. (load
0020: 22 66 6d 74 2d 6a 73 2d 63 68 69 63 6b 65 6e 2e "fmt-js-chicken.
0030: 73 63 6d 22 29 29 0a 20 28 65 6c 73 65 29 29 0a scm")). (else)).
0040: 0a 28 63 6f 6e 64 2d 65 78 70 61 6e 64 0a 20 28 .(cond-expand. (
0050: 63 68 69 63 6b 65 6e 0a 20 20 28 75 73 65 20 74 chicken. (use t
0060: 65 73 74 29 0a 20 20 28 69 6d 70 6f 72 74 20 66 est). (import f
0070: 6d 74 29 0a 20 20 28 69 6d 70 6f 72 74 20 66 6d mt). (import fm
0080: 74 2d 6a 73 29 29 0a 20 28 67 61 75 63 68 65 0a t-js)). (gauche.
0090: 20 20 28 75 73 65 20 67 61 75 63 68 65 2e 74 65 (use gauche.te
00a0: 73 74 29 0a 20 20 28 75 73 65 20 74 65 78 74 2e st). (use text.
00b0: 66 6d 74 29 0a 20 20 28 75 73 65 20 74 65 78 74 fmt). (use text
00c0: 2e 66 6d 74 2e 6a 73 29 0a 20 20 28 64 65 66 69 .fmt.js). (defi
00d0: 6e 65 20 74 65 73 74 2d 62 65 67 69 6e 20 74 65 ne test-begin te
00e0: 73 74 2d 73 74 61 72 74 29 0a 20 20 28 64 65 66 st-start). (def
00f0: 69 6e 65 20 6f 72 69 67 2d 74 65 73 74 20 28 77 ine orig-test (w
0100: 69 74 68 2d 6d 6f 64 75 6c 65 20 67 61 75 63 68 ith-module gauch
0110: 65 2e 74 65 73 74 20 74 65 73 74 29 29 0a 20 20 e.test test)).
0120: 28 64 65 66 69 6e 65 2d 73 79 6e 74 61 78 20 74 (define-syntax t
0130: 65 73 74 0a 20 20 20 20 28 73 79 6e 74 61 78 2d est. (syntax-
0140: 72 75 6c 65 73 20 28 29 0a 20 20 20 20 20 20 28 rules (). (
0150: 28 74 65 73 74 20 6e 61 6d 65 20 65 78 70 65 63 (test name expec
0160: 74 65 64 20 65 78 70 72 29 0a 20 20 20 20 20 20 ted expr).
0170: 20 28 6f 72 69 67 2d 74 65 73 74 20 6e 61 6d 65 (orig-test name
0180: 20 65 78 70 65 63 74 65 64 20 28 6c 61 6d 62 64 expected (lambd
0190: 61 20 28 29 20 65 78 70 72 29 29 29 0a 20 20 20 a () expr))).
01a0: 20 20 20 28 28 74 65 73 74 20 65 78 70 65 63 74 ((test expect
01b0: 65 64 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 ed expr).
01c0: 28 6f 72 69 67 2d 74 65 73 74 20 28 6c 65 74 20 (orig-test (let
01d0: 28 28 73 20 28 77 69 74 68 2d 6f 75 74 70 75 74 ((s (with-output
01e0: 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6c 61 6d 62 -to-string (lamb
01f0: 64 61 20 28 29 20 28 77 72 69 74 65 20 27 65 78 da () (write 'ex
0200: 70 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 pr))))).
0210: 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 (sub
0220: 73 74 72 69 6e 67 20 73 20 30 20 28 6d 69 6e 20 string s 0 (min
0230: 36 30 20 28 73 74 72 69 6e 67 2d 6c 65 6e 67 74 60 (string-lengt
0240: 68 20 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 h s)))).
0250: 20 20 20 20 20 20 20 20 20 20 65 78 70 65 63 74 expect
0260: 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ed.
0270: 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 (lambda ()
0280: 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 29 29 expr))). ))
0290: 29 0a 20 28 65 6c 73 65 29 29 0a 0a 28 74 65 73 ). (else))..(tes
02a0: 74 2d 62 65 67 69 6e 20 22 66 6d 74 2d 6a 73 22 t-begin "fmt-js"
02b0: 29 0a 0a 28 74 65 73 74 20 22 76 61 72 20 66 6f )..(test "var fo
02c0: 6f 20 3d 20 31 20 2b 20 32 3b 5c 6e 22 0a 20 20 o = 1 + 2;\n".
02d0: 20 20 28 66 6d 74 20 23 66 20 28 6a 73 2d 65 78 (fmt #f (js-ex
02e0: 70 72 20 27 28 25 76 61 72 20 66 6f 6f 20 28 2b pr '(%var foo (+
02f0: 20 31 20 32 29 29 29 29 29 0a 0a 28 74 65 73 74 1 2)))))..(test
0300: 20 22 76 61 72 20 66 6f 6f 20 3d 20 31 20 2b 20 "var foo = 1 +
0310: 32 3b 5c 6e 22 0a 20 20 20 20 28 66 6d 74 20 23 2;\n". (fmt #
0320: 66 20 28 6a 73 2d 65 78 70 72 20 27 28 25 62 65 f (js-expr '(%be
0330: 67 69 6e 20 28 25 76 61 72 20 66 6f 6f 20 28 2b gin (%var foo (+
0340: 20 31 20 32 29 29 29 29 29 29 0a 0a 28 74 65 73 1 2))))))..(tes
0350: 74 20 22 66 75 6e 63 74 69 6f 6e 20 73 71 75 61 t "function squa
0360: 72 65 28 78 29 20 7b 0a 20 20 20 20 72 65 74 75 re(x) {. retu
0370: 72 6e 20 78 20 2a 20 78 3b 0a 7d 22 0a 20 20 20 rn x * x;.}".
0380: 20 28 66 6d 74 20 23 66 20 28 6a 73 2d 66 75 6e (fmt #f (js-fun
0390: 63 74 69 6f 6e 20 27 73 71 75 61 72 65 20 27 28 ction 'square '(
03a0: 78 29 20 27 28 2a 20 78 20 78 29 29 29 29 0a 0a x) '(* x x))))..
03b0: 28 74 65 73 74 20 22 7b 5c 22 66 6f 6f 5c 22 3a (test "{\"foo\":
03c0: 20 5b 31 2c 20 32 2c 20 33 5d 2c 20 5c 22 62 61 [1, 2, 3], \"ba
03d0: 72 5c 22 3a 20 5c 22 62 61 7a 5c 22 7d 22 0a 20 r\": \"baz\"}".
03e0: 20 20 20 28 66 6d 74 20 23 66 20 28 6a 73 2d 65 (fmt #f (js-e
03f0: 78 70 72 20 27 28 25 6f 62 6a 65 63 74 20 28 22 xpr '(%object ("
0400: 66 6f 6f 22 20 2e 20 23 28 31 20 32 20 33 29 29 foo" . #(1 2 3))
0410: 20 28 22 62 61 72 22 20 2e 20 22 62 61 7a 22 29 ("bar" . "baz")
0420: 29 29 29 29 0a 0a 28 74 65 73 74 2d 65 6e 64 29 ))))..(test-end)
0430: 0a .