Package evaluation to test Tracking on Julia 1.14.0-DEV.2802 (918269a29b*) started at 2026-08-27T20:50:11.089 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 14.58s ################################################################################ # Installation # Installing Tracking... Resolving package versions... Updating `~/.julia/environments/v1.14/Project.toml` [10b2438b] + Tracking v8.1.0 Updating `~/.julia/environments/v1.14/Manifest.toml` [7d9f7c33] + Accessors v0.1.45 [79e6a3ab] + Adapt v4.7.0 [4fba245c] + ArrayInterface v7.30.0 [c3b6d118] + BitIntegers v0.3.7 [62783981] + BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] + CPUSummary v0.2.7 [fb6a15b2] + CloseOpenIntervals v0.1.13 [f70d9fcc] + CommonWorldInvalidations v1.2.0 [34da2185] + Compat v4.18.1 [a33af91c] + CompositionsBase v0.1.2 [187b0558] + ConstructionBase v1.6.0 [adafc99b] + CpuId v0.3.1 [85a47980] + Dictionaries v0.4.6 [ffbed154] + DocStringExtensions v0.9.5 [eb71ef10] + FastSinCos v1.0.0 [53c48c17] + FixedPointNumbers v0.9.0 [52c80523] + GNSSSignals v4.0.0 [3e5b6fbb] + HostCPUFeatures v0.1.18 [615f187c] + IfElse v0.1.1 [313cdc1a] + Indexing v1.1.1 [3587e190] + InverseFunctions v0.1.17 [92d709cd] + IrrationalConstants v0.2.6 [692b3bcd] + JLLWrappers v1.8.0 [10f19ff3] + LayoutPointers v0.1.17 [2ab3a3ac] + LogExpFunctions v1.0.1 [1914dd2f] + MacroTools v0.5.16 [d125e4d3] + ManualMemory v0.1.8 [f517fe37] + Polyester v0.7.19 [1d0040c9] + PolyesterWeave v0.2.2 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [fdea26ae] + SIMD v3.7.2 [94e857df] + SIMDTypes v0.1.0 [431bcebd] + SciMLPublic v1.3.0 [59c743cf] + SinCosLUT v3.3.1 [276daf66] + SpecialFunctions v2.9.0 [aedffcd0] + Static v1.4.6 [0d7ed370] + StaticArrayInterface v1.10.0 [90137ffa] + StaticArrays v1.9.19 [1e83bf80] + StaticArraysCore v1.4.4 [10745b16] + Statistics v1.11.1 [7792a7ef] + StrideArraysCore v0.5.9 [8290d209] + ThreadingUtilities v0.5.6 [10b2438b] + Tracking v8.1.0 [0814aff9] + TrackingLoopFilters v1.0.0 [1986cc42] + Unitful v1.28.0 [3d5dd08c] + VectorizationBase v0.21.74 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.14.0 [d6f4376e] + Markdown v1.11.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [f489334b] + StyledStrings v1.13.0 [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.7+0 [4536629a] + OpenBLAS_jll v0.3.34+0 [05823500] + OpenLibm_jll v0.8.7+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Installation completed after 5.92s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompiling project... 1.5 s ✓ FixedPointNumbers → FixedPointNumbersStatisticsExt 2.5 s ✓ SinCosLUT 1.3 s ✓ FastSinCos 5.3 s ✓ GNSSSignals 8.0 s ✓ Acquisition 10.3 s ✓ Tracking 7.7 s ✓ Tracking → TrackingAcquisitionExt 7 dependencies successfully precompiled in 38 seconds. 125 already precompiled. Precompilation completed after 64.18s ################################################################################ # Testing # Testing Tracking Status `/tmp/jl_EeebVW/Project.toml` [d4bbf60b] Acquisition v2.6.4 [4c88cf16] Aqua v0.8.16 [6e4b80f9] BenchmarkTools v1.8.0 [85a47980] Dictionaries v0.4.6 [52c80523] GNSSSignals v4.0.0 [6c6a2e73] Scratch v1.3.0 [59c743cf] SinCosLUT v3.3.1 [90137ffa] StaticArrays v1.9.19 [10745b16] Statistics v1.11.1 [10b2438b] Tracking v8.1.0 [0814aff9] TrackingLoopFilters v1.0.0 [1986cc42] Unitful v1.28.0 [a5390f91] ZipFile v0.10.1 [f43a241f] Downloads v1.7.0 [b77e0a4c] InteractiveUtils v1.11.0 [56ddb016] Logging v1.11.0 [9a3f8284] Random v1.11.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_EeebVW/Manifest.toml` [621f4979] AbstractFFTs v1.5.0 [7d9f7c33] Accessors v0.1.45 [d4bbf60b] Acquisition v2.6.4 [79e6a3ab] Adapt v4.7.0 [4c88cf16] Aqua v0.8.16 [4fba245c] ArrayInterface v7.30.0 [6e4b80f9] BenchmarkTools v1.8.0 [c3b6d118] BitIntegers v0.3.7 [62783981] BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] CPUSummary v0.2.7 [fb6a15b2] CloseOpenIntervals v0.1.13 [f70d9fcc] CommonWorldInvalidations v1.2.0 [34da2185] Compat v4.18.1 [a33af91c] CompositionsBase v0.1.2 [187b0558] ConstructionBase v1.6.0 [adafc99b] CpuId v0.3.1 [a8cc5b0e] Crayons v4.2.0 [9a962f9c] DataAPI v1.16.0 [e2d170a0] DataValueInterfaces v1.0.0 [85a47980] Dictionaries v0.4.6 [ffbed154] DocStringExtensions v0.9.5 [7a1cc6ca] FFTW v1.10.0 [eb71ef10] FastSinCos v1.0.0 [53c48c17] FixedPointNumbers v0.9.0 [52c80523] GNSSSignals v4.0.0 [3e5b6fbb] HostCPUFeatures v0.1.18 [615f187c] IfElse v0.1.1 [313cdc1a] Indexing v1.1.1 [3587e190] InverseFunctions v0.1.17 [92d709cd] IrrationalConstants v0.2.6 [82899510] IteratorInterfaceExtensions v1.0.0 [692b3bcd] JLLWrappers v1.8.0 [682c06a0] JSON v1.7.1 [b964fa9f] LaTeXStrings v1.4.1 [10f19ff3] LayoutPointers v0.1.17 [2ab3a3ac] LogExpFunctions v1.0.1 [1914dd2f] MacroTools v0.5.16 [d125e4d3] ManualMemory v0.1.8 [bac558e1] OrderedCollections v2.0.1 ⌅ [69de0a69] Parsers v2.8.7 [f517fe37] Polyester v0.7.19 [1d0040c9] PolyesterWeave v0.2.2 [aea7be01] PrecompileTools v1.3.4 [21216c6a] Preferences v1.5.2 [08abe8d2] PrettyTables v3.4.8 [3cdcf5f2] RecipesBase v1.3.4 [189a3867] Reexport v1.2.2 [fdea26ae] SIMD v3.7.2 [94e857df] SIMDTypes v0.1.0 [431bcebd] SciMLPublic v1.3.0 [6c6a2e73] Scratch v1.3.0 [59c743cf] SinCosLUT v3.3.1 [276daf66] SpecialFunctions v2.9.0 [aedffcd0] Static v1.4.6 [0d7ed370] StaticArrayInterface v1.10.0 [90137ffa] StaticArrays v1.9.19 [1e83bf80] StaticArraysCore v1.4.4 [10745b16] Statistics v1.11.1 [7792a7ef] StrideArraysCore v0.5.9 [892a3eda] StringManipulation v0.5.0 [ec057cc2] StructUtils v2.8.5 [3783bdb8] TableTraits v1.0.1 [bd369af6] Tables v1.14.0 [8290d209] ThreadingUtilities v0.5.6 [10b2438b] Tracking v8.1.0 [0814aff9] TrackingLoopFilters v1.0.0 [1986cc42] Unitful v1.28.0 [3d5dd08c] VectorizationBase v0.21.74 [a5390f91] ZipFile v0.10.1 [f5851436] FFTW_jll v3.3.12+0 [1d5cc7b8] IntelOpenMP_jll v2025.2.0+0 [856f044c] MKL_jll v2025.2.0+0 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [1317d2d5] oneTBB_jll v2022.3.0+0 [0dad84c5] ArgTools v1.2.0 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [f43a241f] Downloads v1.7.0 [7b1f6079] FileWatching v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [ac6e5ff7] JuliaSyntaxHighlighting v1.13.0 [4af54fe1] LazyArtifacts v1.11.0 [b27032c2] LibCURL v1.0.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.14.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.14.0 [de0858da] Printf v1.11.0 [9abbd945] Profile v1.11.0 [3fa0cd96] REPL v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.13.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets v1.11.0 [f489334b] StyledStrings v1.13.0 [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.5.7+0 [deac9b47] LibCURL_jll v8.21.0+0 [e37daf67] LibGit2_jll v1.9.6+0 [29816b5a] LibSSH2_jll v1.11.103+0 [14a3606d] MozillaCACerts_jll v2026.7.16 [4536629a] OpenBLAS_jll v0.3.34+0 [05823500] OpenLibm_jll v0.8.7+0 [458c3c95] OpenSSL_jll v3.5.7+0 [efcefdf7] PCRE2_jll v10.47.0+0 [83775a58] Zlib_jll v1.3.2+0 [3161d3a3] Zstd_jll v1.5.7+1 [8e850b90] libblastrampoline_jll v5.15.0+0 [8e850ede] nghttp2_jll v1.69.0+0 [3f19e933] p7zip_jll v17.8.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. Testing Running tests... Test Summary: | Pass Total Time Method ambiguity | 1 1 11.4s Test Summary: | Pass Total Time Unbound type parameters | 1 1 0.1s Test Summary: | Pass Total Time Undefined exports | 1 1 0.0s Test Summary: | Pass Total Time Compare Project.toml and test/Project.toml | 1 1 0.4s Test Summary: | Pass Total Time Stale dependencies | 1 1 8.1s Test Summary: | Pass Total Time Compat bounds | 4 4 0.8s Test Summary: | Pass Total Time Piracy | 1 1 0.4s Test Summary: | Pass Total Time Persistent tasks | 1 1 1m15.4s Test Summary: | Pass Total Time Doppler aiding | 2 2 6.2s Test Summary: | Pass Total Time Satellite Conventional PLL and DLL | 12 12 1.9s ┌ Warning: Signal `:GPSL1CA` has a noise estimator but no usable noise density, so `NoiseRefCN0Estimator` will not update and C/N₀ stays at `-Inf dB-Hz`. Either its window is still empty — call `append_noise_observation!` before `estimate_dopplers_and_filter_prompt!`, or use a noise estimator that measures from the band's samples — or the measured floor is zero, which means the samples carry no power at all (a dead input or an underrun). └ @ Tracking ~/.julia/packages/Tracking/m0eJV/src/conventional_pll_and_dll.jl:980 Test Summary: | Pass Total Time Conventional PLL and DLL | 9 9 7.1s Test Summary: | Pass Total Time loop bandwidth follows the record's actual integration length | 2 2 0.3s Test Summary: | Pass Total Time code loop bandwidth is not narrowed by the integration length | 9 9 0.9s Test Summary: | Pass Total Time Per-satellite bandwidths drive the loop filters | 7 7 0.8s Test Summary: | Pass Total Time Bandwidths propagate through ConventionalPLLAndDLL constructor | 8 8 0.1s Test Summary: | Pass Total Time merge_sats with matching estimator carries through bandwidths | 2 2 1.1s Test Summary: | Pass Total Time merge_sats errors on mismatched doppler estimator type | 1 1 2.8s Test Summary: | Pass Total Time Satellite Vector PLL and DLL | 16 16 0.4s Test Summary: | Pass Total Time Vector PLL and DLL estimator seeding | 9 9 0.2s Test Summary: | Pass Total Time Scalar fallback matches the conventional assisted PLL and DLL | 6 6 3.7s Test Summary: | Pass Total Time Vector loop closure applies the NCO corrections | 12 12 2.5s Test Summary: | Pass Total Time Vector tracking state management | 14 14 0.7s Test Summary: | Pass Total Time Group-scoped vector tracking state management | 14 14 6.1s Test Summary: | Pass Total Time reset_loop_filters! preserves VT flags and zeroes corrections | 7 7 0.2s Test Summary: | Pass Total Time Satellite state | 22 22 1.5s Test Summary: | Pass Total Time TrackedSat signal/dict helpers | 15 15 6.6s Test Summary: | Pass Total Time shared code wrap is a common multiple, not a max (issue #129) | 3 3 0.1s Test Summary: | Pass Total Time Public multi-signal TrackedSat constructor | 15 15 1.4s Test Summary: | Pass Total Time Last fully integrated integration time | 17 17 1.2s Test Summary: | Pass Total Time Calculate number of code blocks / chips to integrate | 16 16 0.3s Test Summary: | Pass Total Time Calculate number of samples to integrate | 3 3 0.3s Test Summary: | Pass Total Time Downconvert and Correlator | 2 2 0.2s Test Summary: | Pass Total Time Downconvert and correlate with CPUDownconvertAndCorrelator | 2 2 10.9s Test Summary: | Pass Total Time Downconvert and correlate with CPUThreadedDownconvertAndCorrelator | 2 2 3.9s Test Summary: | Pass Total Time Early return when signal_start_sample past end with CPUDownconvertAndCorrelator | 2 2 0.1s Test Summary: | Pass Total Time Early return when signal_start_sample past end with CPUThreadedDownconvertAndCorrelator | 2 2 0.0s Test Summary: | Pass Total Time Fused downconvert and correlate | 3 3 4.2s Test Summary: | Pass Total Time Fused downconvert and correlate multi-antenna | 12 12 4.7s Test Summary: | Pass Total Time Fused downconvert and correlate with Vector accumulators | 1 1 0.7s Test Summary: | Pass Total Time Fused dynamic-shifts kernel with start_sample > 1 | 2 2 0.0s Test Summary: | Pass Total Time Vector-shifts correlator through CPU backend paths | 4 4 1.3s Test Summary: | Pass Total Time Fused downconvert and correlate tuple kernel | 41 41 15.7s Test Summary: | Pass Total Time Int16 downconvert and correlate | 114 114 2m09.2s Test Summary: | Pass Total Time One-bit downconvert and correlate | 128 128 5m30.9s Test Summary: | Pass Total Time Two-bit downconvert and correlate | 180 180 9m18.9s Test Summary: | Pass Total Time Post correlation filter | 5 5 0.3s Test Summary: | Pass Total Time Noise density reduces through the same weights | 7 7 2.0s Test Summary: | Pass Total Time Code replica | 3 3 1.6s Test Summary: | Pass Total Time Update code phase | 1 1 0.1s Test Summary: | Pass Total Time Current code frequency | 2 2 0.0s Test Summary: | Pass Total Time Update carrier phase | 2 2 0.1s Test Summary: | Pass Total Time Current carrier frequency | 2 2 0.0s Test Summary: | Pass Total Time PLL discriminator | 3 3 0.1s Test Summary: | Pass Total Time FLL discriminator | 5 5 0.2s Test Summary: | Pass Total Time DLL discriminator | 6 6 0.1s Test Summary: | Pass Total Time DLL discriminator S-curve slope is 1 (calibrated in chips) | 6 6 13.4s Test Summary: | Pass Total Time GPS L1 | 7 7 0.1s WARNING: Method definition get_bit_edge_detection_confidence(GNSSSignals.GPSL1CA{C} where C<:(AbstractArray{T, 2} where T)) in module Tracking at /home/pkgeval/.julia/packages/Tracking/m0eJV/test/gps_l1ca.jl:55 overwritten at /home/pkgeval/.julia/packages/Tracking/m0eJV/test/gps_l1ca.jl:60. Test Summary: | Pass Total Time GPS L1 — confidence override | 3 3 0.0s Test Summary: | Pass Total Time GPS L1C-D | 14 14 0.2s Test Summary: | Pass Total Time GPS L1C-P | 30 30 9.6s Test Summary: | Pass Total Time GPS L2CM | 16 16 1.3s Test Summary: | Pass Total Time GPS L2CL | 8 8 1.6s Test Summary: | Pass Total Time GPS L5I | 14 14 0.2s Test Summary: | Pass Total Time GPS L5Q | 22 22 0.2s Test Summary: | Pass Total Time Galileo E1B (GalileoE1B) | 14 14 0.0s Test Summary: | Pass Total Time Galileo E1B (GalileoE1B_BOC11) | 14 14 0.0s Test Summary: | Pass Total Time Galileo E1C (GalileoE1C) | 20 20 0.1s Test Summary: | Pass Total Time Galileo E1C (GalileoE1C_BOC11) | 20 20 0.0s Test Summary: | Pass Total Time Galileo E5a-I | 18 18 0.2s Test Summary: | Pass Total Time Galileo E5a-Q | 19 19 0.4s Test Summary: | Pass Total Time Galileo E5b-I | 29 29 0.2s Test Summary: | Pass Total Time Galileo E5b-Q | 20 20 0.4s Test Summary: | Pass Total Time Galileo E6-B | 17 17 0.0s Test Summary: | Pass Total Time Galileo E6-C | 22 22 0.4s Test Summary: | Pass Total Time BeiDou B1I | 34 34 2.6s Test Summary: | Pass Total Time BeiDou B3I | 22 22 0.4s Test Summary: | Pass Total Time BeiDou B2a data | 28 28 0.2s Test Summary: | Pass Total Time BeiDou B2a pilot | 20 20 0.4s Test Summary: | Pass Total Time BeiDou B2b-I | 18 18 0.1s Test Summary: | Pass Total Time BeiDou B1C data | 18 18 0.0s Test Summary: | Pass Total Time BeiDou B1C pilot | 33 33 11.4s Test Summary: | Pass Total Time Every GNSSSignals signal type is accounted for | 52 52 0.6s Test Summary: | Pass Total Time Per-signal API — BeiDou B1C data | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B1C pilot | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B1I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B2a data | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B2a pilot | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B2b-I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — BeiDou B3I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L1 C/A | 9 9 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L1C-D | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L1C-P | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L2CL | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L2CM | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L5-I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — GPS L5-Q | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E1B | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E1B (BOC(1,1) approximation) | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E1C | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E1C (BOC(1,1) approximation) | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E5a-I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E5a-Q | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E5b-I | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E5b-Q | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E6-B | 10 10 0.0s Test Summary: | Pass Total Time Per-signal API — Galileo E6-C | 10 10 0.0s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B1C data | 2 2 6.8s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B1C pilot | 2 2 5.7s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B1I | 2 2 6.1s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B2a data | 2 2 4.8s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B2a pilot | 2 2 4.9s ┌ Warning: Signal `:BeiDouB2bI` has a noise estimator but no usable noise density, so `NoiseRefCN0Estimator` will not update and C/N₀ stays at `-Inf dB-Hz`. Either its window is still empty — call `append_noise_observation!` before `estimate_dopplers_and_filter_prompt!`, or use a noise estimator that measures from the band's samples — or the measured floor is zero, which means the samples carry no power at all (a dead input or an underrun). └ @ Tracking ~/.julia/packages/Tracking/m0eJV/src/conventional_pll_and_dll.jl:980 Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B2b-I | 2 2 4.2s Test Summary: | Pass Total Time Runs a clean signal through track — BeiDou B3I | 2 2 4.5s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L1 C/A | 2 2 3.7s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L1C-D | 2 2 4.1s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L1C-P | 2 2 4.4s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L2CM | 2 2 3.9s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L5-I | 2 2 3.6s Test Summary: | Pass Total Time Runs a clean signal through track — GPS L5-Q | 2 2 4.0s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E1B | 2 2 3.2s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E1B (BOC(1,1) approximation) | 2 2 3.6s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E1C | 2 2 3.8s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E1C (BOC(1,1) approximation) | 2 2 3.9s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E5a-I | 2 2 3.9s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E5a-Q | 2 2 4.2s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E5b-I | 2 2 3.7s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E5b-Q | 2 2 3.8s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E6-B | 2 2 3.6s Test Summary: | Pass Total Time Runs a clean signal through track — Galileo E6-C | 2 2 4.5s Test Summary: | Pass Total Time SyncResult | 3 3 0.0s Test Summary: | Pass Total Time _norm_quantile | 6 6 0.0s Test Summary: | Pass Total Time _t_quantile | 23 23 0.6s Test Summary: | Pass Total Time _detect_bit_edge_cfar | 36 36 1.0s Test Summary: | Pass Total Time _cfar_decide | 7 7 0.3s Test Summary: | Pass Total Time _update_secondary_accumulators! | 3 3 1.0s Test Summary: | Pass Total Time _detect_secondary_code_cfar | 45 45 3.2s Test Summary: | Pass Total Time L1CA bit-edge lock is not one block early through buffer() (issue #124) | 5 5 0.4s Test Summary: | Pass Total Time Bit buffer | 54 54 1.9s Test Summary: | Pass Total Time Bit detection integration test | 1126 1126 5.3s Test Summary: | Pass Total Time Bit detection with multi-block coherent integration | 308 308 4.5s Test Summary: | Pass Total Time mid-fold bit sync keeps the accumulation on the bit grid | 8 8 1.7s Test Summary: | Pass Total Time GPS L5I secondary-code sync and phase recovery | 40 40 4.2s Test Summary: | Pass Total Time GPS L5I post-sync data-bit decoding (issue #125) | 30 30 2.9s Test Summary: | Pass Total Time mid-fold secondary-code sync keeps the overlay anchor aligned | 18 18 1.9s Test Summary: | Pass Total Time mid-fold pilot overlay anchor keeps coherent integration intact | 12 12 4.6s Test Summary: | Pass Total Time GPS L1C-P overlay sync (18 s end-to-end) | 2 2 8.5s Test Summary: | Pass Total Time Correlator | 47 47 1.7s Test Summary: | Pass Total Time custom CN0 estimator is pluggable (issue #217) | 16 16 5.1s Test Summary: | Pass Total Time estimate_cn0 overloads on TrackState | 2 2 0.7s Test Summary: | Pass Total Time estimate_cn0 divides by the record's real integration time | 3 3 0.7s Test Summary: | Pass Total Time Moments CN0 estimator | 11 11 0.7s Test Summary: | Pass Total Time CN0 estimation | 3 3 1.6s Test Summary: | Pass Total Time NoCN0Estimator measures nothing and says so | 11 11 1.4s Test Summary: | Pass Total Time NWPR's coherent window is sized from the signal's code period | 4 4 0.6s Test Summary: | Pass Total Time NWPR CN0 estimator on a bare prompt stream | 12 12 0.6s Test Summary: | Pass Total Time NWPR CN0 estimator noise floor beats the moment ratio (issue #217) | 9 9 5.9s Test Summary: | Pass Total Time NWPR CN0 estimator follows the navigation-bit grid | 35 35 5.8s Test Summary: | Pass Total Time NWPR CN0 estimator when a record outgrows its own window | 4 4 0.2s Test Summary: | Pass Total Time NWPR CN0 estimator skips a record spanning no whole code block | 6 6 0.0s Test Summary: | Pass Total Time CN0 estimation integration test | 1 1 7.5s Test Summary: | Pass Total Time NWPR CN0 estimator in the loop (issue #217) | 13 13 25.8s Test Summary: | Pass Total Time one record plus a density is already an estimate | 11 11 0.6s Test Summary: | Pass Total Time records of different length are each divided by their own T | 3 3 0.1s Test Summary: | Pass Total Time per-record terms are not clamped, so the mean is unbiased | 3 3 2.9s Test Summary: | Pass Total Time bias and σ match the pinned noise-reference columns | 12 12 4m38.7s Test Summary: | Pass Total Time no source configured is a loud, static error | 2 2 0.1s Test Summary: | Pass Total Time a density without a T is the same kind of error, not a MethodError | 4 4 0.3s Test Summary: | Pass Total Time a NaN never leaves estimate_cn0 | 5 5 0.1s Test Summary: | Pass Total Time update is allocation-free and inferred | 5 5 0.2s Test Summary: | Pass Total Time a configured-but-never-fed signal warns once and stays at -Inf | 4 4 1.3s Test Summary: | Pass Total Time two misconfigured signals both warn | 4 4 2.5s Test Summary: | Pass Total Time the warm-up skip is per estimator, not per satellite | 8 8 4.1s Test Summary: | Pass Total Time the externally fed path reports a real C/N₀ | 2 2 0.1s Test Summary: | Pass Total Time a signal nobody asks a density of is not provisioned | 5 5 2.0s Test Summary: | Pass Total Time the signals NWPR cannot serve at all (issue #217) | 18 18 2.0s Test Summary: | Pass Total Time in the loop, against NWPR | 8 8 8.8s Test Summary: | Pass Total Time the reference's self-leakage is the size the design says | 4 4 1.1s Test Summary: | Pass Total Time the three builders land on the same N₀ scale | 9 9 0.5s Test Summary: | Pass Total Time simultaneous looks report their own span, not M times it | 3 3 0.1s Test Summary: | Pass Total Time the window is bounded in time and weighted by M | 5 5 0.2s Test Summary: | Pass Total Time an empty window has no density | 7 7 0.4s Test Summary: | Pass Total Time a zero measured floor is not a floor to divide by | 4 4 0.0s Test Summary: | Pass Total Time an observation lands whatever number type the producer used | 7 7 0.3s Test Summary: | Pass Total Time the estimator is mutated in place, never rebuilt | 1 1 0.0s Test Summary: | Pass Total Time appending is allocation-free in steady state | 4 4 0.2s Test Summary: | Pass Total Time update_noise! defaults to a no-op for a source fed from outside | 2 2 0.0s Test Summary: | Pass Total Time append_noise_observation! addresses a signal on TrackState | 13 13 0.8s Test Summary: | Pass Total Time two signals on one band keep separate windows | 4 4 0.5s Test Summary: | Pass Total Time the per-signal density tuple folds and pairs positionally | 10 10 2.6s Test Summary: | Pass Total Time nothing in this design is a mutable struct | 5 5 0.3s Test Summary: | Pass Total Time the builders take per-antenna input | 21 21 2.2s Test Summary: | Pass Total Time the software path measures the signal's noise density | 2 2 0.6s Test Summary: | Pass Total Time the software path needs no `append_noise_observation!` and never warns | 3 3 0.4s Test Summary: | Pass Total Time every backend measures on its own kernel (CPUDownconvertAndCorrelator) | 2 2 1.2s Test Summary: | Pass Total Time every backend measures on its own kernel (CPUThreadedDownconvertAndCorrelator) | 2 2 0.2s Test Summary: | Pass Total Time every backend measures on its own kernel (Int16DownconvertAndCorrelator) | 2 2 6.2s Test Summary: | Pass Total Time every backend measures on its own kernel (OneBitDownconvertAndCorrelator) | 2 2 0.8s Test Summary: | Pass Total Time every backend measures on its own kernel (TwoBitDownconvertAndCorrelator) | 2 2 1.0s Test Summary: | Pass Total Time observation cadence follows the chunk, not the buffer | 4 4 1.4s Test Summary: | Pass Total Time a code period longer than the chunk still yields one observation | 2 2 1.6s Test Summary: | Pass Total Time the PRN rotates through the whole family, tracked codes included | 3 3 1.3s Test Summary: | Pass Total Time the code phase and carrier are drawn per sub-integration | 2 2 0.4s Test Summary: | Pass Total Time a random code phase keeps a present-but-untracked signal off the reference | 2 2 0.7s Test Summary: | Pass Total Time the reference's taps are spaced wide enough to be independent | 4 4 0.0s Test Summary: | Pass Total Time two bands keep separate windows at different sampling rates | 4 4 5.5s Test Summary: | Pass Total Time two signals on one band measure different floors under a CW tone | 7 7 7.7s Test Summary: | Pass Total Time a signal carried by two groups is measured once | 1 1 6.7s Test Summary: | Pass Total Time the group whose loop carries the despread may be empty | 3 3 4.2s Test Summary: | Pass Total Time the serial and threaded loops measure bit-identically | 2 2 0.1s Test Summary: | Pass Total Time an unchunked call measures once, and a re-pass says so | 3 3 0.1s Test Summary: | Pass Total Time a band this call brought no samples for is skipped, not thrown on | 9 9 1.0s Test Summary: | Pass Total Time a signal without a consumer is never despread | 2 2 0.0s Test Summary: | Pass Total Time the software measurement is allocation-free in steady state (CPUDownconvertAndCorrelator) | 2 2 1.3s Test Summary: | Pass Total Time the software measurement is allocation-free in steady state (Int16DownconvertAndCorrelator) | 2 2 1.2s Test Summary: | Pass Total Time the software measurement is allocation-free in steady state (OneBitDownconvertAndCorrelator) | 2 2 1.4s Test Summary: | Pass Total Time the software measurement is allocation-free in steady state (TwoBitDownconvertAndCorrelator) | 2 2 1.9s Test Summary: | Pass Total Time a DC offset only bites on a partial code period | 1 1 1.8s Test Summary: | Pass Total Time the window's running totals stay exact | 32 32 1.2s Test Summary: | Pass Total Time reading the window does not walk it | 3 3 0.1s Test Summary: | Pass Total Time the reference owns no scratch of its own (CPUDownconvertAndCorrelator) | 2 2 0.1s Test Summary: | Pass Total Time the reference owns no scratch of its own (Int16DownconvertAndCorrelator) | 2 2 0.2s Test Summary: | Pass Total Time the reference owns no scratch of its own (OneBitDownconvertAndCorrelator) | 2 2 0.1s Test Summary: | Pass Total Time the reference owns no scratch of its own (TwoBitDownconvertAndCorrelator) | 2 2 0.1s Test Summary: | Pass Total Time the reference and the satellites despread out of one scratch slot | 3 3 0.1s Test Summary: | Pass Total Time the default estimator is provisioned for its group's antenna count | 5 5 1.1s Test Summary: | Pass Total Time an explicitly-passed estimator must match its group's antenna count | 5 5 0.6s Test Summary: | Pass Total Time an antenna array measures a spatial covariance | 11 11 8.6s Test Summary: | Pass Total Time a covariance is withheld until it spans its own dimensions | 16 16 33.2s Test Summary: | Pass Total Time the default filter's weights reduce the covariance to its own column | 3 3 1.8s Test Summary: | Pass Total Time an array's software measurement is allocation-free in steady state | 3 3 3.4s Test Summary: | Pass Total Time NWPR reports degenerate estimates at low C/N₀, a noise reference never does | 15 15 0.1s Test Summary: | Pass Total Time NWPR is biased at every C/N₀, a noise reference is not | 15 15 0.0s Test Summary: | Pass Total Time NWPR's relative error saturates, a noise reference's keeps falling | 3 3 0.0s Test Summary: | Pass Total Time A coherent noise reference beats NWPR at every C/N₀ | 7 7 0.0s Test Summary: | Pass Total Time Non-coherent squaring loss is real below ~28 dB-Hz | 2 2 0.0s C/N₀ vs estimator, 100 records of 1 ms, NWPR M=5, 4000 trials × 9 seeds (median) dB-Hz | NWPR σ bias degen | NoiseRef 1ms σ bias | NoiseRef 5ms σ bias 20 | 2.96 0.45 5.6% | 4.77 0.03 | 2.75 0.01 25 | 1.51 0.08 0.0% | 1.76 -0.01 | 1.25 -0.01 30 | 0.9 0.07 0.0% | 0.76 0.01 | 0.65 0.0 35 | 0.64 0.05 0.0% | 0.37 -0.01 | 0.35 -0.01 40 | 0.54 0.05 0.0% | 0.2 -0.0 | 0.2 -0.0 45 | 0.51 0.05 0.0% | 0.11 0.0 | 0.11 0.0 50 | 0.5 0.05 0.0% | 0.06 -0.0 | 0.06 -0.0 Test Summary: | Pass Total Time baseline table | 1 1 0.3s Test Summary: | Pass Total Time SignalGroup rejects mixed bands and mixed chip rates (issue #129) | 7 7 2.1s Test Summary: | Pass Total Time Tracking state | 18 18 0.8s Test Summary: | Pass Total Time Positional TrackState(satellites::SatelliteDicts) infers default estimator | 4 4 1.7s Test Summary: | Pass Total Time Positional TrackState(dict) default estimator inference | 1 1 0.1s Test Summary: | Pass Total Time Positional TrackState constructor rejects sats with a different estimator | 1 1 0.1s Test Summary: | Pass Total Time Slot-vector copy helpers share vs detach Dictionary Indices (#123) | 4 4 0.2s Test Summary: | Pass Total Time Immutable boundary copies do not share Dictionary Indices (#123) | 6 6 1.3s Test Summary: | Pass Total Time track output is structurally detached from input (#123) | 4 4 0.1s Test Summary: | Pass Total Time remove_satellite! kwarg form mutates in place | 4 4 0.0s Test Summary: | Pass Total Time remove_satellite(!) leaves no #undef hole → track! is safe (issue #182) | 10 10 1.2s Test Summary: | Pass Total Time remove_satellite! throws KeyError for a missing PRN | 3 3 0.0s Test Summary: | Pass Total Time remove_satellite!/remove_satellite — multi-group omitted `group=` errors | 4 4 1.1s Test Summary: | Pass Total Time Add and remove satellite state to and from track state | 14 14 1.3s Test Summary: | Pass Total Time Add and remove satellite state to track state with multiple systems | 31 31 4.3s Test Summary: | Pass Total Time TrackedSat helpers | 8 8 0.4s Test Summary: | Pass Total Time merge_sats invokes update_estimator_on_handoff | 7 7 2.6s Test Summary: | Pass Total Time add_satellite! honors a rebuilt estimator on handoff | 6 6 1.9s Test Summary: | Pass Total Time Accessor type stability — single-group, single-signal | 1 1 0.5s Test Summary: | Pass Total Time preferred_num_code_blocks_to_integrate validation (issue #128) | 19 19 0.8s Test Summary: | Pass Total Time get_filtered_prompts TrackState accessor (issue #134) | 4 4 0.4s Test Summary: | Pass Total Time get_signal works on a declared-but-unpopulated group (issue #134) | 5 5 0.3s Test Summary: | Pass Total Time remove_satellite throws KeyError carrying the prn (issue #134) | 2 2 0.0s Test Summary: | Pass Total Time TrackState from empty SatelliteDicts throws friendly error (issue #134) | 1 1 0.3s Test Summary: | Pass Total Time TrackState(satellites::SatelliteDicts) validates estimator state types (issue #134) | 1 1 0.2s Test Summary: | Pass Total Time TrackState(; signals = SignalGroup) validates pre-populated sats' estimator (issue #134) | 1 1 0.4s Test Summary: | Pass Total Time merge_sats rejects sats whose full slot type mismatches (issue #134) | 1 1 1.1s Test Summary: | Pass Total Time reset_loop_filters! keeps per-sat bandwidth override and clears FLL history (issue #134) | 3 3 0.3s Test Summary: | Pass Total Time per-signal preferred_num_code_blocks_to_integrate + reset_loop_filters! | 14 14 1.0s Test Summary: | Pass Total Time Tracking with signal of type Int16 | 20002 20002 7.5s Test Summary: | Pass Total Time Tracking with signal of type Int32 | 20002 20002 11.1s Test Summary: | Pass Total Time Tracking with signal of type Int64 | 20002 20002 9.8s Test Summary: | Pass Total Time Tracking with signal of type Float32 | 20002 20002 3.7s Test Summary: | Pass Total Time Tracking with signal of type Float64 | 20002 20002 4.0s Test Summary: | Pass Total Time Tracking with large initial Doppler offset | 4 4 4.7s Test Summary: | Pass Total Time Track multiple systems of type Int16 | 4 4 6.1s Test Summary: | Pass Total Time Track multiple systems of type Int32 | 4 4 7.8s Test Summary: | Pass Total Time Track multiple systems of type Int64 | 4 4 7.9s Test Summary: | Pass Total Time Track multiple systems of type Float32 | 4 4 5.7s Test Summary: | Pass Total Time Track multiple systems of type Float64 | 4 4 7.3s Test Summary: | Pass Total Time Tracking with intermediate frequency of 0.0 Hz | 2 2 0.6s Test Summary: | Pass Total Time Tracking with intermediate frequency of -10000.0 Hz | 2 2 0.5s Test Summary: | Pass Total Time Tracking with intermediate frequency of 10000.0 Hz | 2 2 0.5s Test Summary: | Pass Total Time Tracking with intermediate frequency of -30000.0 Hz | 2 2 0.5s Test Summary: | Pass Total Time Tracking with intermediate frequency of 30000.0 Hz | 2 2 1.2s Test Summary: | Pass Total Time Track multiple signals with signal of type Int16 | 3 3 6.3s Test Summary: | Pass Total Time Track multiple signals with signal of type Int32 | 3 3 6.4s Test Summary: | Pass Total Time Track multiple signals with signal of type Int64 | 3 3 6.6s Test Summary: | Pass Total Time Track multiple signals with signal of type Float32 | 3 3 0.9s Test Summary: | Pass Total Time Track multiple signals with signal of type Float64 | 3 3 1.1s Test Summary: | Pass Total Time Multi-antenna C/N₀ under the default filter matches its own column | 3 3 7.0s Test Summary: | Pass Total Time A beamformer's C/N₀ follows its own weights | 2 2 6.3s Test Summary: | Pass Total Time Collect filtered prompts per track call | 8 8 0.3s Test Summary: | Pass Total Time Tracking single signal GPSL1C_D with Float32 samples | 1 1 3.0s Test Summary: | Pass Total Time Tracking single signal GPSL1C_D with Float64 samples | 1 1 3.8s Test Summary: | Pass Total Time Tracking single signal GPSL1C_P with Float32 samples | 1 1 3.7s Test Summary: | Pass Total Time Tracking single signal GPSL1C_P with Float64 samples | 1 1 4.3s Test Summary: | Pass Total Time GPS L1C-D BOC code tracking holds lock under a code offset | 1 1 1.6s Test Summary: | Pass Total Time Tracking multi-signal (L1C_P, L1C_D, L1CA) on one sat | 4 4 1m18.1s Test Summary: | Pass Total Time Does not deadlock on one-code-period chunks (issue #117) | 4 4 4.6s Test Summary: | Pass Total Time track! produces same result as track for CPUDownconvertAndCorrelator | 6 6 0.1s Test Summary: | Pass Total Time track! produces same result as track for CPUThreadedDownconvertAndCorrelator | 6 6 0.1s Test Summary: | Pass Total Time track! returns same TrackState identity | 1 1 0.1s Test Summary: | Pass Total Time track! per-stage is allocation-free in steady state (CPUDownconvertAndCorrelator) | 3 3 0.1s Test Summary: | Pass Total Time track! per-stage is allocation-free in steady state (CPUThreadedDownconvertAndCorrelator) | 3 3 1.9s Test Summary: | Pass Total Time a noise-referenced signal adds no allocation (CPUDownconvertAndCorrelator) | 3 3 0.1s Test Summary: | Pass Total Time a noise-referenced signal adds no allocation (CPUThreadedDownconvertAndCorrelator) | 3 3 0.1s Test Summary: | Pass Total Time the noise reference adds nothing to the threaded launch residual | 7 7 0.5s Test Summary: | Pass Total Time track! is allocation-free during acquisition (pre-sync bit search) | 4 4 0.4s Test Summary: | Pass Total Time track! is allocation-free during acquisition (pre-sync secondary-code search) | 2 2 2.2s Test Summary: | Pass Total Time smallest-code-period default resolution | 3 3 0.3s Test Summary: | Pass Total Time chunk-grid arithmetic (`_chunk_last_sample`) | 7 7 0.1s Test Summary: | Pass Total Time doppler_update_interval shorter than a sample throws | 1 1 0.1s Test Summary: | Pass Total Time doppler_update_interval without time units throws a clear error | 2 2 0.2s Test Summary: | Pass Total Time a chunk collects every completed correlator output, sample-indexed | 8 8 1.0s Test Summary: | Pass Total Time estimator empties correlator_outputs after each chunk | 1 1 0.1s Test Summary: | Pass Total Time enlarged doppler_update_interval still converges | 2 2 0.8s Test Summary: | Pass Total Time fs source matches the BandMeasurements path exactly (in-place) | 6 6 0.4s Test Summary: | Pass Total Time Dict fs source matches the NamedTuple fs source | 2 2 0.5s Test Summary: | Pass Total Time immutable fs form matches the in-place fs form | 2 2 0.1s Test Summary: | Pass Total Time append_correlator_output! at every addressing level | 7 7 0.6s Test Summary: | Pass Total Time external-producer standalone estimate (no downconvert_and_correlate!) | 4 4 0.0s Test Summary: | Pass Total Time the ingest path's C/N₀ needs a noise observation under the default | 5 5 0.1s Test Summary: | Pass Total Time Multi-signal track on a single sat | 10 10 4.7s Test Summary: | Pass Total Time Multi-signal track over a multi-code-period chunk | 6 6 0.6s Test Summary: | Pass Total Time Per-signal accessors on multi-signal TrackedSat / TrackState | 31 31 2.8s Test Summary: | Pass Total Time _carrier_phase_derotation | 15 15 0.8s Test Summary: | Pass Total Time BandMeasurement kwarg constructor and accessors | 4 4 0.2s Test Summary: | Pass Total Time BandMeasurement promotes mixed frequency types | 3 3 0.1s Test Summary: | Pass Total Time track with integer-typed intermediate_frequency | 1 1 0.4s Test Summary: | Pass Total Time BandMeasurement rejects non-dense sample buffers (issue #134) | 8 8 0.7s Test Summary: | Pass Total Time get_band_id for L1 and L5 | 2 2 0.0s Test Summary: | Pass Total Time Single-BandMeasurement track/track! shortcut on single-band TrackState | 2 2 0.1s Test Summary: | Pass Total Time Bare-buffer track! rejects multi-band TrackState | 1 1 0.1s Test Summary: | Pass Total Time band_keys for single-band TrackState | 1 1 0.0s Test Summary: | Pass Total Time band_keys for multi-band TrackState | 1 1 0.1s Test Summary: | Pass Total Time Two groups sharing a band yield one band key | 1 1 0.2s Test Summary: | Pass Total Time Single-band track! still accepts bare buffer | 1 1 0.1s Test Summary: | Pass Total Time Multi-band track! with two synthetic bands | 2 2 6.0s Test Summary: | Pass Total Time BandMeasurement keys mismatch errors | 1 1 0.1s Test Summary: | Pass Total Time Mismatched durations error (no tolerance) | 1 1 0.4s Test Summary: | Pass Total Time Equal durations across mixed Float32/Float64 sampling rates | 3 3 0.3s Test Summary: | Pass Total Time Antenna shape mismatch errors | 1 1 1.1s Test Summary: | Pass Total Time Per-band antenna counts via SignalGroup entries | 2 2 1.6s Test Summary: | Pass Total Time Same band, mismatched NumAnts is rejected | 1 1 0.3s Test Summary: | Pass Total Time Two groups on the same band with matching NumAnts is fine | 1 1 0.8s Test Summary: | Pass Total Time TrackState(; signals = ...) — single-group shortcut | 1 1 0.0s Test Summary: | Pass Total Time TrackState constructor argument errors | 2 2 0.1s Test Summary: | Pass Total Time TrackState(; signals = (bare tuple,)) wraps to :default group | 1 1 0.1s Test Summary: | Pass Total Time TrackState rebuilds SignalGroup slot when estimator types differ | 1 1 0.6s Test Summary: | Pass Total Time TrackState passes through pre-populated SignalGroup unchanged | 1 1 0.4s Test Summary: | Pass Total Time TrackState(; signals = ...) — multi-group NamedTuple | 2 2 0.2s Test Summary: | Pass Total Time add_satellite! — single-group shortcut (no `group=`) | 4 4 0.0s Test Summary: | Pass Total Time add_satellite! — multi-group with explicit `group=` | 4 4 0.1s Test Summary: | Pass Total Time add_satellite! — single named group infers `group=` when omitted | 2 2 0.1s Test Summary: | Pass Total Time add_satellite!/add_satellite — multi-group omitted `group=` errors | 2 2 0.1s Test Summary: | Pass Total Time add_satellite! — overwrites on duplicate PRN | 2 2 0.0s Test Summary: | Pass Total Time add_satellite — immutable variant | 3 3 0.1s Test Summary: | Pass Total Time add_satellite!(track_state, group, sat) — escape hatch | 2 2 0.1s Test Summary: | Pass Total Time Escape-hatch add_satellite! rejects sat of wrong slot type | 1 1 0.2s Test Summary: | Pass Total Time Custom doppler estimator config seeds per-sat state correctly | 3 3 0.3s Test Summary: | Pass Total Time add_satellite!(ts, acq) — single-group shortcut | 4 4 0.3s Test Summary: | Pass Total Time add_satellite(ts, acq) immutable returns a new TrackState | 4 4 0.0s Test Summary: | Pass Total Time add_satellite!(ts, acqs::Vector) batch form | 2 2 0.3s Test Summary: | Pass Total Time add_satellite(ts, acqs::Vector) immutable batch returns a new TrackState | 4 4 0.2s Test Summary: | Pass Total Time add_satellite!(ts, acq; group) — multi-group with explicit `group=` | 2 2 1.0s Test Summary: | Pass Total Time add_satellite!(ts, acq) — multi-group auto-routes by signal type | 2 2 0.3s Test Summary: | Pass Total Time add_satellite!(ts, acqs::Vector) — mixed-system batch auto-routes | 3 3 0.8s Test Summary: | Pass Total Time add_satellite!(ts, acq) — unknown signal type errors with auto-routing | 1 1 0.1s Test Summary: | Pass Total Time add_satellite!(ts, acq) rejects wrong-signal acq | 1 1 0.1s Test Summary: | Pass Total Time add_satellite!(ts, acq) requires longest-code signal in mixed group | 2 2 2.1s Test Summary: | Pass Total Time add_satellite!(ts, acq) accepts code-length ties (issue #134) | 3 3 1.2s Test Summary: | Pass Total Time add_satellite!(ts, acq) matches signals by id, not by code-matrix type | 4 4 0.9s Test Summary: | Pass Total Time add_satellite!(ts, acq) errors on ambiguous group routing (issue #134) | 2 2 0.5s Test Summary: | Pass Total Time TrackState(acq) — single-acq convenience | 3 3 0.2s Test Summary: | Pass Total Time TrackState(acqs::Vector) — batch single-signal convenience | 2 2 0.1s Test Summary: | Pass Total Time TrackState(empty acq vector) errors | 1 1 1.0s Test Summary: | Pass Total Time TrackState(mixed acq vector) without `signals=` errors | 1 1 0.3s Test Summary: | Pass Total Time TrackState(acqs; signals = ...) — multi-group routing | 4 4 0.6s Test Summary: | Pass Total Time TrackState(acqs; signals = ...) errors on unmatched system | 1 1 0.2s Test Summary: | Pass Total Time TrackState(acq; doppler_estimator) forwards kwargs | 2 2 0.2s [ Info: Skipping Flexiband integration test (downloads a 1.6 GB capture). Set ENV["TRACKING_RUN_INTEGRATION_TEST"] = "true" to run it. Testing Tracking tests passed Testing completed after 2304.18s PkgEval succeeded after 2433.43s