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