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