Build Logs
appliedtopology/tda4j • 3.8.0-RC6:2026-01-08
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.547s.
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 Jan 8, 2026, 1:59:39 AM
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/SymmetryGroup.scala]
161[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/Simplex.scala]
162[info] [patched file /build/repo/src/main/scala/org/appliedtopology/tda4j/Chain.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": 9419, "warnings": 6, "errors": 0, "sourceVersion": "3.4-migration"},
240 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
241 "test-compile": {"status": "ok", "tookMs": 8950, "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": 5},
244 "metadata": {
245 "crossScalaVersions": ["2.12.20"]
246}
247}]
248************************
249[success] Total time: 22 s, completed Jan 8, 2026, 2:00:01 AM
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 a12452f] 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-RC6
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-RC6
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-RC6
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-RC6
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-RC6"
299"++3.8.0-RC6 -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-RC6 """{"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-RC6
315OpenCB::Changing crossVersion 3.3.0 -> 3.8.0-RC6 in root/crossScalaVersions
316OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in root/crossScalaVersions
317[info] set current project to TDA4j (in build file:/build/repo/)
318[info] Setting Scala version to 3.8.0-RC6 on 1 projects.
319[info] Switching Scala version on:
320[info] * root (3.8.0-RC6)
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 Jan 8, 2026, 2:00:10 AM
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-RC6/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-RC6/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
423[info] SimplexContextSpec
424[info]
425[info] + we can create a simplex, and get the right type
426[info]
427[info]
428[info] Total for specification SimplexContextSpec
429[info] Finished in 212 ms
430[info] 1 example, 0 failure, 0 error
431[info] APISpec
432[info]
433[info]
434[info] UnionFindSpec
435[info]
436[info] + UnionFind will find exactly the correct edges
437[info]
438[info]
439[info] Total for specification UnionFindSpec
440[info] Finished in 231 ms
441[info] 1 example, 0 failure, 0 error
442[info]
443[info] + we should be able to create and compute with chains
444[info]
445[info]
446[info] Total for specification APISpec
447[info] Finished in 214 ms
448[info] 1 example, 0 failure, 0 error
449[info]
450Measuring SymmetricZomorodianIncremental
451Measuring SymmetricZomorodianIncremental
452Measuring BronKerbosch
453Measuring ZomorodianIncremental
454BK Initialization: 598 ms
455BK Simplex Stream Size: 255
456BK Traversal: 2 ms
457BK Lookups every 100: 0 ms
458ZI Initialization: 700 ms
459ZI Simplex Stream Size: 255
460ZI Traversal: 3 ms
461SZI Initialization: 705 ms
462ZI Lookups every 100: 0 ms
463SZIG Initialization: 704 ms
464SZI Simplex Stream Size: 255
465SZIG Simplex Stream Size: 255
466SZI Traversal: 47 ms
467SZI Lookups every 100: 2 ms
468SZIG Traversal: 59 ms
469SZIG Lookups every 100: 1 ms
470Counting pseudo-minimal elements
471SZIG 79
472SZIG 0
473Measuring MaskedSymmetricRipserVR
474[info] BarcodeAlgebraSpec
475[info]
476[info] Comparing endpoints
477[info] + Negative Infinity is less than everything else
478[info] + Positive Infinity is greater than everything else
479[info] + Strictly smaller is smaller than strictly greater
480[info] + Open is not equal to Closed
481[info] + valid and non-valid maps of barcodes
482[info] + Cokernel, kernel, image computation
483[info]
484[info]
485[info] Total for specification BarcodeAlgebraSpec
486[info] Finished in 877 ms
487[info] 6 examples, 204 expectations, 0 failure, 0 error
488[info]
489[info] ChainSpec
490[info]
491[info] This is the specification for testing the Chain implementation.The `Chain` type should
492[info] + be the return type of MapChain applied to a single simplex
493[info] + be the return type of MapChain applied to several simplex/coefficient pairs
494[info] + maintain it's equality when its component simplex-coefficient pairs are permuted
495[info] + maintain equality to itself after the addition of simplices with 0-valued coefficient
496[info] + should be able to 'add', 'subtract', and 'multiply'
497[info] + The `Chain` type should be comfortable to write expressions with
498[info]
499[info]
500[info] Total for specification ChainSpec
501[info] Finished in 879 ms
502[info] 6 examples, 0 failure, 0 error
503[info]
504[info] BarcodeSpec
505[info]
506[info] + 0-persistence output
507[info]
508[info]
509[info] Total for specification BarcodeSpec
510[info] Finished in 30 ms
511[info] 1 example, 0 failure, 0 error
512[info]
513[info] SimplexIndexingSpec
514[info]
515[info] Testing the simplex indexing code against Ulrich Bauer's paper examples
516[info] + Error Case
517[info] + Examples from the Ripser paper, d=2, d=3
518[info] + Simplex facet-iterator requirements
519[info]
520[info]
521[info] Total for specification SimplexIndexingSpec
522[info] Finished in 111 ms
523[info] 3 examples, 0 failure, 0 error
524[info]
525RSSG Initialization: 173 ms
526RSSG Simplex Stream Size: 255
527RSSG Traversal: 7 ms
528RSSG Lookups every 100: 0 ms
529Counting pseudo-minimal elements
530RSSG Pseudo-minimal: 79
531RSSG Non-minimal: 0
532[info] ProfilingSpec
533[info]
534[info] This is a profiling script to measure performance of different implementations.
535[info] + Bron-Kerbosch
536[info] + Zomorodian Incremental
537[info] + Zomorodian Incremental with symmetry
538[info] + Zomorodian Incremental with symmetry group generators
539[info] + Ripser Stream with symmetry group generators
540[info]
541[info]
542[info] Total for specification ProfilingSpec
543[info] Finished in 429 ms
544[info] 5 examples, 0 failure, 0 error
545[info]
546[info] RingModuleSpec
547[info]
548[info] + zero should exist
549[info] addition should work
550[info] + zero is a left zero
551[info] + zero is a right zero
552[info] + scalar multiplication should work
553[info] + scalar left-multiplication should work
554[info]
555[info]
556[info] Total for specification RingModuleSpec
557[info] Finished in 151 ms
558[info] 5 examples, 401 expectations, 0 failure, 0 error
559[info]
560[info] FiniteFieldSpec
561[info]
562[info] Numbers mod p should
563[info] + all have an inverse
564[info] all signed operations stay within -p/2, p/2
565[info] +
566[info] + +
567[info] +
568[info] + /
569[info] all unsigned operations stay within 0, p-1
570[info] +
571[info] + +
572[info] +
573[info] + /
574[info] commutativity
575[info] +
576[info] + +
577[info] associativity
578[info] +
579[info] + +
580[info] + distributivity
581[info] units
582[info] + x-x
583[info] + x + (-x)
584[info] + x * (1/x)
585[info] Testing unapply and pattern matching for value declarations
586[info] + (y == (42 % 17))
587[info]
588[info]
589[info] Total for specification FiniteFieldSpec
590[info] Finished in 1 second, 531 ms
591[info] 18 examples, 1602 expectations, 0 failure, 0 error
592[info]
593[info] SimplexStreamSpec
594[info]
595[info] Test suite for the abstraction and implementations of `SimplexStream`An ExplicitStream should
596[info] + have simplices
597[info] + have simplices appear in filtration order
598[info] + have subsimplices appear before supersimplices
599[info] + have all simplices, in order
600[info] + be able to compute filtration values
601[info] A SimplexStream induced FilteredSimplexOrdering should
602[info] + have filtration values in ascending order
603[info] + have subsimplices appear before supersimplices
604[info]
605[info]
606[info] Total for specification SimplexStreamSpec
607[info] Finished in 257 ms
608[info] 7 examples, 0 failure, 0 error
609[info]
610[info] MetricSpaceSpec
611[info]
612[info] This is a specification for the implementation of metric spacesA Metric Space should
613[info] + have points
614[info] + have as many points as was inputted
615[info] + distance from a point to itself must be 0
616[info] + distances must follow triangle inequality
617[info]
618[info]
619[info] Total for specification MetricSpaceSpec
620[info] Finished in 72 ms
621[info] 4 examples, 202 expectations, 0 failure, 0 error
622[info]
623Ripser finds 246 simplices
624Zomorodian finds 20 simplices
625[info] HeapChainSpec
626[info]
627[info] Heap-based chains should
628[info] + be created from a sequence
629[info] + be created from varargs
630[info] + be created from a single simplex
631[info] + be possible to add together
632[info]
633[info]
634[info] Total for specification HeapChainSpec
635[info] Finished in 58 ms
636[info] 4 examples, 0 failure, 0 error
637[info]
638[info] SimplexTypeSpec
639[info]
640[info] This is a specification for the type level interactions of the `Simplex` classThe `Simplex` type should
641[info] + be the return type of the Simplex constructor
642[info] + be the return type of the result of adding a vertex
643[info] + be the return type of the result of removing a vertex
644[info] + be the return type of intersecting two simplices
645[info] + be the return type of empty
646[info] + be the return type of filter
647[info] + be the return type of init
648[info] + be the return type of flatMap
649[info] + be the content type of grouped
650[info] + be the return type of partition
651[info] + be the return type of range, rangeFrom, rangeTo
652[info] + be the return type of slice
653[info] + be the element type of sliding
654[info] + be the element type of span
655[info] + be the element type of splitAt
656[info] + be the element type of subsets
657[info]
658[info]
659[info] Total for specification SimplexTypeSpec
660[info] Finished in 190 ms
661[info] 16 examples, 0 failure, 0 error
662[info]
663[info] SymmetryGroupSpec
664[info]
665[info] In the 3 bit Hyper Cube symmetry group
666[info] + [0,1] is representative
667[info] + [0,2] is not representative
668[info] + ExpandList Iterator does not throw exception while it has content
669[info] + ExpandList Iterator reflects content
670[info] + Iterator has no next
671[info] + Another step with iterator throws exception
672[info]
673[info]
674[info] Total for specification SymmetryGroupSpec
675[info] Finished in 144 ms
676[info] 6 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 16 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, 773 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 4 seconds, 617 ms
724[info] 6 examples, 0 failure, 0 error
725[info]
726
727************************
728Build summary:
729[{
730 "module": "tda4j",
731 "compile": {"status": "ok", "tookMs": 9966, "warnings": 6, "errors": 0, "sourceVersion": "3.4"},
732 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
733 "test-compile": {"status": "ok", "tookMs": 7484, "warnings": 2, "errors": 0, "sourceVersion": "3.4"},
734 "test": {"status": "ok", "tookMs": 99510, "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: 120 s (0:02:00.0), completed Jan 8, 2026, 2:02:11 AM
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.