Skip to content

Fix RIC velocity computation and test it better #143

Fix RIC velocity computation and test it better

Fix RIC velocity computation and test it better #143

Workflow file for this run

on:
pull_request:
push:
branches:
- master
name: ANISE Rust Workflow
env:
RUST_BACKTRACE: 1
RUST_LOG: info
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install CSPICE
run: sh dev-env-setup.sh
- name: Run cargo check
run: cargo check --workspace --exclude anise-gui --exclude anise-py
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Download data
run: |
wget -O data/de421.bsp http://public-data.nyxspace.com/anise/de421.bsp
wget -O data/de430.bsp http://public-data.nyxspace.com/anise/de430.bsp
wget -O data/de440s.bsp http://public-data.nyxspace.com/anise/de440s.bsp
wget -O data/de440.bsp http://public-data.nyxspace.com/anise/de440.bsp
wget -O data/pck08.pca http://public-data.nyxspace.com/anise/v0.3/pck08.pca
wget -O data/pck11.pca http://public-data.nyxspace.com/anise/v0.3/pck11.pca
wget -O data/gmat-hermite.bsp http://public-data.nyxspace.com/anise/ci/gmat-hermite.bsp
wget -O data/variable-seg-size-hermite.bsp http://public-data.nyxspace.com/anise/ci/variable-seg-size-hermite.bsp
wget -O data/earth_latest_high_prec.bpc http://public-data.nyxspace.com/anise/ci/earth_latest_high_prec-2023-09-08.bpc
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install CSPICE
run: sh dev-env-setup.sh && cd .. # Return to root
- name: Test debug
run: cargo test --workspace --exclude anise-gui --exclude anise-py
- name: Test release
run: cargo test --release --workspace --exclude anise-gui --exclude anise-py
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy -p anise -- -D warnings
validation:
name: Validation
runs-on: ubuntu-latest
needs: [check, test, lints]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Download data
run: |
wget -O data/de421.bsp http://public-data.nyxspace.com/anise/de421.bsp
wget -O data/de430.bsp http://public-data.nyxspace.com/anise/de430.bsp
wget -O data/de440s.bsp http://public-data.nyxspace.com/anise/de440s.bsp
wget -O data/de440.bsp http://public-data.nyxspace.com/anise/de440.bsp
wget -O data/pck08.pca http://public-data.nyxspace.com/anise/v0.3/pck08.pca
wget -O data/pck11.pca http://public-data.nyxspace.com/anise/v0.3/pck11.pca
wget -O data/gmat-hermite.bsp http://public-data.nyxspace.com/anise/ci/gmat-hermite.bsp
wget -O data/variable-seg-size-hermite.bsp http://public-data.nyxspace.com/anise/ci/variable-seg-size-hermite.bsp
wget -O data/earth_latest_high_prec.bpc http://public-data.nyxspace.com/anise/ci/earth_latest_high_prec-2023-09-08.bpc
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install CSPICE
run: sh dev-env-setup.sh && cd .. # Return to root
- name: CLI SPK
run: |
cargo build --bin anise-cli --workspace --exclude anise-py
./target/debug/anise-cli inspect data/gmat-hermite.bsp
./target/debug/anise-cli inspect data/de440.bsp
- name: Rust-SPICE JPL DE validation
run: RUST_BACKTRACE=1 cargo test validate_jplde --features spkezr_validation --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
- name: Rust-SPICE hermite validation
run: RUST_BACKTRACE=1 cargo test validate_hermite_type13_ --features spkezr_validation --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
- name: Rust-SPICE PCK validation
run: RUST_BACKTRACE=1 cargo test validate_iau_rotation_to_parent --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --ignored
- name: Rust-SPICE BPC validation
run: |
RUST_BACKTRACE=1 cargo test validate_bpc_ --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
RUST_BACKTRACE=1 cargo test de440s_translation_verif_venus2emb --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
# Now analyze the results and create pretty plots
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Validation analysis
run: |
cd anise/tests/test_analysis
pip install -r requirements.txt
python spk_validation_plots.py
- name: Save validation artifacts
uses: actions/upload-artifact@v3
with:
name: validation-artifacts
path: target/*.html
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download data
run: |
wget -O data/de421.bsp http://public-data.nyxspace.com/anise/de421.bsp
wget -O data/de430.bsp http://public-data.nyxspace.com/anise/de430.bsp
wget -O data/de440s.bsp http://public-data.nyxspace.com/anise/de440s.bsp
wget -O data/de440.bsp http://public-data.nyxspace.com/anise/de440.bsp
wget -O data/pck08.pca http://public-data.nyxspace.com/anise/v0.3/pck08.pca
wget -O data/pck11.pca http://public-data.nyxspace.com/anise/v0.3/pck11.pca
wget -O data/gmat-hermite.bsp http://public-data.nyxspace.com/anise/ci/gmat-hermite.bsp
wget -O data/variable-seg-size-hermite.bsp http://public-data.nyxspace.com/anise/ci/variable-seg-size-hermite.bsp
wget -O data/earth_latest_high_prec.bpc http://public-data.nyxspace.com/anise/ci/earth_latest_high_prec-2023-09-08.bpc
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Install CSPICE
run: sh dev-env-setup.sh && cd .. # Return to root
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate coverage report
run: |
cd anise # Prevent the workspace flag
cargo llvm-cov clean --workspace
cargo llvm-cov test --no-report -- --test-threads=1
cargo llvm-cov test --no-report --tests -- compile_fail
cargo llvm-cov test --no-report validate_iau_rotation_to_parent -- --nocapture --ignored
cargo llvm-cov test --no-report validate_bpc_to_iau_rotations -- --nocapture --ignored
cargo llvm-cov test --no-report validate_jplde_de440s_no_aberration --features spkezr_validation -- --nocapture --ignored
cargo llvm-cov test --no-report validate_jplde_de440s_aberration_lt --features spkezr_validation -- --nocapture --ignored
cargo llvm-cov test --no-report validate_hermite_type13_from_gmat --features spkezr_validation -- --nocapture --ignored
cargo llvm-cov report --lcov > ../lcov.txt
env:
RUSTFLAGS: --cfg __ui_tests
- name: Upload coverage report
uses: codecov/codecov-action@v3
env:
TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
files: ./lcov.txt