gri-plot 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.docs_other_projects.md +10 -6
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.init_venv.sh +8 -3
- {gri_plot-0.2.2 → gri_plot-0.2.3}/PKG-INFO +2 -2
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/figure_map.py +38 -14
- {gri_plot-0.2.2 → gri_plot-0.2.3}/pyproject.toml +1 -1
- gri_plot-0.2.3/report.xml +1 -0
- gri_plot-0.2.2/report.xml +0 -1
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.coveragerc +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.gitignore +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.gitlab-ci-deps.yml +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.gitlab-ci.yml +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.pre-commit-config.yaml +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.pre-commit-unskipped.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.python-version +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.ruff.toml +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/.vscode/settings.json +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/CONTRIBUTING.md +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/LICENSE +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/README.md +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/figure3d.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/frames.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/aoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/fdoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/los.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/range_sphere.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/tdoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/observables/terrain.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/plot_ellipse.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/py.typed +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/scatter.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/scatter_map.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/cone.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/cylinder.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/ellipse.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/ellipsoid.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/meshgen.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/shapes/sphere.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/axis.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/line.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/plane.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/point.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/intersection.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/gri_plot/surfaces/mesh.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/notes.txt +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_figure3d.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_figure_map.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_frames.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_aoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_fdoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_los.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_range_sphere.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_tdoa.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_observables/test_terrain.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_plot_ellipse.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_plot_scattermap.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_scatter.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/test_cone.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/test_cylinder.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/test_ellipse.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/test_ellipsoid.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_shapes/test_sphere.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_surfaces/__init__.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_surfaces/test_intersection.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/test/test_surfaces/test_mesh.py +0 -0
- {gri_plot-0.2.2 → gri_plot-0.2.3}/uv.lock +0 -0
|
@@ -16,10 +16,6 @@ Equation fitting wrapper around scipy.optimize.curve\_fit. Simplifies curve fitt
|
|
|
16
16
|
|
|
17
17
|
Class-based memoization with full type hints and IDE integration. Provides caching decorators for performance optimization.
|
|
18
18
|
|
|
19
|
-
### [GRI Plot](https://gitlab.com/geosol-foss/python/gri-plot)
|
|
20
|
-
|
|
21
|
-
Plotting utilities for Plotly and Matplotlib. Provides consistent styling and common plot types for geospatial visualization.
|
|
22
|
-
|
|
23
19
|
### [GRI Signal](https://gitlab.com/geosol-foss/python/gri-signal)
|
|
24
20
|
|
|
25
21
|
Functional signal processing library with pure functions operating on numpy arrays. Includes signal generation (tones, PRN, pulsed), channel simulation (delay, AWGN, Doppler, multipath), modulation (AM/FM/PM, BPSK/QPSK/QAM), sampling (ADC), filtering (lowpass, highpass, bandpass, notch, analytic), spectral analysis (PSD, SNR, THD, time-bandwidth product), cross-correlation, and beamforming.
|
|
@@ -46,6 +42,14 @@ Solar flux and NeQuickG coefficient data pipeline for ionospheric modeling.
|
|
|
46
42
|
|
|
47
43
|
A lot of the work we do is down to nanosecond or tens of nanosecond accuracy. We needed an object that could both handle that level of precision as well as do a lot of the string <=> time conversions for the many semi-standards formats we run into in this field.
|
|
48
44
|
|
|
45
|
+
### [GRI Obs](https://gitlab.com/geosol-foss/python/gri-obs)
|
|
46
|
+
|
|
47
|
+
Typed observation objects (TDOA, FDOA, AOA, Range, PDOA) for geolocation measurements. Each observation carries measurement data, noise characterization, sensor geometry, and measurement math (predicted values, Jacobians, noise covariance) for EKF integration with Kalman filters.
|
|
48
|
+
|
|
49
|
+
### [GRI Plot](https://gitlab.com/geosol-foss/python/gri-plot)
|
|
50
|
+
|
|
51
|
+
Plotting utilities for Plotly and Matplotlib. Provides consistent styling and common plot types for geospatial visualization.
|
|
52
|
+
|
|
49
53
|
### [GRI Pos](https://gitlab.com/geosol-foss/python/gri-pos)
|
|
50
54
|
|
|
51
55
|
A position object that greatly simplifies handling coordinates, distances, and memory, mostly on the WGS-84 ellipsoid.
|
|
@@ -66,7 +70,7 @@ ERA5 data pipeline for downloading and processing tropospheric refractivity data
|
|
|
66
70
|
|
|
67
71
|
### [GRI Convolve](https://gitlab.com/geosol-foss/python/gri-convolve)
|
|
68
72
|
|
|
69
|
-
Ellipsoid convolution with outlier detection and clustering. Combines multiple statistical position estimates into refined solutions.
|
|
73
|
+
Ellipsoid convolution with outlier detection and clustering, plus Kalman tracking via Interacting Multiple Model (IMM) filter. Combines multiple statistical position estimates into refined solutions. The Kalman tracker supports both ellipsoid-based and raw observable (EKF) updates, bidirectional outlier detection, and online track segmentation.
|
|
70
74
|
|
|
71
75
|
### [GRI GeoSim](https://gitlab.com/geosol-foss/python/gri-geosim)
|
|
72
76
|
|
|
@@ -78,4 +82,4 @@ Some neat (small) examples and projects we've put together over time using the a
|
|
|
78
82
|
|
|
79
83
|
### [GRI SigSim](https://gitlab.com/geosol-foss/python/gri-sigsim)
|
|
80
84
|
|
|
81
|
-
Object-based RF signal simulation library. Wraps gri-signal functions with chainable object-oriented classes for waveforms (
|
|
85
|
+
Object-based RF signal simulation library. Wraps gri-signal functions with chainable object-oriented classes for waveforms (pulsed, PRN, tone), channel modeling (delay, Doppler, multipath), receiver simulation, and TOA estimation.
|
|
@@ -65,10 +65,15 @@ if [ $? -ne 0 ]; then
|
|
|
65
65
|
fi
|
|
66
66
|
uv sync
|
|
67
67
|
|
|
68
|
-
# activate and print version
|
|
68
|
+
# activate and print version (Scripts/ on Windows, bin/ elsewhere)
|
|
69
69
|
echo "${bold}Activating environment${normal}"
|
|
70
|
-
|
|
71
|
-
$VENV/
|
|
70
|
+
if [[ -d "$VENV/Scripts" ]]; then
|
|
71
|
+
. $VENV/Scripts/activate
|
|
72
|
+
$VENV/Scripts/python --version
|
|
73
|
+
else
|
|
74
|
+
. $VENV/bin/activate
|
|
75
|
+
$VENV/bin/python --version
|
|
76
|
+
fi
|
|
72
77
|
|
|
73
78
|
# Install pre-commit scripts
|
|
74
79
|
echo "${bold}Installing git hooks${normal}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gri-plot
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: 3D geolocation visualization and 2D plotting utilities built on Plotly
|
|
5
5
|
Project-URL: Homepage, https://geosolresearch.com
|
|
6
6
|
Project-URL: Repository, https://gitlab.com/geosol-foss/python/gri-plot
|
|
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
17
17
|
Classifier: Topic :: Scientific/Engineering
|
|
18
18
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
19
19
|
Requires-Python: >=3.12
|
|
20
|
-
Requires-Dist: gri-utils>=0.
|
|
20
|
+
Requires-Dist: gri-utils>=0.3.3
|
|
21
21
|
Requires-Dist: numpy>=2.3.3
|
|
22
22
|
Requires-Dist: plotly>=6.3.0
|
|
23
23
|
Requires-Dist: scikit-image>=0.25.0
|
|
@@ -241,11 +241,9 @@ class FigureMap:
|
|
|
241
241
|
showlegend=show_legend and label is not None,
|
|
242
242
|
)
|
|
243
243
|
else:
|
|
244
|
-
x_vals = display_coords[:, 0]
|
|
245
|
-
y_vals = display_coords[:, 1]
|
|
246
244
|
trace = go.Scatter(
|
|
247
|
-
x=
|
|
248
|
-
y=
|
|
245
|
+
x=display_coords[:, 1],
|
|
246
|
+
y=display_coords[:, 0],
|
|
249
247
|
mode="lines",
|
|
250
248
|
line={"color": color, "width": width},
|
|
251
249
|
name=label,
|
|
@@ -278,8 +276,8 @@ class FigureMap:
|
|
|
278
276
|
)
|
|
279
277
|
else:
|
|
280
278
|
trace = go.Scatter(
|
|
281
|
-
x=display_coords[:,
|
|
282
|
-
y=display_coords[:,
|
|
279
|
+
x=display_coords[:, 1],
|
|
280
|
+
y=display_coords[:, 0],
|
|
283
281
|
mode="lines",
|
|
284
282
|
fill="toself",
|
|
285
283
|
fillcolor=fill_color,
|
|
@@ -478,21 +476,40 @@ class FigureMap:
|
|
|
478
476
|
self._add_line_trace(display, color, width, label, show_legend=True)
|
|
479
477
|
return self
|
|
480
478
|
|
|
481
|
-
def add_heatmap(
|
|
479
|
+
def add_heatmap( # noqa: PLR0913
|
|
482
480
|
self,
|
|
483
481
|
sheet_xyz: NDArray[np.floating],
|
|
482
|
+
*,
|
|
483
|
+
values: NDArray[np.floating] | None = None,
|
|
484
|
+
lat_deg: NDArray[np.floating] | None = None,
|
|
485
|
+
lon_deg: NDArray[np.floating] | None = None,
|
|
484
486
|
colorscale: str = "earth",
|
|
485
487
|
opacity: float = 0.6,
|
|
486
488
|
label: str | None = None,
|
|
487
489
|
) -> FigureMap:
|
|
488
|
-
"""Add a
|
|
490
|
+
"""Add a heatmap over a spatial grid.
|
|
491
|
+
|
|
492
|
+
Renders a 2D grid as a colored heatmap. When ``values`` is None,
|
|
493
|
+
color represents the altitude of each grid point. When ``values``
|
|
494
|
+
is provided, it is used as the color field instead (e.g. TDOA,
|
|
495
|
+
TDOA-dot, or any scalar quantity defined on the grid).
|
|
496
|
+
|
|
497
|
+
When ``lat_deg`` and ``lon_deg`` are provided they are used
|
|
498
|
+
directly as the axis coordinates, bypassing extraction from
|
|
499
|
+
``sheet_xyz``. This is useful when the sheet contains NaN cells
|
|
500
|
+
(e.g. a visibility-masked grid) that would corrupt the
|
|
501
|
+
coordinate recovery.
|
|
489
502
|
|
|
490
|
-
|
|
491
|
-
the altitude (Z-height) of each grid point. Only supported in
|
|
492
|
-
BLANK mode.
|
|
503
|
+
Only supported in BLANK mode.
|
|
493
504
|
|
|
494
505
|
Args:
|
|
495
506
|
sheet_xyz: Terrain sheet in ECEF meters, shape (M, N, 3).
|
|
507
|
+
values: Optional scalar field to color by, shape (M, N).
|
|
508
|
+
When None, altitude is used.
|
|
509
|
+
lat_deg: Optional latitude axis, shape (M,). When None,
|
|
510
|
+
extracted from sheet_xyz.
|
|
511
|
+
lon_deg: Optional longitude axis, shape (N,). When None,
|
|
512
|
+
extracted from sheet_xyz.
|
|
496
513
|
colorscale: Plotly colorscale name. Default "earth".
|
|
497
514
|
opacity: Heatmap opacity (0-1). Default 0.6.
|
|
498
515
|
label: Colorbar title.
|
|
@@ -510,7 +527,11 @@ class FigureMap:
|
|
|
510
527
|
sheet_xyz = np.asarray(sheet_xyz, dtype=np.float64)
|
|
511
528
|
m, n, _ = sheet_xyz.shape
|
|
512
529
|
|
|
513
|
-
if
|
|
530
|
+
if lat_deg is not None and lon_deg is not None:
|
|
531
|
+
x_vals = np.asarray(lon_deg, dtype=np.float64)
|
|
532
|
+
y_vals = np.asarray(lat_deg, dtype=np.float64)
|
|
533
|
+
z_vals = values
|
|
534
|
+
elif self._frame == "enu":
|
|
514
535
|
assert self._origin_xyz is not None # noqa: S101
|
|
515
536
|
flat = sheet_xyz.reshape(-1, 3)
|
|
516
537
|
enu = get_enu(self._origin_xyz, flat)
|
|
@@ -526,6 +547,9 @@ class FigureMap:
|
|
|
526
547
|
y_vals = lats
|
|
527
548
|
z_vals = alts
|
|
528
549
|
|
|
550
|
+
if values is not None:
|
|
551
|
+
z_vals = np.asarray(values, dtype=np.float64)
|
|
552
|
+
|
|
529
553
|
trace = go.Heatmap(
|
|
530
554
|
x=x_vals,
|
|
531
555
|
y=y_vals,
|
|
@@ -580,8 +604,8 @@ class FigureMap:
|
|
|
580
604
|
self._traces.append(go.Scattermap(**trace_kwargs))
|
|
581
605
|
else:
|
|
582
606
|
trace_kwargs = {
|
|
583
|
-
"x": display[:,
|
|
584
|
-
"y": display[:,
|
|
607
|
+
"x": display[:, 1],
|
|
608
|
+
"y": display[:, 0],
|
|
585
609
|
"mode": mode,
|
|
586
610
|
"marker": {"size": size, "color": color},
|
|
587
611
|
"showlegend": False,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="31" tests="137" time="12.921" timestamp="2026-04-15T21:22:50.814916+00:00" hostname="runner-jlguopmmv-project-74598118-concurrent-0"><testcase classname="test.test_figure3d" name="test_enu_requires_origin" time="0.002" /><testcase classname="test.test_figure3d" name="test_build_returns_plotly_figure" time="0.767" /><testcase classname="test.test_figure3d" name="test_plot_surfaces_convenience" time="0.052" /><testcase classname="test.test_figure3d" name="test_visual_ellipsoid_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:41: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_multiple_spheres" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:54: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_combined_surfaces" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:66: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_add_intersection_requires_two_surfaces" time="0.002" /><testcase classname="test.test_figure3d" name="test_add_intersection_returns_self" time="2.745" /><testcase classname="test.test_figure3d" name="test_add_intersection_creates_trace" time="2.913" /><testcase classname="test.test_figure3d" name="test_visual_sphere_intersection" time="0.000"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:117: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_geolocation_surfaces" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:252: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_geolocation_intersection" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:262: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure_map" name="test_default_init" time="0.001" /><testcase classname="test.test_figure_map" name="test_blank_enu_requires_origin" time="0.002" /><testcase classname="test.test_figure_map" name="test_blank_enu_with_origin" time="0.001" /><testcase classname="test.test_figure_map" name="test_build_satellite_returns_figure" time="0.046" /><testcase classname="test.test_figure_map" name="test_build_blank_returns_figure" time="0.043" /><testcase classname="test.test_figure_map" name="test_build_with_title" time="0.038" /><testcase classname="test.test_figure_map" name="test_add_contour_returns_self" time="0.004" /><testcase classname="test.test_figure_map" name="test_add_contour_satellite_creates_scattermap" time="0.039" /><testcase classname="test.test_figure_map" name="test_add_contour_blank_creates_scatter" time="0.039" /><testcase classname="test.test_figure_map" name="test_add_contours_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_contours_creates_separate_traces" time="0.041" /><testcase classname="test.test_figure_map" name="test_add_contours_empty_list" time="0.037" /><testcase classname="test.test_figure_map" name="test_add_band_returns_self" time="0.009" /><testcase classname="test.test_figure_map" name="test_add_band_creates_filled_trace" time="0.046" /><testcase classname="test.test_figure_map" name="test_add_band_blank_mode" time="0.044" /><testcase classname="test.test_figure_map" name="test_add_band_empty_list" time="0.037" /><testcase classname="test.test_figure_map" name="test_add_filled_contour_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_filled_contour_creates_fill" time="0.041" /><testcase classname="test.test_figure_map" name="test_add_markers_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_markers_satellite" time="0.039" /><testcase classname="test.test_figure_map" name="test_add_markers_blank" time="0.037" /><testcase classname="test.test_figure_map" name="test_add_markers_single_point" time="0.039" /><testcase classname="test.test_figure_map" name="test_full_chaining" time="0.050" /><testcase classname="test.test_figure_map" name="test_auto_color_cycling" time="0.042" /><testcase classname="test.test_figure_map" name="test_visual_satellite_contours" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to inspect satellite map">/builds/geosol-foss/python/gri-plot/test/test_figure_map.py:308: Visual test - unskip to inspect satellite map</skipped></testcase><testcase classname="test.test_figure_map" name="test_visual_blank_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to inspect blank ENU plot">/builds/geosol-foss/python/gri-plot/test/test_figure_map.py:321: Visual test - unskip to inspect blank ENU plot</skipped></testcase><testcase classname="test.test_frames" name="test_xyz_lla_roundtrip" time="0.001" /><testcase classname="test.test_frames" name="test_enu_requires_origin" time="0.001" /><testcase classname="test.test_frames" name="test_enu_roundtrip" time="0.002" /><testcase classname="test.test_frames" name="test_axis_labels" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_residual_on_axis_inside" time="0.002" /><testcase classname="test.test_observables.test_aoa" name="test_residual_perpendicular_outside" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_invalid_max_range" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_visual_aoa_cone" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_aoa.py:40: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_fdoa" name="test_residual_symmetric_velocities" time="0.001" /><testcase classname="test.test_observables.test_fdoa" name="test_invalid_frequency" time="0.001" /><testcase classname="test.test_observables.test_fdoa" name="test_visual_fdoa_surface" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_fdoa.py:36: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_los" name="test_residual_inside_outside" time="0.001" /><testcase classname="test.test_observables.test_los" name="test_invalid_length" time="0.001" /><testcase classname="test.test_observables.test_los" name="test_visual_los_ray" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_los.py:32: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_range_sphere" name="test_residual_on_surface" time="0.002" /><testcase classname="test.test_observables.test_range_sphere" name="test_invalid_range" time="0.001" /><testcase classname="test.test_observables.test_range_sphere" name="test_visual_range_sphere" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_range_sphere.py:25: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_tdoa" name="test_residual_at_midpoint_zero_tdoa" time="0.001" /><testcase classname="test.test_observables.test_tdoa" name="test_residual_sign" time="0.001" /><testcase classname="test.test_observables.test_tdoa" name="test_visual_tdoa_hyperboloid" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_tdoa.py:34: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_tdoa" name="test_visual_tdoa_hyperboloid_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_tdoa.py:49: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_terrain" name="test_from_xyz_grids" time="0.002" /><testcase classname="test.test_observables.test_terrain" name="test_from_3d_vertices" time="0.001" /><testcase classname="test.test_observables.test_terrain" name="test_visual_terrain" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_terrain.py:33: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_plot_ellipse" name="test_returns_figure" time="0.048" /><testcase classname="test.test_plot_ellipse" name="test_requires_at_least_one_ellipse" time="0.002" /><testcase classname="test.test_plot_ellipse" name="test_multiple_ellipses_create_traces" time="0.046" /><testcase classname="test.test_plot_ellipse" name="test_show_axes_false_reduces_traces" time="0.079" /><testcase classname="test.test_plot_ellipse" name="test_visual_single_ellipse" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to view">/builds/geosol-foss/python/gri-plot/test/test_plot_ellipse.py:40: Visual test - unskip to view</skipped></testcase><testcase classname="test.test_plot_ellipse" name="test_visual_multiple_ellipses" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to view">/builds/geosol-foss/python/gri-plot/test/test_plot_ellipse.py:48: Visual test - unskip to view</skipped></testcase><testcase classname="test.test_plot_scattermap" name="test_map_plot_single" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_plot_scattermap.py:6: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_plot_scattermap" name="test_map_plot_mult" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_plot_scattermap.py:23: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_single" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:7: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_double" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:14: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_x_space" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:22: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_sequence" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:30: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_kwargs" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:38: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_trace_kwargs" time="0.000"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:46: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_trace_kwargs2" time="0.000"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:54: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_shapes.test_cone" name="test_residual_inside_outside" time="0.002" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[1.5707963267948966-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.5-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.5--10.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_visual_cone" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_cone.py:41: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_cylinder" name="test_residual_inside_outside" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[0.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[-10.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[25.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[25.0--10.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_visual_cylinder" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_cylinder.py:44: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_ellipse" name="test_properties_stored" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_center_defaults_to_origin" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[370.0-10.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[-10.0-350.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[0.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[360.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[720.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[0-50]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[-10-50]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[100-0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[100--5]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_sma_less_than_smi" time="0.002" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_shape" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_extent_at_zero_orientation" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_respects_center" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_repr" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_residual_on_surface" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_requires_covariance_or_semi_axes" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_rejects_both_covariance_and_semi_axes" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_visual_ellipsoid_from_covariance" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_ellipsoid.py:31: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_ellipsoid" name="test_visual_ellipsoid_from_semi_axes" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_ellipsoid.py:42: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset0-0]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset1--1]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset2-1]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_invalid_radius" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_visual_sphere" time="0.000"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_sphere.py:37: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_surfaces.test_intersection" name="test_requires_at_least_two_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_distance_zero_at_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_distance_increases_away_from_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_residual_fn_negative_at_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_residual_fn_positive_away_from_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_radius_property" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_default_radius" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_bounds_merges_all_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_label_property" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_volume_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_vertices_to_mesh3d" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_sphere_mesh_vertices_on_surface" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_compute_face_normals_single_triangle" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_compute_face_normals_tetrahedron" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_flat_surface" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_right_angle" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_boundary_edges_excluded" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_no_refinement_when_flat" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_subdivides_high_curvature" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_with_projection" time="0.003" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_max_iterations_limits_refinement" time="0.006" /><testcase classname="test.test_surfaces.test_mesh" name="test_field_to_mesh_with_refinement" time="0.079" /></testsuite></testsuites>
|
gri_plot-0.2.2/report.xml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="31" tests="137" time="12.427" timestamp="2026-04-07T03:33:02.175018+00:00" hostname="runner-jhcjxvh8-project-74598118-concurrent-0"><testcase classname="test.test_figure3d" name="test_enu_requires_origin" time="0.002" /><testcase classname="test.test_figure3d" name="test_build_returns_plotly_figure" time="0.754" /><testcase classname="test.test_figure3d" name="test_plot_surfaces_convenience" time="0.049" /><testcase classname="test.test_figure3d" name="test_visual_ellipsoid_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:41: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_multiple_spheres" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:54: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_combined_surfaces" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:66: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_add_intersection_requires_two_surfaces" time="0.002" /><testcase classname="test.test_figure3d" name="test_add_intersection_returns_self" time="2.710" /><testcase classname="test.test_figure3d" name="test_add_intersection_creates_trace" time="2.780" /><testcase classname="test.test_figure3d" name="test_visual_sphere_intersection" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:117: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_geolocation_surfaces" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:252: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure3d" name="test_visual_geolocation_intersection" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_figure3d.py:262: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_figure_map" name="test_default_init" time="0.001" /><testcase classname="test.test_figure_map" name="test_blank_enu_requires_origin" time="0.001" /><testcase classname="test.test_figure_map" name="test_blank_enu_with_origin" time="0.001" /><testcase classname="test.test_figure_map" name="test_build_satellite_returns_figure" time="0.044" /><testcase classname="test.test_figure_map" name="test_build_blank_returns_figure" time="0.042" /><testcase classname="test.test_figure_map" name="test_build_with_title" time="0.037" /><testcase classname="test.test_figure_map" name="test_add_contour_returns_self" time="0.003" /><testcase classname="test.test_figure_map" name="test_add_contour_satellite_creates_scattermap" time="0.039" /><testcase classname="test.test_figure_map" name="test_add_contour_blank_creates_scatter" time="0.038" /><testcase classname="test.test_figure_map" name="test_add_contours_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_contours_creates_separate_traces" time="0.039" /><testcase classname="test.test_figure_map" name="test_add_contours_empty_list" time="0.036" /><testcase classname="test.test_figure_map" name="test_add_band_returns_self" time="0.008" /><testcase classname="test.test_figure_map" name="test_add_band_creates_filled_trace" time="0.043" /><testcase classname="test.test_figure_map" name="test_add_band_blank_mode" time="0.041" /><testcase classname="test.test_figure_map" name="test_add_band_empty_list" time="0.036" /><testcase classname="test.test_figure_map" name="test_add_filled_contour_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_filled_contour_creates_fill" time="0.038" /><testcase classname="test.test_figure_map" name="test_add_markers_returns_self" time="0.002" /><testcase classname="test.test_figure_map" name="test_add_markers_satellite" time="0.037" /><testcase classname="test.test_figure_map" name="test_add_markers_blank" time="0.035" /><testcase classname="test.test_figure_map" name="test_add_markers_single_point" time="0.037" /><testcase classname="test.test_figure_map" name="test_full_chaining" time="0.048" /><testcase classname="test.test_figure_map" name="test_auto_color_cycling" time="0.039" /><testcase classname="test.test_figure_map" name="test_visual_satellite_contours" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to inspect satellite map">/builds/geosol-foss/python/gri-plot/test/test_figure_map.py:308: Visual test - unskip to inspect satellite map</skipped></testcase><testcase classname="test.test_figure_map" name="test_visual_blank_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to inspect blank ENU plot">/builds/geosol-foss/python/gri-plot/test/test_figure_map.py:321: Visual test - unskip to inspect blank ENU plot</skipped></testcase><testcase classname="test.test_frames" name="test_xyz_lla_roundtrip" time="0.001" /><testcase classname="test.test_frames" name="test_enu_requires_origin" time="0.001" /><testcase classname="test.test_frames" name="test_enu_roundtrip" time="0.001" /><testcase classname="test.test_frames" name="test_axis_labels" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_residual_on_axis_inside" time="0.002" /><testcase classname="test.test_observables.test_aoa" name="test_residual_perpendicular_outside" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_invalid_max_range" time="0.001" /><testcase classname="test.test_observables.test_aoa" name="test_visual_aoa_cone" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_aoa.py:40: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_fdoa" name="test_residual_symmetric_velocities" time="0.001" /><testcase classname="test.test_observables.test_fdoa" name="test_invalid_frequency" time="0.001" /><testcase classname="test.test_observables.test_fdoa" name="test_visual_fdoa_surface" time="0.000"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_fdoa.py:36: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_los" name="test_residual_inside_outside" time="0.001" /><testcase classname="test.test_observables.test_los" name="test_invalid_length" time="0.001" /><testcase classname="test.test_observables.test_los" name="test_visual_los_ray" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_los.py:32: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_range_sphere" name="test_residual_on_surface" time="0.001" /><testcase classname="test.test_observables.test_range_sphere" name="test_invalid_range" time="0.001" /><testcase classname="test.test_observables.test_range_sphere" name="test_visual_range_sphere" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_range_sphere.py:25: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_tdoa" name="test_residual_at_midpoint_zero_tdoa" time="0.001" /><testcase classname="test.test_observables.test_tdoa" name="test_residual_sign" time="0.001" /><testcase classname="test.test_observables.test_tdoa" name="test_visual_tdoa_hyperboloid" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_tdoa.py:34: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_tdoa" name="test_visual_tdoa_hyperboloid_enu" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_tdoa.py:49: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_observables.test_terrain" name="test_from_xyz_grids" time="0.002" /><testcase classname="test.test_observables.test_terrain" name="test_from_3d_vertices" time="0.001" /><testcase classname="test.test_observables.test_terrain" name="test_visual_terrain" time="0.000"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_observables/test_terrain.py:33: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_plot_ellipse" name="test_returns_figure" time="0.046" /><testcase classname="test.test_plot_ellipse" name="test_requires_at_least_one_ellipse" time="0.002" /><testcase classname="test.test_plot_ellipse" name="test_multiple_ellipses_create_traces" time="0.043" /><testcase classname="test.test_plot_ellipse" name="test_show_axes_false_reduces_traces" time="0.075" /><testcase classname="test.test_plot_ellipse" name="test_visual_single_ellipse" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to view">/builds/geosol-foss/python/gri-plot/test/test_plot_ellipse.py:40: Visual test - unskip to view</skipped></testcase><testcase classname="test.test_plot_ellipse" name="test_visual_multiple_ellipses" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to view">/builds/geosol-foss/python/gri-plot/test/test_plot_ellipse.py:48: Visual test - unskip to view</skipped></testcase><testcase classname="test.test_plot_scattermap" name="test_map_plot_single" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_plot_scattermap.py:6: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_plot_scattermap" name="test_map_plot_mult" time="0.000"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_plot_scattermap.py:23: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_single" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:7: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_double" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:14: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_x_space" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:22: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_sequence" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:30: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_kwargs" time="0.001"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:38: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_trace_kwargs" time="0.000"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:46: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_scatter" name="test_trace_kwargs2" time="0.000"><skipped type="pytest.skip" message="manual only for demonstration and test">/builds/geosol-foss/python/gri-plot/test/test_scatter.py:54: manual only for demonstration and test</skipped></testcase><testcase classname="test.test_shapes.test_cone" name="test_residual_inside_outside" time="0.002" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[1.5707963267948966-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.5-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_invalid_parameters[0.5--10.0]" time="0.001" /><testcase classname="test.test_shapes.test_cone" name="test_visual_cone" time="0.000"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_cone.py:41: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_cylinder" name="test_residual_inside_outside" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[0.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[-10.0-100.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[25.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_invalid_parameters[25.0--10.0]" time="0.001" /><testcase classname="test.test_shapes.test_cylinder" name="test_visual_cylinder" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_cylinder.py:44: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_ellipse" name="test_properties_stored" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_center_defaults_to_origin" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[370.0-10.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[-10.0-350.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[0.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[360.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_ori_deg_normalized[720.0-0.0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[0-50]" time="0.002" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[-10-50]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[100-0]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_non_positive_axes[100--5]" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_rejects_sma_less_than_smi" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_shape" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_extent_at_zero_orientation" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_boundary_respects_center" time="0.001" /><testcase classname="test.test_shapes.test_ellipse" name="test_repr" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_residual_on_surface" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_requires_covariance_or_semi_axes" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_rejects_both_covariance_and_semi_axes" time="0.001" /><testcase classname="test.test_shapes.test_ellipsoid" name="test_visual_ellipsoid_from_covariance" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_ellipsoid.py:31: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_ellipsoid" name="test_visual_ellipsoid_from_semi_axes" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_ellipsoid.py:42: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset0-0]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset1--1]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_residual_fn[point_offset2-1]" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_invalid_radius" time="0.001" /><testcase classname="test.test_shapes.test_sphere" name="test_visual_sphere" time="0.001"><skipped type="pytest.skip" message="Visual test - unskip to generate plot">/builds/geosol-foss/python/gri-plot/test/test_shapes/test_sphere.py:37: Visual test - unskip to generate plot</skipped></testcase><testcase classname="test.test_surfaces.test_intersection" name="test_requires_at_least_two_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_distance_zero_at_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_distance_increases_away_from_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_residual_fn_negative_at_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_residual_fn_positive_away_from_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_radius_property" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_default_radius" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_bounds_merges_all_surfaces" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_label_property" time="0.001" /><testcase classname="test.test_surfaces.test_intersection" name="test_volume_intersection" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_vertices_to_mesh3d" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_sphere_mesh_vertices_on_surface" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_compute_face_normals_single_triangle" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_compute_face_normals_tetrahedron" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_flat_surface" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_right_angle" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_dihedral_angles_boundary_edges_excluded" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_no_refinement_when_flat" time="0.001" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_subdivides_high_curvature" time="0.002" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_with_projection" time="0.003" /><testcase classname="test.test_surfaces.test_mesh" name="test_refine_mesh_max_iterations_limits_refinement" time="0.006" /><testcase classname="test.test_surfaces.test_mesh" name="test_field_to_mesh_with_refinement" time="0.078" /></testsuite></testsuites>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|