Build Logs
appliedtopology/tda4j • 3.8.0-RC4:2025-12-22
Errors
2
Warnings
172
Total Lines
747
1##################################
2Clonning https://github.com/appliedtopology/tda4j.git into /build/repo using revision v0.1.0-alpha
3##################################
4Note: switching to '96839b1bf023d68eaaff69cc26126c8e32038116'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Using target Scala version for migration: 3.7.4
22Migrating project for -source:3.4 using Scala 3.7.4
23----
24Preparing build for 3.7.4
25Would try to apply common scalacOption (best-effort, sbt/mill only):
26Append: -rewrite,REQUIRE:-source:3.4-migration
27Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
28----
29Starting build for 3.7.4
30Execute tests: false
31sbt project found:
32Sbt version 1.9.9 is not supported, minimal supported version is 1.11.5
33Enforcing usage of sbt in version 1.11.5
34No prepare script found for project appliedtopology/tda4j
35##################################
36Scala version: 3.7.4
37Targets: org.appliedtopology%tda4j
38Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
39##################################
40Using extra scalacOptions: -rewrite,REQUIRE:-source:3.4-migration
41Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
42[sbt_options] declare -a sbt_options=()
43[process_args] java_version = '17'
44[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
45# Executing command line:
46java
47-Dfile.encoding=UTF-8
48-Dcommunitybuild.scala=3.7.4
49-Dcommunitybuild.project.dependencies.add=
50-Xmx7G
51-Xms4G
52-Xss8M
53-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
54-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
55-jar
56/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
57"setCrossScalaVersions 3.7.4"
58"++3.7.4 -v"
59"mapScalacOptions "-rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s" "-indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
60"set every credentials := Nil"
61"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
62"removeScalacOptionsStartingWith -P:wartremover"
63
64moduleMappings
65"runBuild 3.7.4 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}""" org.appliedtopology%tda4j"
66
67[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
68[info] loading project definition from /build/repo/project/project
69[info] loading settings for project repo-build from akka.sbt, paradox.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.73s.
74[info] done compiling
75[info] loading settings for project root from build.sbt, version.sbt...
76[info] set current project to TDA4j (in build file:/build/repo/)
77Execute setCrossScalaVersions: 3.7.4
78OpenCB::Changing crossVersion 3.3.0 -> 3.7.4 in root/crossScalaVersions
79OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.7.4) in root/crossScalaVersions
80[info] set current project to TDA4j (in build file:/build/repo/)
81[info] Setting Scala version to 3.7.4 on 1 projects.
82[info] Switching Scala version on:
83[info] * root (3.7.4)
84[info] Excluding projects:
85[info] Reapplying settings...
86[info] set current project to TDA4j (in build file:/build/repo/)
87Execute mapScalacOptions: -rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
88[info] Reapplying settings...
89[info] set current project to TDA4j (in build file:/build/repo/)
90[info] Defining Global / credentials, credentials
91[info] The new values will be used by allCredentials, credentials and 2 others.
92[info] Run `last` for details.
93[info] Reapplying settings...
94[info] set current project to TDA4j (in build file:/build/repo/)
95Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
96[info] Reapplying settings...
97OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
98
99 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
100 Did you mean allExcludeDependencies ?
101 , retry without global scopes
102[info] Reapplying settings...
103[info] set current project to TDA4j (in build file:/build/repo/)
104Execute removeScalacOptionsStartingWith: -P:wartremover
105[info] Reapplying settings...
106[info] set current project to TDA4j (in build file:/build/repo/)
107[success] Total time: 0 s, completed Dec 22, 2025, 7:51:35 PM
108Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
109Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),CompileOnly,List()))
110Starting build...
111Projects: Set(root)
112Starting build for ProjectRef(file:/build/repo/,root) (tda4j)... [0/1]
113OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
114OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4-migration` in Scala 2.12.20 module Global
115Compile scalacOptions: -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
116[info] compiling 12 Scala sources to /build/repo/target/scala-3.7.4/classes ...
117[warn] -- [E194] Potential Issue Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/FiniteField.scala:29:8
118[warn] 29 | def toString: String = s"Fp(${fp.norm})"
119[warn] | ^
120[warn] |Extension method toString will never be selected from type Any
121[warn] |because Any already has a member with the same name and compatible parameter types.
122[warn] |
123[warn] | longer explanation available when compiling with `-explain`
124[warn] -- [E194] Potential Issue Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Simplex.scala:40:8
125[warn] 40 | def className = "Simplex"
126[warn] | ^
127[warn] |Extension method className will never be selected from type AbstractSimplex
128[warn] |because AbstractSimplex already has a member with the same name and compatible parameter types.
129[warn] |
130[warn] | longer explanation available when compiling with `-explain`
131[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Barcode.scala:64:23
132[warn] 64 | val open: String = lower match {
133[warn] | ^^^^^
134[warn] |match may not be exhaustive.
135[warn] |
136[warn] |It would fail on pattern case: org.appliedtopology.tda4j.barcode.PositiveInfinity()
137[warn] |
138[warn] | longer explanation available when compiling with `-explain`
139[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Barcode.scala:69:25
140[warn] 69 | val closed: String = upper match {
141[warn] | ^^^^^
142[warn] |match may not be exhaustive.
143[warn] |
144[warn] |It would fail on pattern case: org.appliedtopology.tda4j.barcode.NegativeInfinity()
145[warn] |
146[warn] | longer explanation available when compiling with `-explain`
147[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:62:11
148[warn] 62 | case that: MapChain[CellT, CoefficientT] =>
149[warn] | ^
150[warn] |the type test for org.appliedtopology.tda4j.MapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
151[warn] |
152[warn] | longer explanation available when compiling with `-explain`
153[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:217:9
154[warn] 217 | case that: HeapChain[CellT, CoefficientT] =>
155[warn] | ^
156[warn] |the type test for org.appliedtopology.tda4j.HeapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
157[warn] |
158[warn] | longer explanation available when compiling with `-explain`
159[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/VietorisRips.scala]
160[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala]
161[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/SymmetryGroup.scala]
162[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/Simplex.scala]
163[warn] there was 1 deprecation warning; re-run with -deprecation for details
164[warn] 7 warnings found
165[info] done compiling
166[info] compiling 4 Scala sources to /build/repo/target/scala-3.7.4/classes ...
167[warn] -- [E194] Potential Issue Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Simplex.scala:40:8
168[warn] 40 | def className = "Simplex"
169[warn] | ^
170[warn] |Extension method className will never be selected from type AbstractSimplex
171[warn] |because AbstractSimplex already has a member with the same name and compatible parameter types.
172[warn] |
173[warn] | longer explanation available when compiling with `-explain`
174[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:62:11
175[warn] 62 | case that: MapChain[CellT, CoefficientT] =>
176[warn] | ^
177[warn] |the type test for org.appliedtopology.tda4j.MapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
178[warn] |
179[warn] | longer explanation available when compiling with `-explain`
180[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:217:9
181[warn] 217 | case that: HeapChain[CellT, CoefficientT] =>
182[warn] | ^
183[warn] |the type test for org.appliedtopology.tda4j.HeapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
184[warn] |
185[warn] | longer explanation available when compiling with `-explain`
186[warn] there was 1 deprecation warning; re-run with -deprecation for details
187[warn] four warnings found
188[info] done compiling
189[info] compiling 13 Scala sources to /build/repo/target/scala-3.7.4/test-classes ...
190[warn] -- Warning: /build/repo/src/test/scala/org/appliedtopology/tda4j/ChainSpec.scala:18:18
191[warn] 18 | MapChain.apply
192[warn] | ^
193[warn] |Result of implicit search for Ordering[Int] will change.
194[warn] |Current result ChainSpec.this.given_Ordering_Int will be no longer eligible
195[warn] | because it is not defined before the search position.
196[warn] |Result with new rules: scala.math.Ordering.Int.
197[warn] |To opt into the new rules, compile with `-source future` or use
198[warn] |the `scala.language.future` language import.
199[warn] |
200[warn] |To fix the problem without the language import, you could try one of the following:
201[warn] | - use a `given ... with` clause as the enclosing given,
202[warn] | - rearrange definitions so that ChainSpec.this.given_Ordering_Int comes earlier,
203[warn] | - use an explicit argument.
204[warn] |This will be an error in Scala 3.5 and later.
205[warn] -- [E129] Potential Issue Warning: /build/repo/src/test/scala/org/appliedtopology/tda4j/SimplexSpec.scala:113:2
206[warn] 113 | """Testing the implicit context approach to working with simplices"""
207[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
208[warn] | A pure expression does nothing in statement position
209[warn] |
210[warn] | longer explanation available when compiling with `-explain`
211[info] [patched file /build/repo/src/test/scala/org/appliedtopology/tda4j/ChainSpec.scala]
212[warn] there were 78 feature warnings; re-run with -feature for details
213[warn] three warnings found
214[info] done compiling
215[info] compiling 1 Scala source to /build/repo/target/scala-3.7.4/test-classes ...
216[warn] -- Warning: /build/repo/src/test/scala/org/appliedtopology/tda4j/ChainSpec.scala:18:18
217[warn] 18 | MapChain.apply
218[warn] | ^
219[warn] |Result of implicit search for Ordering[Int] will change.
220[warn] |Current result ChainSpec.this.given_Ordering_Int will be no longer eligible
221[warn] | because it is not defined before the search position.
222[warn] |Result with new rules: scala.math.Ordering.Int.
223[warn] |To opt into the new rules, compile with `-source future` or use
224[warn] |the `scala.language.future` language import.
225[warn] |
226[warn] |To fix the problem without the language import, you could try one of the following:
227[warn] | - use a `given ... with` clause as the enclosing given,
228[warn] | - rearrange definitions so that ChainSpec.this.given_Ordering_Int comes earlier,
229[warn] | - use an explicit argument.
230[warn] |This will be an error in Scala 3.5 and later.
231[warn] there were 24 feature warnings; re-run with -feature for details
232[warn] two warnings found
233[info] done compiling
234
235************************
236Build summary:
237[{
238 "module": "tda4j",
239 "compile": {"status": "ok", "tookMs": 10960, "warnings": 6, "errors": 0, "sourceVersion": "3.4-migration"},
240 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
241 "test-compile": {"status": "ok", "tookMs": 8428, "warnings": 2, "errors": 0, "sourceVersion": "3.4-migration"},
242 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
243 "publish": {"status": "ok", "tookMs": 4},
244 "metadata": {
245 "crossScalaVersions": ["2.12.20"]
246}
247}]
248************************
249[success] Total time: 47 s, completed Dec 22, 2025, 7:52:22 PM
250[0JChecking patch project/plugins.sbt...
251Checking patch project/build.properties...
252Checking patch build.sbt...
253Applied patch project/plugins.sbt cleanly.
254Applied patch project/build.properties cleanly.
255Applied patch build.sbt cleanly.
256Commit migration rewrites
257Switched to a new branch 'opencb/migrate-source-3.4'
258[opencb/migrate-source-3.4 22c0fa9] Apply Scala compiler rewrites using -source:3.4-migration using Scala 3.7.4
259 5 files changed, 12 insertions(+), 12 deletions(-)
260----
261Preparing build for 3.8.0-RC4
262Scala binary version found: 3.8
263Using configured source version: 3.4
264Scala binary version found: 3.8
265Using configured source version: 3.4
266Would try to apply common scalacOption (best-effort, sbt/mill only):
267Append: ,REQUIRE:-source:3.4
268Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
269----
270Starting build for 3.8.0-RC4
271Execute tests: true
272sbt project found:
273Sbt version 1.9.9 is not supported, minimal supported version is 1.11.5
274Enforcing usage of sbt in version 1.11.5
275No prepare script found for project appliedtopology/tda4j
276##################################
277Scala version: 3.8.0-RC4
278Targets: org.appliedtopology%tda4j
279Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
280##################################
281Using extra scalacOptions: ,REQUIRE:-source:3.4
282Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
283[sbt_options] declare -a sbt_options=()
284[process_args] java_version = '17'
285[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
286# Executing command line:
287java
288-Dfile.encoding=UTF-8
289-Dcommunitybuild.scala=3.8.0-RC4
290-Dcommunitybuild.project.dependencies.add=
291-Xmx7G
292-Xms4G
293-Xss8M
294-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
295-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
296-jar
297/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
298"setCrossScalaVersions 3.8.0-RC4"
299"++3.8.0-RC4 -v"
300"mapScalacOptions ",REQUIRE:-source:3.4,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
301"set every credentials := Nil"
302"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
303"removeScalacOptionsStartingWith -P:wartremover"
304
305moduleMappings
306"runBuild 3.8.0-RC4 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}""" org.appliedtopology%tda4j"
307
308[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
309[info] loading project definition from /build/repo/project/project
310[info] loading settings for project repo-build from akka.sbt, paradox.sbt, plugins.sbt...
311[info] loading project definition from /build/repo/project
312[info] loading settings for project root from build.sbt, version.sbt...
313[info] set current project to TDA4j (in build file:/build/repo/)
314Execute setCrossScalaVersions: 3.8.0-RC4
315OpenCB::Changing crossVersion 3.3.0 -> 3.8.0-RC4 in root/crossScalaVersions
316OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in root/crossScalaVersions
317[info] set current project to TDA4j (in build file:/build/repo/)
318[info] Setting Scala version to 3.8.0-RC4 on 1 projects.
319[info] Switching Scala version on:
320[info] * root (3.8.0-RC4)
321[info] Excluding projects:
322[info] Reapplying settings...
323[info] set current project to TDA4j (in build file:/build/repo/)
324Execute mapScalacOptions: ,REQUIRE:-source:3.4,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
325[info] Reapplying settings...
326[info] set current project to TDA4j (in build file:/build/repo/)
327[info] Defining Global / credentials, credentials
328[info] The new values will be used by allCredentials, credentials and 2 others.
329[info] Run `last` for details.
330[info] Reapplying settings...
331[info] set current project to TDA4j (in build file:/build/repo/)
332Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
333[info] Reapplying settings...
334OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
335
336 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
337 Did you mean allExcludeDependencies ?
338 , retry without global scopes
339[info] Reapplying settings...
340[info] set current project to TDA4j (in build file:/build/repo/)
341Execute removeScalacOptionsStartingWith: -P:wartremover
342[info] Reapplying settings...
343[info] set current project to TDA4j (in build file:/build/repo/)
344[success] Total time: 0 s, completed Dec 22, 2025, 7:52:32 PM
345Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","sourceVersion":"3.4","migrationVersions":["3.4"],"sourcePatches":[]}
346Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
347Starting build...
348Projects: Set(root)
349Starting build for ProjectRef(file:/build/repo/,root) (tda4j)... [0/1]
350OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4` in Scala 2.12.20 module Global
351Compile scalacOptions: -Wconf:msg=can be rewritten automatically under:s, -source:3.4
352[info] compiling 12 Scala sources to /build/repo/target/scala-3.8.0-RC4/classes ...
353[warn] -- [E194] Potential Issue Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/FiniteField.scala:29:8
354[warn] 29 | def toString: String = s"Fp(${fp.norm})"
355[warn] | ^
356[warn] |Extension method toString will never be selected from type Any
357[warn] |because Any already has a member with the same name and compatible parameter types.
358[warn] |
359[warn] | longer explanation available when compiling with `-explain`
360[warn] -- [E194] Potential Issue Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Simplex.scala:40:8
361[warn] 40 | def className = "Simplex"
362[warn] | ^
363[warn] |Extension method className will never be selected from type AbstractSimplex
364[warn] |because AbstractSimplex already has a member with the same name and compatible parameter types.
365[warn] |
366[warn] | longer explanation available when compiling with `-explain`
367[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Barcode.scala:64:23
368[warn] 64 | val open: String = lower match {
369[warn] | ^^^^^
370[warn] |match may not be exhaustive.
371[warn] |
372[warn] |It would fail on pattern case: org.appliedtopology.tda4j.barcode.PositiveInfinity()
373[warn] |
374[warn] | longer explanation available when compiling with `-explain`
375[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Barcode.scala:69:25
376[warn] 69 | val closed: String = upper match {
377[warn] | ^^^^^
378[warn] |match may not be exhaustive.
379[warn] |
380[warn] |It would fail on pattern case: org.appliedtopology.tda4j.barcode.NegativeInfinity()
381[warn] |
382[warn] | longer explanation available when compiling with `-explain`
383[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:62:11
384[warn] 62 | case that: MapChain[CellT, CoefficientT] =>
385[warn] | ^
386[warn] |the type test for org.appliedtopology.tda4j.MapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
387[warn] |
388[warn] | longer explanation available when compiling with `-explain`
389[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.scala:217:9
390[warn] 217 | case that: HeapChain[CellT, CoefficientT] =>
391[warn] | ^
392[warn] |the type test for org.appliedtopology.tda4j.HeapChain[CellT, CoefficientT] cannot be checked at runtime because its type arguments can't be determined from Any
393[warn] |
394[warn] | longer explanation available when compiling with `-explain`
395[warn] there was 1 deprecation warning; re-run with -deprecation for details
396[warn] 7 warnings found
397[info] done compiling
398[info] compiling 13 Scala sources to /build/repo/target/scala-3.8.0-RC4/test-classes ...
399[warn] -- Warning: /build/repo/src/test/scala/org/appliedtopology/tda4j/ChainSpec.scala:18:18
400[warn] 18 | MapChain.apply
401[warn] | ^
402[warn] |Result of implicit search for Ordering[Int] will change.
403[warn] |Current result ChainSpec.this.given_Ordering_Int will be no longer eligible
404[warn] | because it is not defined before the search position.
405[warn] |Result with new rules: scala.math.Ordering.Int.
406[warn] |To opt into the new rules, compile with `-source future` or use
407[warn] |the `scala.language.future` language import.
408[warn] |
409[warn] |To fix the problem without the language import, you could try one of the following:
410[warn] | - use a `given ... with` clause as the enclosing given,
411[warn] | - rearrange definitions so that ChainSpec.this.given_Ordering_Int comes earlier,
412[warn] | - use an explicit argument.
413[warn] |This will be an error in Scala 3.5 and later.
414[warn] -- [E129] Potential Issue Warning: /build/repo/src/test/scala/org/appliedtopology/tda4j/SimplexSpec.scala:113:2
415[warn] 113 | """Testing the implicit context approach to working with simplices"""
416[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
417[warn] | A pure expression does nothing in statement position
418[warn] |
419[warn] | longer explanation available when compiling with `-explain`
420[warn] there were 78 feature warnings; re-run with -feature for details
421[warn] three warnings found
422[info] done compiling
423Measuring BronKerbosch
424Measuring ZomorodianIncremental
425Measuring SymmetricZomorodianIncremental
426Measuring SymmetricZomorodianIncremental
427BK Initialization: 767 ms
428BK Simplex Stream Size: 255
429BK Traversal: 3 ms
430BK Lookups every 100: 1 ms
431ZI Initialization: 810 ms
432ZI Simplex Stream Size: 255
433ZI Traversal: 1 ms
434ZI Lookups every 100: 0 ms
435SZIG Initialization: 787 ms
436SZIG Simplex Stream Size: 255
437SZI Initialization: 822 ms
438SZI Simplex Stream Size: 255
439[info] SimplexContextSpec
440[info]
441[info] + we can create a simplex, and get the right type
442[info]
443[info]
444[info] Total for specification SimplexContextSpec
445[info] Finished in 934 ms
446[info] 1 example, 0 failure, 0 error
447[info]
448[info] UnionFindSpec
449[info]
450[info] + UnionFind will find exactly the correct edges
451[info]
452[info]
453[info] Total for specification UnionFindSpec
454[info] Finished in 933 ms
455[info] 1 example, 0 failure, 0 error
456[info]
457SZIG Traversal: 95 ms
458SZIG Lookups every 100: 4 ms
459Counting pseudo-minimal elements
460SZIG 79
461SZIG 0
462SZI Traversal: 103 ms
463SZI Lookups every 100: 3 ms
464Measuring MaskedSymmetricRipserVR
465RSSG Initialization: 231 ms
466RSSG Simplex Stream Size: 255
467RSSG Traversal: 2 ms
468RSSG Lookups every 100: 0 ms
469Counting pseudo-minimal elements
470RSSG Pseudo-minimal: 79
471RSSG Non-minimal: 0
472[info] ProfilingSpec
473[info]
474[info] This is a profiling script to measure performance of different implementations.
475[info] + Bron-Kerbosch
476[info] + Zomorodian Incremental
477[info] + Zomorodian Incremental with symmetry
478[info] + Zomorodian Incremental with symmetry group generators
479[info] + Ripser Stream with symmetry group generators
480[info]
481[info]
482[info] Total for specification ProfilingSpec
483[info] Finished in 605 ms
484[info] 5 examples, 0 failure, 0 error
485[info]
486[info] SimplexStreamSpec
487[info]
488[info] Test suite for the abstraction and implementations of `SimplexStream`An ExplicitStream should
489[info] + have simplices
490[info] + have simplices appear in filtration order
491[info] + have subsimplices appear before supersimplices
492[info] + have all simplices, in order
493[info] + be able to compute filtration values
494[info] A SimplexStream induced FilteredSimplexOrdering should
495[info] + have filtration values in ascending order
496[info] + have subsimplices appear before supersimplices
497[info]
498[info]
499[info] Total for specification SimplexStreamSpec
500[info] Finished in 504 ms
501[info] 7 examples, 0 failure, 0 error
502[info]
503[info] SymmetryGroupSpec
504[info]
505[info] In the 3 bit Hyper Cube symmetry group
506[info] + [0,1] is representative
507[info] + [0,2] is not representative
508[info] + ExpandList Iterator does not throw exception while it has content
509[info] + ExpandList Iterator reflects content
510[info] + Iterator has no next
511[info] + Another step with iterator throws exception
512[info]
513[info]
514[info] Total for specification SymmetryGroupSpec
515[info] Finished in 320 ms
516[info] 6 examples, 0 failure, 0 error
517[info]
518[info] RingModuleSpec
519[info]
520[info] + zero should exist
521[info] addition should work
522[info] + zero is a left zero
523[info] + zero is a right zero
524[info] + scalar multiplication should work
525[info] + scalar left-multiplication should work
526[info]
527[info]
528[info] Total for specification RingModuleSpec
529[info] Finished in 147 ms
530[info] 5 examples, 401 expectations, 0 failure, 0 error
531[info]
532[info] ChainSpec
533[info]
534[info] This is the specification for testing the Chain implementation.The `Chain` type should
535[info] + be the return type of MapChain applied to a single simplex
536[info] + be the return type of MapChain applied to several simplex/coefficient pairs
537[info] + maintain it's equality when its component simplex-coefficient pairs are permuted
538[info] + maintain equality to itself after the addition of simplices with 0-valued coefficient
539[info] + should be able to 'add', 'subtract', and 'multiply'
540[info] + The `Chain` type should be comfortable to write expressions with
541[info]
542[info]
543[info] Total for specification ChainSpec
544[info] Finished in 155 ms
545[info] 6 examples, 0 failure, 0 error
546[info]
547[info] FiniteFieldSpec
548[info]
549[info] Numbers mod p should
550[info] + all have an inverse
551[info] all signed operations stay within -p/2, p/2
552[info] +
553[info] + +
554[info] +
555[info] + /
556[info] all unsigned operations stay within 0, p-1
557[info] +
558[info] + +
559[info] +
560[info] + /
561[info] commutativity
562[info] +
563[info] + +
564[info] associativity
565[info] +
566[info] + +
567[info] + distributivity
568[info] units
569[info] + x-x
570[info] + x + (-x)
571[info] + x * (1/x)
572[info] Testing unapply and pattern matching for value declarations
573[info] + (y == (42 % 17))
574[info]
575[info]
576[info] Total for specification FiniteFieldSpec
577[info] Finished in 728 ms
578[info] 18 examples, 1602 expectations, 0 failure, 0 error
579[info]
580Ripser finds 246 simplices
581Zomorodian finds 20 simplices
582[info] MetricSpaceSpec
583[info]
584[info] This is a specification for the implementation of metric spacesA Metric Space should
585[info] + have points
586[info] + have as many points as was inputted
587[info] + distance from a point to itself must be 0
588[info] + distances must follow triangle inequality
589[info]
590[info]
591[info] Total for specification MetricSpaceSpec
592[info] Finished in 81 ms
593[info] 4 examples, 202 expectations, 0 failure, 0 error
594[info]
595[info] SimplexIndexingSpec
596[info]
597[info] Testing the simplex indexing code against Ulrich Bauer's paper examples
598[info] + Error Case
599[info] + Examples from the Ripser paper, d=2, d=3
600[info] + Simplex facet-iterator requirements
601[info]
602[info]
603[info] Total for specification SimplexIndexingSpec
604[info] Finished in 81 ms
605[info] 3 examples, 0 failure, 0 error
606[info]
607[info] SimplexTypeSpec
608[info]
609[info] This is a specification for the type level interactions of the `Simplex` classThe `Simplex` type should
610[info] + be the return type of the Simplex constructor
611[info] + be the return type of the result of adding a vertex
612[info] + be the return type of the result of removing a vertex
613[info] + be the return type of intersecting two simplices
614[info] + be the return type of empty
615[info] + be the return type of filter
616[info] + be the return type of init
617[info] + be the return type of flatMap
618[info] + be the content type of grouped
619[info] + be the return type of partition
620[info] + be the return type of range, rangeFrom, rangeTo
621[info] + be the return type of slice
622[info] + be the element type of sliding
623[info] + be the element type of span
624[info] + be the element type of splitAt
625[info] + be the element type of subsets
626[info]
627[info]
628[info] Total for specification SimplexTypeSpec
629[info] Finished in 226 ms
630[info] 16 examples, 0 failure, 0 error
631[info]
632[info] APISpec
633[info]
634[info] + we should be able to create and compute with chains
635[info]
636[info]
637[info] Total for specification APISpec
638[info] Finished in 14 ms
639[info] 1 example, 0 failure, 0 error
640[info]
641[info] BarcodeSpec
642[info]
643[info] + 0-persistence output
644[info]
645[info]
646[info] Total for specification BarcodeSpec
647[info] Finished in 8 ms
648[info] 1 example, 0 failure, 0 error
649[info]
650[info] BarcodeAlgebraSpec
651[info]
652[info] Comparing endpoints
653[info] + Negative Infinity is less than everything else
654[info] + Positive Infinity is greater than everything else
655[info] + Strictly smaller is smaller than strictly greater
656[info] + Open is not equal to Closed
657[info] + valid and non-valid maps of barcodes
658[info] + Cokernel, kernel, image computation
659[info]
660[info]
661[info] Total for specification BarcodeAlgebraSpec
662[info] Finished in 184 ms
663[info] 6 examples, 204 expectations, 0 failure, 0 error
664[info]
665[info] HeapChainSpec
666[info]
667[info] Heap-based chains should
668[info] + be created from a sequence
669[info] + be created from varargs
670[info] + be created from a single simplex
671[info] + be possible to add together
672[info]
673[info]
674[info] Total for specification HeapChainSpec
675[info] Finished in 91 ms
676[info] 4 examples, 0 failure, 0 error
677[info]
678[info] SimplexSpec
679[info] Checking the `Simplex` class properties.
680[info]
681[info] A `Simplex` should
682[info] + have a non-zero size
683[info] + have a boundary
684[info] + be able to add a vertex (and then have that vertex)
685[info] + be able to remove a vertex (and then not have that vertex)
686[info]
687[info] Total for specification SimplexSpec
688[info] Finished in 22 ms
689[info] 4 examples, 0 failure, 0 error
690[info]
691[info] RipserStreamSpec
692[info]
693[info] RipserStream interface testing
694[info] + 0-dimensional
695[info] + 1-dimensional
696[info] + 2-dimensional
697[info] + 3-dimensional
698[info] + 4-dimensional
699[info] Check total orders of dimensions
700[info] + Full simplex stream gives the right number of elements
701[info] * Ripser and Vietoris-Rips find the same simplices Pending until fixed
702[info] + Apparent facets, cofacets, pairs
703[info]
704[info]
705[info] Total for specification RipserStreamSpec
706[info] Finished in 1 second, 795 ms
707[info] 8 examples, 0 failure, 0 error, 1 pending
708[info]
709[info] VietorisRipsSpec
710[info]
711[info] This is a specification of the Vietoris-Rips simplex stream implementationVietoris-Rips streams with BronKerbosch should
712[info] + have simplices
713[info] + have simplices appear in filtration order
714[info] Vietoris-Rips streams with ZomorodianIncremental should
715[info] + have simplices
716[info] + have simplices appear in filtration order
717[info] Lazy Vietoris-Rips streams should
718[info] + have simplices
719[info] + have simplices appear in filtration order
720[info]
721[info]
722[info] Total for specification VietorisRipsSpec
723[info] Finished in 5 seconds, 93 ms
724[info] 6 examples, 0 failure, 0 error
725[info]
726
727************************
728Build summary:
729[{
730 "module": "tda4j",
731 "compile": {"status": "ok", "tookMs": 14063, "warnings": 6, "errors": 0, "sourceVersion": "3.4"},
732 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
733 "test-compile": {"status": "ok", "tookMs": 7465, "warnings": 2, "errors": 0, "sourceVersion": "3.4"},
734 "test": {"status": "ok", "tookMs": 106048, "passed": 101, "failed": 0, "ignored": 0, "skipped": 0, "total": 101, "byFramework": [{"framework": "specs2", "stats": {"passed": 101, "failed": 0, "ignored": 0, "skipped": 0, "total": 101}}]},
735 "publish": {"status": "ok", "tookMs": 3},
736 "metadata": {
737 "crossScalaVersions": ["2.12.20"]
738}
739}]
740************************
741[success] Total time: 138 s (0:02:18.0), completed Dec 22, 2025, 7:54:51 PM
742[0JChecking patch project/plugins.sbt...
743Checking patch project/build.properties...
744Checking patch build.sbt...
745Applied patch project/plugins.sbt cleanly.
746Applied patch project/build.properties cleanly.
747Applied patch build.sbt cleanly.