Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
14fed08
Power: Rewrite ac_power_three_phase in MATLAB
simmsa Mar 12, 2025
0fef802
Power: Rewrite dc_power in MATLAB
simmsa Mar 12, 2025
19111bb
Power: Rewrite instantaneous_frequency in MATLAB
simmsa Mar 12, 2025
9866bc2
Power: Rewrite ac_power_three_phase to use parse
simmsa Jun 10, 2025
73909a2
Power: Use `parse` to verify dc_power args
simmsa Jun 10, 2025
1079da8
Power: Rewrite harmonic_subgroups in MATLAB
simmsa Jun 10, 2025
954ff9a
Power: Rewrite instantaneous_frequency in MATLAB
simmsa Jun 10, 2025
3189f29
Power: Rewrite harmonics in MATLAB
simmsa Jun 10, 2025
6732319
Power: Rewrite interharmonics in MATLAB
simmsa Jun 10, 2025
5c7ad41
Power: Rewrite total_harmonic_current_distortion in MATLAB
simmsa Jun 10, 2025
59a1d39
Power: Add 'LineToLine' key for ac_power_three_phase tests
simmsa Jun 10, 2025
6b4095f
Merge remote-tracking branch 'upstream/develop' into feat_convert_pow…
simmsa Jul 1, 2025
2bb27b6
Power: Remove unnecessary time vector matching
simmsa Jul 17, 2025
efcbdcf
Power: Fix, properly set time_vector
simmsa Jul 17, 2025
3fc0f0a
Power: Warn user if delta t is outside of tolerance
simmsa Aug 7, 2025
1dd3211
Power: Use scipy to calculate hilbert if MATLAB hilbert is not found
simmsa Aug 7, 2025
b2c4efa
Power: Fix syntax in dt warning
simmsa Aug 7, 2025
a24e7d1
Wave: Improve frequency_moment docstring
simmsa Mar 4, 2026
2be199f
Wave: Return column vector from frequency moment
simmsa Mar 4, 2026
d2ea644
Wave: Refactor peak_period into native MATLAB code
simmsa Mar 4, 2026
bb46b44
Fix: Use correct 62600-100 equation number for frequency moment
simmsa Mar 4, 2026
5bedaf9
acoustics updates from PR #433
hivanov-nrel Jun 30, 2026
4d3fd43
wispr io read + export audio + tests
hivanov-nrel Jul 1, 2026
2905b16
updates to decidance level calcs & tests
hivanov-nrel Jul 1, 2026
bcdca80
bug corrections from tests
hivanov-nrel Jul 1, 2026
accd0b3
docstring bug fix
hivanov-nrel Jul 1, 2026
9cba0be
Merge branch 'develop' into acoustics_updates
hivanov-nrel Jul 1, 2026
816716a
Standardize: Define initial specification for user input matrix trans…
simmsa Aug 12, 2026
d58f1f2
Wave: Follow MHKiT-Python 1.1.2 conventions for computing frequency bins
simmsa Aug 12, 2026
ac43865
Tests: Define `standardize_wave_spectra_frequency` test
simmsa Aug 12, 2026
7f8832c
Wave: Improve frequency_moment docs, errors, and validation
simmsa Aug 12, 2026
30a04f0
Utils: Add runtime check for column vector output
simmsa Aug 12, 2026
9ed7036
Tests: Define mhkit_verify_column_vector_output tests
simmsa Aug 12, 2026
0bce8f5
Wave: Define functions to standardize and convert spectra input/output
simmsa Aug 13, 2026
e629536
Wave: Refactor energy_period to include examples and use spectra helpers
simmsa Aug 13, 2026
bcece5c
Utils: input_kind -> input_variant
simmsa Aug 13, 2026
4d54fa3
Wave: Refactor peak_period to include examples and use spectra helpers
simmsa Aug 13, 2026
99a9d28
Wave: Refactor significant_wave_height to include examples and use sp…
simmsa Aug 13, 2026
6956133
Wave: Define MATLAB native `energy_period_to_peak_period` function
simmsa Aug 13, 2026
c614492
Wave: Refactor average_crest_period to include examples and use spect…
simmsa Aug 13, 2026
9543ee8
Wave: Define capture_width, deprecate capture_length
simmsa Aug 13, 2026
562997e
Wave: Define `capture_width_matrix` as native MATLAB, deprecate captu…
simmsa Aug 13, 2026
e01cd8a
Wave: Add units to docstring examples
simmsa Aug 13, 2026
00d9186
Actions: Define action to run modules with MATLAB only code
simmsa Sep 15, 2026
89c921a
Tests: Define script to run matlab_only_tests on MacOS
simmsa Sep 15, 2026
8430691
Tests: Define script to run matlab only tests on Windows
simmsa Sep 15, 2026
9d37155
Tests: Define runner for MATLAB only tests
simmsa Sep 15, 2026
82ba419
Actions: Update use actions to latest versions
simmsa Sep 15, 2026
9603660
Tests: Only tests complete test modules that are 100% MATLAB
simmsa Sep 15, 2026
2ca1142
Tests: Add MATLAB only examples test
simmsa Sep 15, 2026
77926a0
Actions: Define action to run example that are native matlab
simmsa Sep 15, 2026
3704769
Examples: Fix, older matlab versions failing to build strain_example
simmsa Sep 15, 2026
2e6af08
Actions: Bump minimum MATLAB version to R2023b
simmsa Sep 15, 2026
cdf676f
Merge pull request #199 from simmsa/matlab_only_tests
simmsa Sep 15, 2026
0b81d3a
Merge remote-tracking branch 'upstream/develop' into feat_convert_wav…
simmsa Sep 16, 2026
a62c9f5
Wave: Define MATLAB native `average_wave_period` function
simmsa Sep 16, 2026
c69c375
Wave: Define MATLAB native `average_zero_crossing_wave_period` function
simmsa Sep 16, 2026
72d2bbf
Wave: Define MATLAB native `wave_number` function
simmsa Sep 16, 2026
3034b12
Wave: Define MATLAB native `wave_length` function
simmsa Sep 16, 2026
ef23992
Wave: Define MATLAB native `depth_regime` function
simmsa Sep 16, 2026
e55d741
Merge remote-tracking branch 'upstream/develop' into acoustics_updates
simmsa Sep 18, 2026
5a48563
Wave: Define MATLAB native `wave_celerity` function
simmsa Sep 23, 2026
82af7db
Wave: Define MATLAB native `energy_flux` function
simmsa Sep 23, 2026
33ddf3f
Wave: Add examples to `frequency_moment` docstring
simmsa Sep 23, 2026
35d9b95
Wave: Used mhkit functions to conform matrix io
simmsa Sep 23, 2026
dc6f783
Wave: Use MHKiT-Python convention to name frequency moments
simmsa Sep 23, 2026
3765f65
Wave: Prefix error messages with <lib>:<function>:<error variant>
simmsa Sep 23, 2026
fe7fe87
Wave: Improve correctness of docstrings
simmsa Sep 23, 2026
b20abf6
Wave: Define MATLAB native `spectral_width` function
simmsa Sep 23, 2026
672f7f9
Utils: Define function to validate column vector output
simmsa Sep 23, 2026
1c1c45f
Window: Update hamming to match scipy calculation method
simmsa Sep 23, 2026
09ebb32
Window: Update hanning to match scipy calculation method
simmsa Sep 23, 2026
acd4e98
Wave: Refactor `surface_elevation` following MHKiT-Python conventions
simmsa Sep 23, 2026
261383d
Wave: Refactor power_performance_workflow for native matlab implement…
simmsa Sep 23, 2026
8eee371
Wave: Define MATLAB native `mean_annual_energy_production_matrix` fun…
simmsa Sep 23, 2026
3cb5d16
Wave: Define MATLAB native `spectral_bandwidth` function
simmsa Sep 24, 2026
e56a84a
Wave: capture length -> capture width
simmsa Sep 24, 2026
7591aad
Wave: Define MATLAB native `mean_annual_energy_production_timeseries`…
simmsa Sep 24, 2026
47bae1b
Wave: Define MATLAB native `power_matrix` function
simmsa Sep 24, 2026
6684358
Utils: Define matlab native 1d bin generation function
simmsa Sep 25, 2026
2efc7d7
Utils: Define MATLAB native 2d bin edge/center calculation function
simmsa Sep 25, 2026
ef0564a
Utils: Define MATLAB native 2d binned statistics function
simmsa Sep 25, 2026
89334a7
Wave: Use bin stats utilities to calculate capture width matrix
simmsa Sep 25, 2026
5b8194d
Wave: Define MATLAB native `wave_energy_flux_matrix` function
simmsa Sep 25, 2026
2706328
Wave: Require capture width and J matrices to match to calculate powe…
simmsa Sep 25, 2026
2ab0864
Wave: Build capture width matrices from bin spec in power_performance…
simmsa Sep 25, 2026
63e30ba
Errors: Make function_name passing optional for error messages
simmsa Sep 25, 2026
499e410
Utils: Define `mhkit_frequency_to_column_names`
simmsa Sep 26, 2026
c350195
Tests: Define utils tests for bin size correctness
simmsa Sep 26, 2026
085eeb0
Tests: Define utils binned 2d statistic tests
simmsa Sep 28, 2026
b49e21f
Utils: bins -> bin_spec
simmsa Sep 28, 2026
1680e81
Utils: Make function_name optional
simmsa Sep 28, 2026
077624b
Tests: Wave, capture_length -> capture_width
simmsa Sep 28, 2026
54d063f
Wave: Use bin_spec internally in functions to keep public api unchanged
simmsa Sep 28, 2026
c375e5d
Wave: Revert incorrect test count changes to original values
simmsa Sep 28, 2026
e14295b
Tests: Remove not calculated outputs from power_performance_workflow
simmsa Sep 28, 2026
570003b
Tests: Check mean_annual_energy_production_timeseries against seeded …
simmsa Sep 28, 2026
8e0614f
Tests: Remove incorrect sqrt from average wave period tests
simmsa Sep 28, 2026
11c49e5
Data: Update ValData2 to use sqrt(1 - m2^2 / (m0 * m4)) for spectral
simmsa Sep 28, 2026
015f859
Tests: Convert test_depth_regime outputs to logical
simmsa Sep 28, 2026
4a131fc
Tests: Use MATLAB logicals for test inputs
simmsa Sep 28, 2026
716dc09
Tests: Disable test_plot_environmental_contour_multiyear
simmsa Sep 28, 2026
6295483
Tests: Improve surface_elevation by testing against same seed
simmsa Sep 28, 2026
a5815ee
Tests: Move non MATLAB wave resource tests into TestElevationSpectrum
simmsa Sep 28, 2026
578f1ab
Tests: Add zero freq tests for pm and jonswap spectrums
simmsa Sep 28, 2026
4105aee
Tests: Add surface_elevation method tests
simmsa Sep 28, 2026
d1af6f1
Tests: Set assume fail on hindcast tests
simmsa Sep 28, 2026
bb3babd
Wave: Define MATLAB native `read_NDBC_file` function
simmsa Sep 28, 2026
6ebe8ae
Data: Clean up accidentally committed loads test files
simmsa Sep 28, 2026
8ace38c
Clean: Remove signal processing functions planned for wave module part 2
simmsa Sep 28, 2026
380ce3a
Tests: Define tests for mhkit_verify_is_column_vector
simmsa Sep 28, 2026
c416cad
Tests: Skip random NDBC variable that causes intermittent test failure
simmsa Sep 28, 2026
fffeaf8
Tests: Define tests for mhkit_frequency_to_column_names
simmsa Sep 28, 2026
9eebbdc
Tests: Define tests for mhkit_standardize_spectrum_input
simmsa Sep 28, 2026
cb1e24d
Tests: Define tests for mhkit_restore_spectrum_output
simmsa Sep 28, 2026
89acb57
Viz: Define mhkit_plot_matrix as shared 2d binned data plotter
simmsa Sep 28, 2026
6e7ad0d
Wave: Refactor plot_matrix as wrapper around mhkit_plot_matrix
simmsa Sep 28, 2026
9ade37e
Viz: Clean up mhkit_plot_matrix docstring
simmsa Sep 28, 2026
88aa183
Revert "Data: Clean up accidentally committed loads test files"
simmsa Sep 28, 2026
fcec055
Revert "Clean: Remove signal processing functions planned for wave mo…
simmsa Sep 28, 2026
059057c
Viz: Add more customization to mhkit_plot_matrix
simmsa Sep 28, 2026
936f49a
Wave: Add more customization options to plot_matrix
simmsa Sep 28, 2026
3305cca
Tests: Add wave native matlab tests to MATLAB only tests
simmsa Sep 28, 2026
aa215c3
Tests: Add wave and wecsim_power_performance_example to matlab only n…
simmsa Sep 28, 2026
4cf943d
Tests: Move Contour from Wave_TestResourceMetrics to TestContours
simmsa Sep 28, 2026
53ef89e
Wave: Define MATLAB native `swan_read_block` function
simmsa Sep 28, 2026
b48a306
Tests: Add Wave_TestIO to MATLAB only tests.
simmsa Sep 28, 2026
1f98029
Tests: Move mhkit_* helper tests into Utils_TestMhkitUtils
simmsa Sep 28, 2026
d0a80d8
Tests: Update test_plot_elevation_timeseries without python roundtrip
simmsa Sep 28, 2026
7204dd9
Examples: Use capture width in WEC-Sim Power Performance Example
simmsa Sep 28, 2026
9615aa4
Examples: Rerender CDIP example with Native MATLAB code
simmsa Sep 28, 2026
ec8c407
Examples: Update wave example with native matlab functions
simmsa Sep 28, 2026
e330ff9
Examples: Add static CDIP data from 277 for wave module example
simmsa Sep 28, 2026
8af597e
Merge remote-tracking branch 'upstream/develop' into feat_convert_pow…
simmsa Sep 28, 2026
54f4929
Wave: Improve efficiency and robustness of CDIP nc reads
simmsa Sep 28, 2026
e903889
Wave: Standardize cdip_request_parse_workflow docstrings
simmsa Sep 28, 2026
97d4205
Tests: Make CDIP meta check within a time window range
simmsa Sep 28, 2026
690c6ae
Wave: Add reference model data and accessor function
simmsa Sep 28, 2026
358a6cd
Viz: Define helper for string -> colormap conversion
simmsa Sep 29, 2026
dc1d4c8
Viz: Add string colormap to mhkit_plot_matrix
simmsa Sep 29, 2026
009ec9a
Viz: Use more technically correct labels for Te and Hm0
simmsa Sep 29, 2026
c174ff2
Tests: Add string -> colormap tests
simmsa Sep 29, 2026
defff53
Viz: add padding option to matrix plotting
simmsa Sep 29, 2026
7acb8a4
Wave: Add standalone function for plotting JPD's
simmsa Sep 29, 2026
879e5ec
Examples: Cache 1 year of cdip 277 data, remove 1 month
simmsa Sep 29, 2026
8a3e128
Wave: Add DOE reference models data and accessor function
simmsa Sep 29, 2026
753cff3
Tests: Define plot_wave_joint_probability_distribution tests
simmsa Sep 29, 2026
c05c26f
Examples: Use 1 year of 277 data
simmsa Sep 29, 2026
1d7d342
Examples: Refactor wave to use reference models, and improve logical …
simmsa Sep 29, 2026
d939467
Agent Host changes for agents/matlab-pure-implementation-performance
hivanov-nrel Sep 29, 2026
1361756
Signal: Define scipy based hilbert function
simmsa Sep 30, 2026
eaf30e7
Power: Standardize docstring formatting and style
simmsa Sep 30, 2026
25c04df
Tests: Add power module and example to MATLAB only tests
simmsa Sep 30, 2026
8937377
Tests: Define SignalProcessing hilbert tests
simmsa Sep 30, 2026
138c528
Power: Use MHKiT-Python equation for ac_power_three_phase calculation
simmsa Sep 30, 2026
e12269c
Power: Refactor instantaneous_frequency to use mhkit_hilbert
simmsa Sep 30, 2026
9921f50
Power: Clean up gen_test_data docstring
simmsa Sep 30, 2026
5b0b205
Power: Format docstring in flicker_ufic_workflow
simmsa Sep 30, 2026
260b5bb
Power: Refactor harmonics using a more explainable implementation
simmsa Sep 30, 2026
43db065
Power: Define mhkit_validate_sample_rate_hz to check and validate sam…
simmsa Sep 30, 2026
deb0e61
Power: Use mhkit_validate_sample_rate_hz in instantaneous_frequency
simmsa Sep 30, 2026
c129c88
Tests: Define multi harmonic test
simmsa Sep 30, 2026
3ef29e1
Tests: Define tests for harmonics warnings and errors
simmsa Sep 30, 2026
1194b09
Power: Do not change ac_power_three_phase public api
simmsa Sep 30, 2026
b84fd08
Tests: Use all test cases in test_gen_test_data instead of one at random
simmsa Sep 30, 2026
f1aa5e2
Tests: Run every ZCD flicker scenario and phase angle test in test_fl…
simmsa Sep 30, 2026
890e6fe
Tests: Split STFT flicker scenario into separate test that skips with…
simmsa Sep 30, 2026
aff349e
Examples: Add 3 phase voltage and current plots to power example
simmsa Sep 30, 2026
c28705c
Examples: Clean up power example text and plot label formatting
simmsa Sep 30, 2026
4b5e628
Examples: Render power example
simmsa Sep 30, 2026
4dc2ad8
Power: Convent error messages to MHKiT convention
simmsa Sep 30, 2026
f5bacfd
Power: Validate function input and output using arguments
simmsa Sep 30, 2026
60e76fb
Power: Remove 50,60 check that is done by arguments
simmsa Sep 30, 2026
8daae2f
Utils: Add column vector helpers from wave refactor
simmsa Sep 30, 2026
79f9d32
Merge pull request #164 from simmsa/feat_convert_power_module_to_nati…
simmsa Sep 30, 2026
f7b0a8c
Merge remote-tracking branch 'upstream/develop' into acoustics_updates
simmsa Sep 30, 2026
131dfd6
Examples: Render latest acoustics example assets
simmsa Sep 30, 2026
e9ce25f
Merge pull request #198 from hivanov-nrel/acoustics_updates
simmsa Sep 30, 2026
e13e475
Merge remote-tracking branch 'upstream/develop' into feat_convert_wav…
simmsa Sep 30, 2026
1e53ca2
Merge pull request #196 from simmsa/feat_convert_wave_module_to_nativ…
simmsa Sep 30, 2026
4d55376
Merge remote-tracking branch 'upstream/develop' into matlabify_river
simmsa Sep 30, 2026
06316ea
River: Rename Froude_number -> froude_number
simmsa Sep 30, 2026
c722194
River: Add detail to read_usgs_file docstring types
simmsa Sep 30, 2026
13ba50d
River: Format docstrings and arguments block
simmsa Sep 30, 2026
feec686
River: Modify `energy_produced` to match MHKiT-Python implementation
simmsa Sep 30, 2026
f13c8b4
River: Standardize `exceedance_probability` user input to column vector
simmsa Sep 30, 2026
2f1c5de
Tests: River, Froude_number -> froude_number
simmsa Sep 30, 2026
e310727
Tests: River, increase precision of test_energy_produced
simmsa Sep 30, 2026
ca26324
Tests: Add river modules to MATLAB native test runners
simmsa Sep 30, 2026
87a7601
River: Add retries and timeouts to request_usgs_data
simmsa Sep 30, 2026
906b784
Merge pull request #200 from hivanov-nrel/matlabify_river
simmsa Sep 30, 2026
ecaec88
Wave: Clean up extra reference model csv files
simmsa Sep 30, 2026
17722aa
Dolfyn: Add dolfyn read deprecation warning
simmsa Sep 30, 2026
53b5332
Utils: Add shared mhkit_is_pandas_dataframe helper
simmsa Sep 30, 2026
993b3ac
Utils: Use mhkit_is_pandas_dataframe for df checking
simmsa Sep 30, 2026
2c57084
Python: Add _to_1d helper function
simmsa Sep 30, 2026
707982a
Dolfyn: Point users to other MHKiT software on read failures
simmsa Sep 30, 2026
05fcc86
Python: Update library version
simmsa Sep 30, 2026
98ff446
QC: Handle python data conversion edge cases
simmsa Sep 30, 2026
d452a6d
Wave: Handle MHKiT 1.1 python data conversion edgecases
simmsa Sep 30, 2026
0b096bf
Ignore: Build assets including toolbox files
simmsa Sep 30, 2026
ee315a6
Project: Update emails to nlr.gov
simmsa Oct 1, 2026
037ddf2
Python: Update version and dependency versions
simmsa Oct 1, 2026
b4ef09c
Toolbox: Update version to 1.1.0
simmsa Oct 1, 2026
e963072
Toolbox: Exclude not needed files from toolbox "binary"
simmsa Oct 1, 2026
c0a3cff
Toolbox: Specify supported platforms, exclude online bc of python dep…
simmsa Oct 1, 2026
62be9d2
Dev: Add script to build mlx and hmtl from .m livescripts
simmsa Oct 1, 2026
3bb2d6d
Tests: Add scripts to run python tests locally via shell scripts
simmsa Oct 1, 2026
3f6410e
Actions: Simplify python runner actions by using platform shell scripts
simmsa Oct 1, 2026
a618d52
Hindcast: Update request_wpto with latest dataset and developer.nlr.g…
simmsa Oct 1, 2026
f8a0620
Utils: Propagate error messages on empty response cached_webread fail…
simmsa Oct 1, 2026
93b4f5b
Tests; Update hindcast url in comment
simmsa Oct 1, 2026
fda9199
Build: Don't bundle python built assets
simmsa Oct 1, 2026
7e799c1
Build: Clarify purpose of toolbox_guid
simmsa Oct 1, 2026
d365876
Supported Versions: Update MATLAB to 2023b and higher
simmsa Oct 1, 2026
a11212b
Clean: Remove extra binary files built by releases
simmsa Oct 1, 2026
f75bb93
Ignore: Coverage reports
simmsa Oct 1, 2026
fde58af
Readme: Update Badges
simmsa Oct 1, 2026
c2b0a79
Docs: Add quick install to readme
simmsa Oct 1, 2026
6834733
Docs: Update install and testing details
simmsa Oct 1, 2026
3439f48
Hindcast: Use more robust to extract meta vs timeseries data
simmsa Oct 1, 2026
399f976
Examples: Update hindcast data with latest API downloads
simmsa Oct 1, 2026
455c178
Hindcast: Add n_times arg to get_site_metadata
simmsa Oct 1, 2026
0608930
Examples: Update WPTO_hindcast to use 3 hour data
simmsa Oct 1, 2026
8a47f41
Tests: Add helper function for wpto hindcast metadata
simmsa Oct 1, 2026
ae7f9f2
Tests: Update hindcast tests for latest API updates
simmsa Oct 1, 2026
cf6f83a
Changelog: Add 1.1.0 release notes
simmsa Oct 1, 2026
a45caf3
Windows: Migrate from miniconda to python.org install on Actions
simmsa Oct 1, 2026
0ba3db8
Examples: Fix, use `./` for paths in river and tidal reads
simmsa Oct 1, 2026
9ace52f
Merge pull request #201 from simmsa/release_prep_1.1
simmsa Oct 1, 2026
315d9b5
Actions: Update build and release versions for 1.1 release
simmsa Oct 1, 2026
f585f3f
Actions: Clean up temporary toolbox build
simmsa Oct 1, 2026
a41d884
Merge pull request #203 from simmsa/release_prep_1.1
simmsa Oct 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .github/workflows/build_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,14 @@ jobs:
run: |
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV

# Keep in sync with the release used to test local builds
- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@v3
with:
release: R2024a
release: R2025b

- name: Build Toolbox
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@v3
with:
command: addpath('scripts'); build_release

Expand Down Expand Up @@ -101,7 +102,7 @@ jobs:
if-no-files-found: error

- name: Create Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop'
with:
files: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code_compatibility_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
matrix:
# os: [macos-13, ubuntu-latest, windows-latest]
os: ["ubuntu-22.04"]
matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b, R2025a, latest]
matlab-version: [R2023b, R2024a, R2024b, R2025a, R2025b, R2026a, R2026b]

runs-on: ${{ matrix.os }}

Expand Down
59 changes: 59 additions & 0 deletions .github/workflows/matlab_only_examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: MHKiT-MATLAB Native Examples

# Execute example live scripts (examples/*.mlx) that run native MATLAB code only

on:
workflow_dispatch: {}
push:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**'
- '.github/workflows/matlab_only_examples.yml'
pull_request:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/**'
- '.github/workflows/matlab_only_examples.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
examples:
name: ${{ matrix.matlab-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Examples are slower than unit tests, so only the oldest and newest
# supported releases are exercised per OS.
include:
- os: macos-15
matlab-version: R2023b
- os: macos-15
matlab-version: R2026b
- os: windows-2025
matlab-version: R2023b
- os: windows-2025
matlab-version: R2026b

steps:
- name: Check out MHKiT-MATLAB
uses: actions/checkout@v7

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v3
with:
release: ${{ matrix.matlab-version }}

- name: Run MATLAB only examples
uses: matlab-actions/run-command@v3
with:
command: |
addpath(fullfile("mhkit", "tests"));
results = runMatlabOnlyExamples();
assertSuccess(results);
startup-options: -noFigureWindows
56 changes: 56 additions & 0 deletions .github/workflows/matlab_only_unit_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: MHKiT-MATLAB MATLAB Only Modules Unit Tests

# Runs the unit tests for modules that are implemented in MATLAB only
#
# The list of test files is in mhkit/tests/runMatlabOnlyTests.m
# Run locally with:
# - MacOS: scripts/run_matlab_only_tests_macos.sh
# - Windows: scripts\run_matlab_only_tests_windows.ps1

on:
workflow_dispatch: {}
push:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/data/**'
- '.github/workflows/matlab_only_unit_tests.yml'
pull_request:
branches: [ master, develop ]
paths:
- 'mhkit/**/*.m'
- 'examples/data/**'
- '.github/workflows/matlab_only_unit_tests.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
unit_tests:
name: ${{ matrix.matlab-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Linux is intentionally omitted, may be added back in the future.
os: [macos-15, windows-2025]
matlab-version: [R2023b, R2024a, R2024b, R2025a, R2025b, R2026a, R2026b]

steps:
- name: Check out MHKiT-MATLAB
uses: actions/checkout@v7

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v3
with:
release: ${{ matrix.matlab-version }}

- name: Run MATLAB only unit tests
uses: matlab-actions/run-command@v3
with:
command: |
addpath(fullfile("mhkit", "tests"));
results = runMatlabOnlyTests();
assertSuccess(results);
startup-options: -noFigureWindows
Loading
Loading