Build Logs

appliedtopology/tda4j • 3.8.0:2026-01-13

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