changeset 550: | 4d34907c69eb |
parent: | 32bd859533b3 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Tue, 16 Jul 2024 21:52:09 -0400 |
permissions: | -rw-r--r-- |
description: | more work on tcompact/thrift, fixed type info in parquet-struct-objects |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
1 | (defpackage :dat/tests |
550
4d34907c69eb
more work on tcompact/thrift, fixed type info in parquet-struct-objects
Richard Westhaver <ellis@rwest.io>
parents:
549
diff
changeset
|
2 | (:use :cl :std :rt :dat :log)) |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
3 | |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
4 | (in-package :dat/tests) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
5 | |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
6 | (defsuite :dat) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
7 | (in-suite :dat) |
147
ee949f2a5f8e
added tree-sitter/wrapper.c and init alik
ellis <ellis@rwest.io>
parents:
146
diff
changeset
|
8 | (in-readtable :std) |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
9 | |
463
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
10 | (deftest bytes ()) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
11 | |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
12 | (deftest dot () |
465 | 13 | "Test Graphviz DOT functionality." |
463
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
14 | (let ((g1 (make-instance 'graph:graph))) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
15 | (graph:add-node g1 "foo") |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
16 | (graph:add-node g1 :bar) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
17 | (graph:add-node g1 42) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
18 | (graph:add-edge g1 '("foo" :bar) "a") |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
19 | (graph:add-edge g1 '(:bar 42) "b") |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
20 | (graph:add-edge g1 '(42 "foo") "c") |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
21 | (is (stringp (dat/dot::to-dot g1))) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
22 | (dat/dot::to-dot-file g1 "/tmp/test") |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
23 | (is (probe-file "/tmp/test")) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
24 | (is (delete-file "/tmp/test")))) |
f2bb57563930
obj/graph and dat/dot test and fixes
Richard Westhaver <ellis@rwest.io>
parents:
147
diff
changeset
|
25 | |
465 | 26 | (deftest csv () |
27 | "Test CSV functionality." |
|
28 | (is |
|
29 | (not |
|
30 | (sequence:emptyp |
|
31 | (with-output-to-string (str) |
|
32 | (dat/csv:write-csv-stream |
|
33 | str |
|
34 | #(#(1 2 3 4) #(2 3 4 5) #(3 4 5 6)))))))) |
|
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
35 | |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
36 | (deftest json () |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
37 | (let ((str (format nil "[~s,2,true,null]" "Hello, world!")) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
38 | (obj (list "Hello, world!" 2 t nil))) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
39 | (multiple-value-bind (res pos) (json-decode str) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
40 | (is (equal obj res)) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
41 | (is (= pos 29))) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
42 | (is (equal str (with-output-to-string (s) (json-encode obj s))))) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
43 | (let ((str2 "[1,2,3]")) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
44 | (is (equal '(1 2 3) (deserialize str2 :json :end (length str2)))) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
45 | (is (equal str2 (with-output-to-string (s) (serialize (list 1 2 3) :json :stream s)))))) |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
46 | |
123
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
47 | (deftest xml () |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
48 | (is (equal "foo" (xml-node-name (xml-parse "<foo></foo>"))))) |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
49 | |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
50 | (deftest toml () |
123
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
51 | "Tests based on https://github.com/toml-lang/toml-test" |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
52 | ;; comment |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
53 | ;; int |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
54 | ;; hex |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
55 | ;; octet |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
56 | ;; binary |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
57 | ;; float |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
58 | ;; bool |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
59 | ;; datetime |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
60 | ;; string |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
61 | ;; array |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
62 | ;; kv |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
63 | ) |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
64 | |
123
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
65 | (defparameter *arff-input* |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
66 | "% 1. Title: Iris Plants Database |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
67 | % |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
68 | % 2. Sources: |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
69 | % (a) Creator: R.A. Fisher |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
70 | % (b) Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov) |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
71 | % (c) Date: July, 1988 |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
72 | % |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
73 | @RELATION iris |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
74 | @ATTRIBUTE sepallength NUMERIC |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
75 | @ATTRIBUTE sepalwidth NUMERIC |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
76 | @ATTRIBUTE petallength NUMERIC |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
77 | @ATTRIBUTE petalwidth NUMERIC |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
78 | @ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}") |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
79 | |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
80 | (deftest arff () |
a4ed30cbe083
data testing, added ical and vcard formats
ellis <ellis@rwest.io>
parents:
122
diff
changeset
|
81 | (is (typep (parse-arff-string *arff-input*) 'arff))) |
122
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
82 | |
4ba88cac5bc7
num/parse, added DAT system, net/fetch, time/local, refactored trees
ellis <ellis@rwest.io>
parents:
diff
changeset
|
83 | (deftest bencode ()) |
146 | 84 | |
85 | (defvar *sxp-test-long* "(edges-1 |
|
86 | ( |
|
87 | (1389.886593 1341.567282) |
|
88 | (1383.122623 1339.369530) |
|
89 | ) |
|
90 | ( |
|
91 | (1383.122623 1339.369530) |
|
92 | (1387.706464 1325.261939) |
|
93 | ) |
|
94 | ( |
|
95 | (1387.706464 1325.261939) |
|
96 | (1394.470360 1327.459664) |
|
97 | ) |
|
98 | ( |
|
99 | (1394.470360 1327.459664) |
|
100 | (1389.886593 1341.567282) |
|
101 | ) |
|
102 | ) ; edges end |
|
103 | ||
104 | (edges-2 |
|
105 | ( ( 1.1 2.2 ) (2.2 3.3) ) |
|
106 | ( ( 2.2 3.3 ) (3.3 3.3) ) |
|
107 | ( ( 3.3 3.3 ) (1.1 2.2) ) |
|
108 | ) ; end edges of triangle room |
|
109 | ||
110 | (= 4 4) |
|
111 | (= 5 4) |
|
112 | (> 4.0 54.0) |
|
113 | (= 4 s) |
|
114 | (= (= 4 4) (> 5 4)) |
|
115 | (not (= 3 3)) |
|
116 | (not 4) |
|
117 | (if (= 4 4) 42 666) |
|
118 | (if (= 4.0 4.0) (42)) |
|
119 | (+ 4 4) |
|
120 | (+ 5.0 6.5) |
|
121 | (- 4 5) |
|
122 | (^ 2 3) |
|
123 | (^ 3 2) |
|
124 | (^ 3 (+ 2 1)) |
|
125 | ") |
|
126 | ||
127 | (defvar *sxp-test-short* "(FOO 'BAR `(\"test\" ,BAZ ,@QUX) 123 0.0123 1/3 `(,A1 ,A2))") |
|
128 | ||
129 | (deftest forms () |
|
130 | (is (formp nil)) |
|
131 | (is (formp t)) |
|
132 | (is (formp 3.14)) |
|
133 | (is (formp "string")) |
|
134 | (is (formp (mapc #`(',a1) '(a)))) |
|
135 | (is (formp ()))) |
|
136 | ||
137 | (deftest sxp-string () |
|
138 | (let ((f (make-instance 'sxp))) |
|
139 | (is (formp (read-sxp-string f *sxp-test-short*))) |
|
140 | (is (equalp (read-from-string (write-sxp-string f)) (read-from-string *sxp-test-short*))))) |
|
141 | ||
142 | (deftest sxp-stream () |
|
143 | (let ((f (make-instance 'sxp))) |
|
144 | (with-input-from-string (s *sxp-test-long*) |
|
145 | (read-sxp-stream f s)) |
|
146 | (with-output-to-string (s) |
|
147 | (is (write-sxp-stream f s))))) |
|
541
10c4bb778030
bit of parquet refactoring, properly generate slot types
Richard Westhaver <ellis@rwest.io>
parents:
465
diff
changeset
|
148 | |
549 | 149 | (defparameter *parquet-test-file* |
150 | (probe-file |
|
550
4d34907c69eb
more work on tcompact/thrift, fixed type info in parquet-struct-objects
Richard Westhaver <ellis@rwest.io>
parents:
549
diff
changeset
|
151 | (merge-pathnames "../../../.stash/alltypes_plain.parquet" |
549 | 152 | #.(asdf:system-source-directory :dat/tests)))) |
548 | 153 | ;; see also: https://github.com/apache/parquet-testing/blob/master/data/README.md |
541
10c4bb778030
bit of parquet refactoring, properly generate slot types
Richard Westhaver <ellis@rwest.io>
parents:
465
diff
changeset
|
154 | (deftest parquet-basic () |
549 | 155 | (when *parquet-test-file* |
156 | (with-open-file (st *parquet-test-file* :element-type '(unsigned-byte 8)) |
|
157 | (let ((footer (dat/parquet::parquet-read-footer st))) |
|
158 | (is (typep footer |
|
159 | 'dat/parquet::parquet-file-meta-data)) |
|
550
4d34907c69eb
more work on tcompact/thrift, fixed type info in parquet-struct-objects
Richard Westhaver <ellis@rwest.io>
parents:
549
diff
changeset
|
160 | (trace! (slot-value footer 'dat/parquet::schema)) |
4d34907c69eb
more work on tcompact/thrift, fixed type info in parquet-struct-objects
Richard Westhaver <ellis@rwest.io>
parents:
549
diff
changeset
|
161 | (trace! (file-position st)) |
4d34907c69eb
more work on tcompact/thrift, fixed type info in parquet-struct-objects
Richard Westhaver <ellis@rwest.io>
parents:
549
diff
changeset
|
162 | (trace! (file-length st)))))) |