Build Logs

gochaorg/json4s3 • 3.8.0-RC3:2025-12-04

Errors

0

Warnings

31

Total Lines

953

1##################################
2Clonning https://github.com/gochaorg/json4s3.git into /build/repo using revision
3##################################
4Would override fixed Scala version: 3.2.0
5----
6Preparing build for 3.8.0-RC3
7Scala binary version found: 3.8
8Implicitly using source version 3.8
9Scala binary version found: 3.8
10Implicitly using source version 3.8
11Would try to apply common scalacOption (best-effort, sbt/mill only):
12Append: ,REQUIRE:-source:3.8
13Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
14
15Try apply source patch:
16Path: src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala
17Pattern: import scala.annotation.newMain
18Replacement:
19Starting compilation server
20Compiling project (Scala 3.7.3, JVM (17))
21Compiled project (Scala 3.7.3, JVM (17))
22Successfully applied pattern 'import scala.annotation.newMain' in src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala
23
24Try apply source patch:
25Path: build.sbt
26Pattern: val scala3Version = "3.2.0"
27Replacement: val scala3Version = "3.8.0-RC3"
28Successfully applied pattern 'val scala3Version = "3.2.0"' in build.sbt
29----
30Starting build for 3.8.0-RC3
31Execute tests: true
32sbt project found:
33Sbt version 1.7.1 is not supported, minimal supported version is 1.11.5
34Enforcing usage of sbt in version 1.11.5
35No prepare script found for project gochaorg/json4s3
36##################################
37Scala version: 3.8.0-RC3
38Targets: xyz.cofe%json4s3
39Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala","pattern":"import scala.annotation.newMain","replaceWith":""},{"path":"build.sbt","pattern":"val scala3Version = \"3.2.0\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
40##################################
41Using extra scalacOptions: ,REQUIRE:-source:3.8
42Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
43[sbt_options] declare -a sbt_options=()
44[process_args] java_version = '17'
45[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
46# Executing command line:
47java
48-Dfile.encoding=UTF-8
49-Dcommunitybuild.scala=3.8.0-RC3
50-Dcommunitybuild.project.dependencies.add=
51-Xmx7G
52-Xms4G
53-Xss8M
54-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
55-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
56-jar
57/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
58"setCrossScalaVersions 3.8.0-RC3"
59"++3.8.0-RC3 -v"
60"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
61"set every credentials := Nil"
62"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
63"removeScalacOptionsStartingWith -P:wartremover"
64
65moduleMappings
66"runBuild 3.8.0-RC3 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala","pattern":"import scala.annotation.newMain","replaceWith":""},{"path":"build.sbt","pattern":"val scala3Version = \"3.2.0\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}""" xyz.cofe%json4s3"
67
68[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
69[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
70[info] loading project definition from /build/repo/project
71[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
72[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
73[info] Compilation completed in 8.753s.
74[info] done compiling
75/build/repo/build.sbt:45: warning: method in in trait ScopingSetting is deprecated (since 1.5.0): `in` is deprecated; migrate to slash syntax - https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#slash
76ThisBuild / publishArtifact in Test := false
77 ^
78/build/repo/build.sbt:50: warning: method in in trait ScopingSetting is deprecated (since 1.5.0): `in` is deprecated; migrate to slash syntax - https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#slash
79publishTo in ThisBuild := {
80 ^
81[info] loading settings for project root from build.sbt...
82[info] set current project to json4s3 (in build file:/build/repo/)
83[warn] there are 2 keys that are not used by any other settings/tasks:
84[warn]
85[warn] * ThisBuild / pomIncludeRepository
86[warn] +- /build/repo/build.sbt:48
87[warn] * ThisBuild / publishMavenStyle
88[warn] +- /build/repo/build.sbt:44
89[warn]
90[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
91[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
92Execute setCrossScalaVersions: 3.8.0-RC3
93OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in root/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in root/crossScalaVersions
95[info] set current project to json4s3 (in build file:/build/repo/)
96[info] Setting Scala version to 3.8.0-RC3 on 1 projects.
97[info] Switching Scala version on:
98[info] * root (3.8.0-RC3)
99[info] Excluding projects:
100[info] Reapplying settings...
101[info] set current project to json4s3 (in build file:/build/repo/)
102Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
103[info] Reapplying settings...
104[info] set current project to json4s3 (in build file:/build/repo/)
105[info] Defining Global / credentials, credentials
106[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 4 others.
107[info] Run `last` for details.
108[info] Reapplying settings...
109[info] set current project to json4s3 (in build file:/build/repo/)
110Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
111[info] Reapplying settings...
112OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
113
114 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
115 Did you mean allExcludeDependencies ?
116 , retry without global scopes
117[info] Reapplying settings...
118[info] set current project to json4s3 (in build file:/build/repo/)
119Execute removeScalacOptionsStartingWith: -P:wartremover
120[info] Reapplying settings...
121[info] set current project to json4s3 (in build file:/build/repo/)
122[success] Total time: 0 s, completed Dec 4, 2025, 12:48:48 PM
123Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala","pattern":"import scala.annotation.newMain","replaceWith":""},{"path":"build.sbt","pattern":"val scala3Version = \"3.2.0\"","replaceWith":"val scala3Version = \"<SCALA_VERSION>\""}]}
124Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
125Starting build...
126Projects: Set(root)
127Starting build for ProjectRef(file:/build/repo/,root) (json4s3)... [0/1]
128OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
129Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.8
130[info] compiling 34 Scala sources to /build/repo/target/scala-3.8.0-RC3/classes ...
131[warn] -- [E197] Potential Issue Warning: /build/repo/src/main/scala/xyz/cofe/json4s3/derv/FromJson.scala:53:4
132[warn] 53 | new FromJson[T] {
133[warn] | ^
134[warn] | New anonymous class definition will be duplicated at each inline site
135[warn] |
136[warn] | longer explanation available when compiling with `-explain`
137[warn] -- [E197] Potential Issue Warning: /build/repo/src/main/scala/xyz/cofe/json4s3/derv/ToJson.scala:44:4
138[warn] 44 | new ToJson[T] {
139[warn] | ^
140[warn] | New anonymous class definition will be duplicated at each inline site
141[warn] |
142[warn] | longer explanation available when compiling with `-explain`
143[warn] two warnings found
144[info] done compiling
145[info] compiling 25 Scala sources to /build/repo/target/scala-3.8.0-RC3/test-classes ...
146[warn] -- [E197] Potential Issue Warning: /build/repo/src/test/scala/xyz/cofe/json4s3/derv/sample/SampleDeriveTest.scala:20:4
147[warn] 20 | new Show[A] {
148[warn] | ^
149[warn] | New anonymous class definition will be duplicated at each inline site
150[warn] |
151[warn] | longer explanation available when compiling with `-explain`
152[warn] one warning found
153[info] done compiling
154start
155third
156true
15710
158finish
159xyz.cofe.hlist.HListTest:
160 + hlist 0.057s
161xyz.cofe.json4s3.stream.token.CommentTest:
162 + // single 0.055s
163 + /* multi 0.005s
164Identifier(null)
165xyz.cofe.json4s3.stream.token.NestedTokenIteratorTest:
166 + nested token test 0.072s
167 + nested atomic 0.004s
168xyz.cofe.json4s3.stream.ast.ParserIteratorTest:
169 + stream test 0.087s
170========================================
171pretty 1
172Some(IntNumber(0))
173{"e":[[]]}
174Some(IntNumber(0))
175Some(FloatNumber(0.0))
176Some(FloatNumber(0.0))
177========================================
178pretty 2
179{
180 "a":"abc",
181 "b":{},
182 "c":[
183 1,
184 2,
185 3
186 ],
187 "d":{
188 "a":true,
189 "b":false,
190 "c":[]
191 },
192 "e":[[]]
193}
194xyz.cofe.json4s3.stream.ast.PrettyTest:
195 + pretty 1 0.011s
196 + pretty 2 0.013s
197parse OpenSquare => Right((ArrExpectValue(List(),Some(Init)),None))
198parse CloseSquare => Right((Init,Some(JsArray(List()))))
199{
200 a : Sum(
201 2 > JsInt
202 1 > JsBool
203 )
204 b : Sum(
205 1 > JsInt
206 1 > {
207 x : JsInt
208 }
209 )
210 c : JsStr
211 d : JsArray
212}
213
214MySuite:
215 + example test that succeeds 0.005s
216xyz.cofe.json4s3.desc.JsonDescribeTest:
217 + desc 0.042s
218parse OpenSquare => Right((ArrExpectValue(List(),Some(Init)),None))
219parse IntNumber(1) => Right((ArrExpectComma(List(JsInt(1)),Some(Init)),None))
220parse CloseSquare => Right((Init,Some(JsArray(List(JsInt(1))))))
221parse OpenSquare => Right((ArrExpectValue(List(),Some(Init)),None))
222parse IntNumber(1) => Right((ArrExpectComma(List(JsInt(1)),Some(Init)),None))
223parse Comma => Right((ArrAfterComma(List(JsInt(1)),Some(Init)),None))
224parse IntNumber(2) => Right((ArrExpectComma(List(JsInt(1), JsInt(2)),Some(Init)),None))
225parse CloseSquare => Right((Init,Some(JsArray(List(JsInt(1), JsInt(2))))))
226parse OpenSquare => Right((ArrExpectValue(List(),Some(Init)),None))
227parse IntNumber(1) => Right((ArrExpectComma(List(JsInt(1)),Some(Init)),None))
228parse Comma => Right((ArrAfterComma(List(JsInt(1)),Some(Init)),None))
229parse IntNumber(2) => Right((ArrExpectComma(List(JsInt(1), JsInt(2)),Some(Init)),None))
230parse Comma => Right((ArrAfterComma(List(JsInt(1), JsInt(2)),Some(Init)),None))
231parse CloseSquare => Right((Init,Some(JsArray(List(JsInt(1), JsInt(2))))))
232========================================
233object {}
234parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
235xyz.cofe.json4s3.query.QueryTest:
236 + sample 0.012s
237parse CloseBrace => Right((Init,Some(JsObj(List()))))
238-294113285720479764n
239Some(BigNumber(-294113285720479764))
240xyz.cofe.json4s3.stream.token.NumberTest:
241 + parse int 123 0.001s
242 + parse int 0 0.001s
243 + parse int -0 0.001s
244 + parse int -12 0.001s
245 + parse float 0. 0.001s
246 + parse float 0.0 0.001s
247 + parse float 10.5 0.002s
248 + parse float -1.5 0.0s
249 + parse float -.5 0.001s
250 + parse float 1.2e3 0.004s
251 + parse float 1.2e+4 0.001s
252 + parse float 1.2e-4 0.007s
253 + parse oct 0153 0.001s
254 + parse oct 0o153 0.0s
255 + parse oct 0O153 0.001s
256 + parse oct 0O153n 0.007s
257 + parse oct 0153n 0.0s
258 + parse hex 0xfa2 0.006s
259 + parse hex 0xfa2n 0.001s
260 + parse hex 0Xfa2n 0.001s
261 + parse hex 0Xfa 0.006s
262 + parse hex 0XFA 0.0s
263 + parse hex 0b110 0.001s
264 + parse hex 0B110 0.001s
265 + parse hex 0b110n 0.003s
266 + FloatNumber(0.4354165676733556) 0.003s
267 + BigInt(-294113285720479764) 0.002s
268OpenBrace
269CloseBrace
270OpenSquare
271CloseSquare
272Comma
273Colon
274WhiteSpace( )
275IntNumber(1)
276WhiteSpace( )
277Str(aaa)
278WhiteSpace( )
279MLComment( abc )
280========================================
281object {'a':1}
282parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
283parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
284parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
285parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
286parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)))))))
287========================================
288object {'a':1,}
289parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
290parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
291parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
292parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
293parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
294parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)))))))
295input char '{' input.state=Init
296 output state = Init
297 output tokens = List(OpenBrace)
298input char '}' input.state=Init
299 output state = Init
300 output tokens = List(CloseBrace)
301input char ' ' input.state=Init
302 output state = WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@576586e6,Work( ))
303 output tokens = List()
304input char '[' input.state=WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@576586e6,Work( ))
305 output state = Init
306 output tokens = List(WhiteSpace( ), OpenSquare)
307input char ']' input.state=Init
308 output state = Init
309 output tokens = List(CloseSquare)
310input char ':' input.state=Init
311 output state = Init
312 output tokens = List(Colon)
313input char ',' input.state=Init
314 output state = Init
315 output tokens = List(Comma)
316input char ' ' input.state=Init
317 output state = WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@663226c8,Work( ))
318 output tokens = List()
319input char '1' input.state=WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@663226c8,Work( ))
320 output state = NumParse(xyz.cofe.json4s3.stream.token.number$Parser@321d6d11,DecPart(List(1),true))
321 output tokens = List(WhiteSpace( ))
322input char '2' input.state=NumParse(xyz.cofe.json4s3.stream.token.number$Parser@321d6d11,DecPart(List(1),true))
323 output state = NumParse(xyz.cofe.json4s3.stream.token.number$Parser@321d6d11,DecPart(List(1, 2),true))
324 output tokens = List()
325input char ' ' input.state=NumParse(xyz.cofe.json4s3.stream.token.number$Parser@321d6d11,DecPart(List(1, 2),true))
326 output state = WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@3f8152fe,Work( ))
327 output tokens = List(IntNumber(12))
328input char 't' input.state=WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@3f8152fe,Work( ))
329 output state = IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(t))
330 output tokens = List(WhiteSpace( ))
331input char 'r' input.state=IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(tr))
332========================================
333object {'a':1,'b':2}
334 output state = IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(tr))
335 output tokens = List()
336input char 'u' input.state=IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(tru))
337 output state = IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(tru))
338 output tokens = List()
339input char 'e' input.state=IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(true))
340 output state = IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(true))
341 output tokens = List()
342input char ' ' input.state=IdParser(xyz.cofe.json4s3.stream.token.identifier$Parser@4428b15e,Work(true))
343 output state = WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@33dbcb75,Work( ))
344 output tokens = List(Identifier(true))
345input char ''' input.state=WhitespaceParse(xyz.cofe.json4s3.stream.token.whitespace$Parser@33dbcb75,Work( ))
346 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',))
347parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
348 output tokens = List(WhiteSpace( ))
349input char 's' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',s))
350parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
351parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
352parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
353parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
354parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
355parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
356parse IntNumber(2) => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsInt(2))),Some(Init)),None))
357parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsInt(2)))))))
358========================================
359json {'a':1,'b':2}
360 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',s))
361 output tokens = List()
362input char 't' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',st))
363 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',st))
364 output tokens = List()
365input char 'r' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',str))
366 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',str))
367 output tokens = List()
368input char 'i' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',stri))
369 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',stri))
370 output tokens = List()
371input char 'n' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',strin))
372 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',strin))
373 output tokens = List()
374input char 'g' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',string))
375 output state = StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',string))
376 output tokens = List()
377input char ''' input.state=StrParse(xyz.cofe.json4s3.stream.token.string$Parser@6a775dfa,SimpleChar(',string))
378 output state = Init
379 output tokens = List(Str(string))
380parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
381IntNumber(12)
382WhiteSpace( )
383Identifier(true)
384parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
385parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
386parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
387One(1) to json
388xyz.cofe.json4s3.stream.token.TokenizerTest:
389 + test 0.012s
390 + sample 0.001s
391 + multiple 0.016s
392 + parse string 0.0s
393============================================================
394parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
395parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
396parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
397parse IntNumber(2) => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsInt(2))),Some(Init)),None))
398parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsInt(2)))))))
399========================================
400object {'a':1,'b':[]}
401parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
402parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
403parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
404parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
405parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
406{"One":{"a":1}}
407json to One
408============================================================
409parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
410parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
411parse OpenSquare => Right((ArrExpectValue(List(),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
412parse CloseSquare => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsArray(List()))),Some(Init)),None))
413parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsArray(List())))))))
414JsNull(2)
415Sum(
416 1 > JsNull
417 1 > JsStr
418)
419
420========================================
421object {'a':1,'b':[1]}
422parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
423parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
424parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
425parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
426parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
427parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
428parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
429parse OpenSquare => Right((ArrExpectValue(List(),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
430parse IntNumber(1) => Right((ArrExpectComma(List(JsInt(1)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
431parse CloseSquare => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsArray(List(JsInt(1))))),Some(Init)),None))
432parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsArray(List(JsInt(1)))))))))
433========================================
434json {'a':1,'b':[1,{}]}
435parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
436parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
437parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
438parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
439parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
440parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
441parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
442parse OpenSquare => Right((ArrExpectValue(List(),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
443parse IntNumber(1) => Right((ArrExpectComma(List(JsInt(1)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
444parse Comma => Right((ArrAfterComma(List(JsInt(1)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
445parse OpenBrace => Right((ObjExpFieldName(List(),Some(ArrExpectValue(List(JsInt(1)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))))),None))
446parse CloseBrace => Right((ArrExpectComma(List(JsInt(1), JsObj(List())),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
447parse CloseSquare => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsArray(List(JsInt(1), JsObj(List()))))),Some(Init)),None))
448Sum(
449 3 > JsNull
450 1 > JsStr
451)
452
453parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsArray(List(JsInt(1), JsObj(List())))))))))
454prod merge
455============================================================
456========================================
457json {'a':1,'b':[2,{'c':3}]}
458{
459 a : Sum(
460 1 > JsNull
461 1 > JsBool
462 )
463 b : JsInt
464 c : JsStr
465}
466
467tokens:
468Right(One(1))
469 OpenBrace
470 Str(a)
471 Colon
472 IntNumber(1)
473 Comma
474 Str(b)
475 Colon
476 OpenSquare
477 IntNumber(2)
478 Comma
479 OpenBrace
480 Str(c)
481prod merge atom
482 Colon
483 IntNumber(3)
484============================================================
485 CloseBrace
486 CloseSquare
487 CloseBrace
488Sum(
489 1 > {
490 a : JsNull
491 b : JsInt
492 }
493 1 > JsStr
494)
495
496prod merge sum
497============================================================
498parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
499parse Str(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
500parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
501Two(1,2) to json
502============================================================
503{"Two":{"a":1,"b":"abc"}}
504xyz.cofe.json4s3.derv.SumTypeTest:
505 + One(1) to json 0.01s
506 + json to One 0.017s
507 + Two(1,2) to json 0.001s
508parse IntNumber(1) => Right((ObjExpectComma(List((a,JsInt(1))),Some(Init)),None))
509parse Comma => Right((ObjAfterComma(List((a,JsInt(1))),Some(Init)),None))
510parse Str(b) => Right((ObjAfterFieldName(b,List((a,JsInt(1))),Some(Init)),None))
511parse Colon => Right((ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)),None))
512parse OpenSquare => Right((ArrExpectValue(List(),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
513parse IntNumber(2) => Right((ArrExpectComma(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
514parse Comma => Right((ArrAfterComma(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
515parse OpenBrace => Right((ObjExpFieldName(List(),Some(ArrExpectValue(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))))),None))
516parse Str(c) => Right((ObjAfterFieldName(c,List(),Some(ArrExpectValue(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))))),None))
517parse Colon => Right((ObjExpFieldValue(c,List(),Some(ArrExpectValue(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))))),None))
518parse IntNumber(3) => Right((ObjExpectComma(List((c,JsInt(3))),Some(ArrExpectValue(List(JsInt(2)),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))))),None))
519parse CloseBrace => Right((ArrExpectComma(List(JsInt(2), JsObj(List((c,JsInt(3))))),Some(ObjExpFieldValue(b,List((a,JsInt(1))),Some(Init)))),None))
520parse CloseSquare => Right((ObjExpectComma(List((a,JsInt(1)), (b,JsArray(List(JsInt(2), JsObj(List((c,JsInt(3)))))))),Some(Init)),None))
521parse CloseBrace => Right((Init,Some(JsObj(List((a,JsInt(1)), (b,JsArray(List(JsInt(2), JsObj(List((c,JsInt(3))))))))))))
522100 {"value":"100"} Right(Sample(Some(100)))
5231000 {"value":"1000"} Right(Sample(Some(1000)))
52410000 {"value":"10000"} Right(Sample(Some(10000)))
525========================================
526json {a:[[]]}
52740000 {"value":"40000"} Right(Sample(Some(40000)))
528tokens:
529xyz.cofe.json4s3.derv.OptLongTest:
530 + store opt long 0.046s
531 OpenBrace
532 Identifier(a)
533 Colon
534 OpenSquare
535 OpenSquare
536 CloseSquare
537 CloseSquare
538 CloseBrace
539parse OpenBrace => Right((ObjExpFieldName(List(),Some(Init)),None))
540parse Identifier(a) => Right((ObjAfterFieldName(a,List(),Some(Init)),None))
541parse Colon => Right((ObjExpFieldValue(a,List(),Some(Init)),None))
542parse OpenSquare => Right((ArrExpectValue(List(),Some(ObjExpFieldValue(a,List(),Some(Init)))),None))
543parse OpenSquare => Right((ArrExpectValue(List(),Some(ArrExpectValue(List(),Some(ObjExpFieldValue(a,List(),Some(Init)))))),None))
544parse CloseSquare => Right((ArrExpectComma(List(JsArray(List())),Some(ObjExpFieldValue(a,List(),Some(Init)))),None))
545parse CloseSquare => Right((ObjExpectComma(List((a,JsArray(List(JsArray(List()))))),Some(Init)),None))
546Sum(
547 1 > {
548 a : JsNull
549 b : JsInt
550 }
551 1 > JsStr
552 1 > JsBool
553)
554
555nested prod merge
556============================================================
557{
558 c : {
559 a : JsNull(2)
560 b : JsStr
561 c : JsStr
562 }
563 d : JsInt
564}
565
566parse CloseBrace => Right((Init,Some(JsObj(List((a,JsArray(List(JsArray(List())))))))))
567xyz.cofe.json4s3.desc.JsTypeTest:
568 + merge 1 0.012s
569 + prod merge 0.002s
570 + prod merge atom 0.0s
571 + prod merge sum 0.009s
572 + nested prod merge 0.002s
573========================================
574comment parse
575SLComment(sample
576)
577OpenSquare
578WhiteSpace( )
579MLComment( cmnt )
580WhiteSpace( )
581IntNumber(1)
582WhiteSpace( )
583CloseSquare
584WhiteSpace(
585)
586SLComment(last comment
587)
588WhiteSpace( )
589JsArray(List(JsInt(1)))
590xyz.cofe.json4s3.stream.ast.ParserTest:
591 + atomic str 0.003s
592 + atomic int 0.0s
593 + atomic float 0.008s
594 + atomic bigint 0.005s
595 + atomic null 0.001s
596 + atomic true 0.0s
597 + atomic false 0.004s
598 + emptry array 0.008s
599 + array[ 1 ] 0.004s
600 + array[ 1,2 ] 0.006s
601 + array[ 1,2, ] 0.006s
602 + object {} 0.01s
603 + object {'a':1} 0.005s
604 + object {'a':1,} 0.005s
605 + object {'a':1,'b':2} 0.005s
606 + json {'a':1,'b':2} 0.006s
607 + json {'a':1,'b':[]} 0.011s
608 + json {'a':1,'b':[1]} 0.004s
609 + json {'a':1,'b':[1,{}]} 0.004s
610 + json {'a':1,'b':[2,{'c':3}]} 0.009s
611 + json {a:[[]]} 0.005s
612 + comment parse 0.006s
613Sample
614type=product label=Sample labels=List(a, b) values=Map(a -> 1, b -> 2)
615ADT.Simbol
616type=product label=Simbol labels=List() values=Map()
617ADT
618type=sum label=ADT labels=List(Simbol, One, Two) values=Map(ord -> 0, show -> type=product label=Simbol labels=List() values=Map())
619ADT.One
620type=product label=One labels=List(a) values=Map(a -> 3)
621ADT
622type=sum label=ADT labels=List(Simbol, One, Two) values=Map(ord -> 1, show -> type=product label=One labels=List(a) values=Map(a -> 3))
623xyz.cofe.json4s3.derv.sample.SampleDeriveTest:
624 + tst 0.022s
625char='"' state Init => SimpleChar(",)
626char='a' state SimpleChar(",a) => SimpleChar(",a)
627char='b' state SimpleChar(",ab) => SimpleChar(",ab)
628char='c' state SimpleChar(",abc) => SimpleChar(",abc)
629char='"' state SimpleChar(",abc) => Finish(abc)
630end state Finish(abc) => Finish(abc)
631matched input=""abc"" expect="abc" res"abc"
632char=''' state Init => SimpleChar(',)
633char='a' state SimpleChar(',a) => SimpleChar(',a)
634char='b' state SimpleChar(',ab) => SimpleChar(',ab)
635char='c' state SimpleChar(',abc) => SimpleChar(',abc)
636char=''' state SimpleChar(',abc) => Finish(abc)
637end state Finish(abc) => Finish(abc)
638matched input="'abc'" expect="abc" res"abc"
639char=''' state Init => SimpleChar(',)
640char='a' state SimpleChar(',a) => SimpleChar(',a)
641char='\' state SimpleChar(',a) => EscStart(',a)
642char=''' state EscStart(',a') => SimpleChar(',a')
643char='b' state SimpleChar(',a'b) => SimpleChar(',a'b)
644char='c' state SimpleChar(',a'bc) => SimpleChar(',a'bc)
645char=''' state SimpleChar(',a'bc) => Finish(a'bc)
646end state Finish(a'bc) => Finish(a'bc)
647matched input="'a\'bc'" expect="a'bc" res"a'bc"
648-------------
649char=''' state Init => SimpleChar(',)
650char='a' state SimpleChar(',a) => SimpleChar(',a)
651char='\' state SimpleChar(',a) => EscStart(',a)
652char='"' state EscStart(',a") => SimpleChar(',a")
653char='b' state SimpleChar(',a"b) => SimpleChar(',a"b)
654char='c' state SimpleChar(',a"bc) => SimpleChar(',a"bc)
655char=''' state SimpleChar(',a"bc) => Finish(a"bc)
656end state Finish(a"bc) => Finish(a"bc)
657matched input="'a\"bc'" expect="a"bc" res"a"bc"
658Right(List(1, 2))
659char=''' state Init => SimpleChar(',)
660char='a' state SimpleChar(',a) => SimpleChar(',a)
661char='\' state SimpleChar(',a) => EscStart(',a)
662char='0' state EscStart(',a) => EscZero(',a)
663char=''' state EscZero(',a) => Finish(a)
664end state Finish(a) => Finish(a)
665matched input="'a\0'" expect="a" res"a"
666xyz.cofe.json4s3.stream.token.TokenIteratorTest:
667 + read tokens 0.005s
668========================================
669case class(a:Int, b:String)
670char=''' state Init => SimpleChar(',)
671char='a' state SimpleChar(',a) => SimpleChar(',a)
672char='\' state SimpleChar(',a) => EscStart(',a)
673char='b' state EscStart(',a) => SimpleChar(',a)
674char=''' state SimpleChar(',a) => Finish(a)
675end state Finish(a) => Finish(a)
676matched input="'a\b'" expect="a" res"a"
677char=''' state Init => SimpleChar(',)
678char='a' state SimpleChar(',a) => SimpleChar(',a)
679char='\' state SimpleChar(',a) => EscStart(',a)
680char='f' state EscStart(',a) => SimpleChar(',a)
681char=''' state SimpleChar(',a) => Finish(a)
682end state Finish(a) => Finish(a)
683matched input="'a\f'" expect="a" res"a"
684json 0.6555160421545295 ["exbj" ,"rkywjqbp""cgh"]-843030610 2095595607 1990915551 true"qk" "oqfc" "fw"[899008768,0.5760522839470316:"vb"-1456225182"qbwdww"false"ptgzwix""nnwngpgh" "hvdb""gu""gi""unzh""hbq" }"fuflam""dvbjawxjb"false"up"0.4281106632906866"zlexvb" "myf"-1372958520"xrxeeqj"2209684829016822360n null 1869656369 "qnjf" "pqnzqyzj"}"hyz"}"mf" "iuyzavj""jgwyf""upregdcz""ro"1087535448075819771n ,true"ppg"0.30398435189344586"zpeveiw",1892666125 11066922395160615n"xlucyqkhy" 567248378"pwccuxzd""eu""tswlu"["zz"true}"lsfhu" null 451366894
685char=''' state Init => SimpleChar(',)
686char='a' state SimpleChar(',a) => SimpleChar(',a)
687char='\' state SimpleChar(',a) => EscStart(',a)
688char='n' state EscStart(',a
689) => SimpleChar(',a
690)
691char=''' state SimpleChar(',a
692) => Finish(a
693)
694end state Finish(a
695) => Finish(a
696)
697matched input="'a\n'" expect="a\n" res"a\n"
698char=''' state Init => SimpleChar(',)
699char='a' state SimpleChar(',a) => SimpleChar(',a)
700char='\' state SimpleChar(',a) => EscStart(',a)
701char='r' state EscStart(',a
702) => SimpleChar(',a
703)
704char=''' state SimpleChar(',a
705) => Finish(a
706)
707end state Finish(a
708) => Finish(a
709)
710matched input="'a\r'" expect="a\r" res"a\r"
711char=''' state Init => SimpleChar(',)
712char='a' state SimpleChar(',a) => SimpleChar(',a)
713char='\' state SimpleChar(',a) => EscStart(',a)
714char='t' state EscStart(',a ) => SimpleChar(',a )
715char=''' state SimpleChar(',a ) => Finish(a )
716end state Finish(a ) => Finish(a )
717matched input="'a\t'" expect="a " res"a "
718Some({"a":1,"b":"str"})
719char=''' state Init => SimpleChar(',)
720char='a' state SimpleChar(',a) => SimpleChar(',a)
721char='\' state SimpleChar(',a) => EscStart(',a)
722char='v' state EscStart(',a) => SimpleChar(',a)
723char=''' state SimpleChar(',a) => Finish(a)
724end state Finish(a) => Finish(a)
725matched input="'a\v'" expect="a" res"a"
726char=''' state Init => SimpleChar(',)
727char='a' state SimpleChar(',a) => SimpleChar(',a)
728char='\' state SimpleChar(',a) => EscStart(',a)
729========================================
730case class( a:Option[Int], b:Boolean )
731true FloatNumber(0.6555160421545295) FloatNumber(0.6555160421545295)
732true WhiteSpace( ) WhiteSpace( )
733true OpenSquare OpenSquare
734true Str(exbj) Str(exbj)
735true WhiteSpace( ) WhiteSpace( )
736true Comma Comma
737true Str(rkywjqbp) Str(rkywjqbp)
738true Str(cgh) Str(cgh)
739true CloseSquare CloseSquare
740true IntNumber(-843030610) IntNumber(-843030610)
741true WhiteSpace( ) WhiteSpace( )
742true IntNumber(2095595607) IntNumber(2095595607)
743true WhiteSpace( ) WhiteSpace( )
744true IntNumber(1990915551) IntNumber(1990915551)
745true WhiteSpace( ) WhiteSpace( )
746{"b":true}
747true Identifier(true) Identifier(true)
748true Str(qk) Str(qk)
749true WhiteSpace( ) WhiteSpace( )
750true Str(oqfc) Str(oqfc)
751true WhiteSpace( ) WhiteSpace( )
752true Str(fw) Str(fw)
753true OpenSquare OpenSquare
754true IntNumber(899008768) IntNumber(899008768)
755true Comma Comma
756true FloatNumber(0.5760522839470316) FloatNumber(0.5760522839470316)
757true Colon Colon
758true Str(vb) Str(vb)
759true IntNumber(-1456225182) IntNumber(-1456225182)
760true Str(qbwdww) Str(qbwdww)
761true Identifier(false) Identifier(false)
762true Str(ptgzwix) Str(ptgzwix)
763true Str(nnwngpgh) Str(nnwngpgh)
764true WhiteSpace( ) WhiteSpace( )
765true Str(hvdb) Str(hvdb)
766true Str(gu) Str(gu)
767true Str(gi) Str(gi)
768true Str(unzh) Str(unzh)
769true Str(hbq) Str(hbq)
770true WhiteSpace( ) WhiteSpace( )
771true CloseBrace CloseBrace
772true Str(fuflam) Str(fuflam)
773true Str(dvbjawxjb) Str(dvbjawxjb)
774true Identifier(false) Identifier(false)
775true Str(up) Str(up)
776true FloatNumber(0.4281106632906866) FloatNumber(0.4281106632906866)
777true Str(zlexvb) Str(zlexvb)
778true WhiteSpace( ) WhiteSpace( )
779true Str(myf) Str(myf)
780true IntNumber(-1372958520) IntNumber(-1372958520)
781true Str(xrxeeqj) Str(xrxeeqj)
782true BigNumber(2209684829016822360) BigNumber(2209684829016822360)
783true WhiteSpace( ) WhiteSpace( )
784true Identifier(null) Identifier(null)
785true WhiteSpace( ) WhiteSpace( )
786true IntNumber(1869656369) IntNumber(1869656369)
787true WhiteSpace( ) WhiteSpace( )
788true Str(qnjf) Str(qnjf)
789true WhiteSpace( ) WhiteSpace( )
790true Str(pqnzqyzj) Str(pqnzqyzj)
791true CloseBrace CloseBrace
792true Str(hyz) Str(hyz)
793true CloseBrace CloseBrace
794true Str(mf) Str(mf)
795true WhiteSpace( ) WhiteSpace( )
796true Str(iuyzavj) Str(iuyzavj)
797true Str(jgwyf) Str(jgwyf)
798true Str(upregdcz) Str(upregdcz)
799true Str(ro) Str(ro)
800true BigNumber(1087535448075819771) BigNumber(1087535448075819771)
801true WhiteSpace( ) WhiteSpace( )
802true Comma Comma
803true Identifier(true) Identifier(true)
804true Str(ppg) Str(ppg)
805true FloatNumber(0.30398435189344586) FloatNumber(0.30398435189344586)
806true Str(zpeveiw) Str(zpeveiw)
807true Comma Comma
808true IntNumber(1892666125) IntNumber(1892666125)
809true WhiteSpace( ) WhiteSpace( )
810true BigNumber(11066922395160615) BigNumber(11066922395160615)
811true Str(xlucyqkhy) Str(xlucyqkhy)
812true WhiteSpace( ) WhiteSpace( )
813true IntNumber(567248378) IntNumber(567248378)
814true Str(pwccuxzd) Str(pwccuxzd)
815true Str(eu) Str(eu)
816true Str(tswlu) Str(tswlu)
817true OpenSquare OpenSquare
818true Str(zz) Str(zz)
819true Identifier(true) Identifier(true)
820true CloseBrace CloseBrace
821true Str(lsfhu) Str(lsfhu)
822true WhiteSpace( ) WhiteSpace( )
823true Identifier(null) Identifier(null)
824true WhiteSpace( ) WhiteSpace( )
825true IntNumber(451366894) IntNumber(451366894)
826true WhiteSpace( ) WhiteSpace( )
827Right(Sample2(None,Some(true)))
828xyz.cofe.json4s3.stream.token.TokenizerRandomTest:
829 + parse random tokens 0.052s
830char='1' state EscStart(',a) => EscOct(',a,List(1))
831char='5' state EscOct(',a,List(1)) => EscOct(',a,List(1, 5))
832{"a":998,"b":false}
833{"int":1,"float":2.5,"big":123456789012345678901234567890n,"null":null,"true":true,"false":false,"array":[1,2,3]}
834char='7' state EscOct(',ao,List(1, 5)) => SimpleChar(',ao)
835char=''' state SimpleChar(',ao) => Finish(ao)
836end state Finish(ao) => Finish(ao)
837matched input="'a\157'" expect="ao" res"ao"
838char=''' state Init => SimpleChar(',)
839char='a' state SimpleChar(',a) => SimpleChar(',a)
840char='\' state SimpleChar(',a) => EscStart(',a)
841===================
842=== show test ====
843char='x' state EscStart(',a) => EscHex(',a,List())
844char='A' state EscHex(',a,List()) => EscHex(',a,List(10))
845char='1' state EscHex(',a¡,List(10)) => SimpleChar(',a¡)
846char=''' state SimpleChar(',a¡) => Finish(a¡)
847end state Finish(a¡) => Finish(a¡)
848matched input="'a\xA1'" expect="a¡" res"a¡"
849char=''' state Init => SimpleChar(',)
850char='a' state SimpleChar(',a) => SimpleChar(',a)
851char='\' state SimpleChar(',a) => EscStart(',a)
852char='x' state EscStart(',a) => EscHex(',a,List())
853char='a' state EscHex(',a,List()) => EscHex(',a,List(10))
854char='2' state EscHex(',a¢,List(10)) => SimpleChar(',a¢)
855char=''' state SimpleChar(',a¢) => Finish(a¢)
856end state Finish(a¢) => Finish(a¢)
857matched input="'a\xa2'" expect="a¢" res"a¢"
858char=''' state Init => SimpleChar(',)
859char='a' state SimpleChar(',a) => SimpleChar(',a)
860char='\' state SimpleChar(',a) => EscStart(',a)
861Right(Sample2(Some(998),Some(false)))
862jsTree JsObj(List((int,JsInt(1)), (float,JsFloat(2.5)), (big,JsBig(123456789012345678901234567890)), (null,JsNull), (true,JsBool(true)), (false,JsBool(false)), (array,JsArray(List(JsInt(1), JsInt(2), JsInt(3))))))
863char='u' state EscStart(',a) => EscUnicodeStart(',a)
864char='0' state EscUnicodeStart(',a) => EscUnicode4digit(',a,List(0))
865char='0' state EscUnicode4digit(',a,List(0)) => EscUnicode4digit(',a,List(0, 0))
866char='a' state EscUnicode4digit(',a,List(0, 0)) => EscUnicode4digit(',a,List(0, 0, 10))
867char='2' state EscUnicode4digit(',a¢,List(0, 0, 10)) => SimpleChar(',a¢)
868char=''' state SimpleChar(',a¢) => Finish(a¢)
869end state Finish(a¢) => Finish(a¢)
870matched input="'a\u00a2'" expect="a¢" res"a¢"
871========================================
872parse unicode 5
873char=''' state Init => SimpleChar(',)
874char='a' state SimpleChar(',a) => SimpleChar(',a)
875char='\' state SimpleChar(',a) => EscStart(',a)
876char='u' state EscStart(',a) => EscUnicodeStart(',a)
877char='{' state EscUnicodeStart(',a) => EscUnicode5digit(',a,List())
878char='0' state EscUnicode5digit(',a,List()) => EscUnicode5digit(',a,List(0))
879char='0' state EscUnicode5digit(',a,List(0)) => EscUnicode5digit(',a,List(0, 0))
880char='0' state EscUnicode5digit(',a,List(0, 0)) => EscUnicode5digit(',a,List(0, 0, 0))
881char='a' state EscUnicode5digit(',a,List(0, 0, 0)) => EscUnicode5digit(',a,List(0, 0, 0, 10))
882char='2' state EscUnicode5digit(',a,List(0, 0, 0, 10)) => EscUnicode5digit(',a,List(0, 0, 0, 10, 2))
883char='}' state EscUnicode5digit(',a¢,List(0, 0, 0, 10, 2)) => SimpleChar(',a¢)
884char=''' state SimpleChar(',a¢) => Finish(a¢)
885end state Finish(a¢) => Finish(a¢)
886matched input="'a\u{000a2}'" expect="a¢" res"a¢"
887xyz.cofe.json4s3.stream.token.StringTest:
888 + parse "abc" 0.008s
889 + parse 'abc' 0.0s
890 + parse 'a\\'bc' 0.001s
891 + parse 'a\\"bc' 0.008s
892 + parse 'a\\0' 0.001s
893 + parse 'a\\b' 0.003s
894 + parse 'a\\f' 0.004s
895 + parse 'a\\n' 0.001s
896 + parse 'a\\r' 0.001s
897 + parse 'a\\t' 0.0s
898 + parse 'a\\v' 0.001s
899 + parse oct 0.011s
900 + parse hex A1 0.001s
901 + parse hex a2 0.001s
902 + parse unicode 4 0.004s
903 + parse unicode 5 0.003s
904xyz.cofe.json4s3.stream.ast.AST2JsonTest:
905 + ast2json 0.015s
9065, 6, 1, 2, 3,
907xyz.cofe.json4s3.stream.token.ShowTest:
908 + show test 0.023s
909xyz.cofe.json4s3.derv.DerivingTest:
910 + 123 as int 0.0s
911 + 1.3 as int 0.0s
912 + 123 as short 0.001s
913 + 123 as byte 0.011s
914 + 1.3 as float 0.001s
915 + 1.3 as double 0.001s
916 + 123 as long 0.006s
917 + true as boolean 0.001s
918 + false as boolean 0.001s
919 + [1,2] as List[Int] 0.006s
920 + str to json 0.0s
921 + int to json 0.001s
922 + list[1,2] to json 0.001s
923 + case class(a:Int, b:String) 0.008s
924 + case class( a:Option[Int], b:Boolean ) 0.014s
925 + builder 0.015s
926 + default 0.005s
927 + bignum 0.0s
928xyz.cofe.json4s3.stream.ast.ParserRandomTest:
929 + try parse 0.025s
930
931************************
932Build summary:
933[{
934 "module": "json4s3",
935 "compile": {"status": "ok", "tookMs": 17456, "warnings": 2, "errors": 0, "sourceVersion": "3.8"},
936 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
937 "test-compile": {"status": "ok", "tookMs": 5613, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
938 "test": {"status": "ok", "tookMs": 742, "passed": 113, "failed": 0, "ignored": 0, "skipped": 0, "total": 113, "byFramework": [{"framework": "munit", "stats": {"passed": 113, "failed": 0, "ignored": 0, "skipped": 0, "total": 113}}]},
939 "publish": {"status": "skipped", "tookMs": 0},
940 "metadata": {
941 "crossScalaVersions": ["2.12.20", "3.2.0"]
942}
943}]
944************************
945[success] Total time: 37 s, completed Dec 4, 2025, 12:49:25 PM
946[0JChecking patch src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala...
947Checking patch project/plugins.sbt...
948Checking patch project/build.properties...
949Checking patch build.sbt...
950Applied patch src/test/scala/xyz/cofe/json4s3/stream/token/LexerTest.scala cleanly.
951Applied patch project/plugins.sbt cleanly.
952Applied patch project/build.properties cleanly.
953Applied patch build.sbt cleanly.