Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
290 commits
Select commit Hold shift + click to select a range
827e79c
Hierarchical Beta fixes
plato-12 May 29, 2025
20e5dd8
Hierarchical Beta tests: 6 fail, 11 pass
plato-12 May 29, 2025
ab5e9dd
Markov DP tests: 0 fail, 10 skip, 8 pass
plato-12 May 30, 2025
19951bc
Hierarchical MV Normal tests bugs fixing
plato-12 May 30, 2025
3cb40bc
Hierarchical MVN tests fixes
plato-12 May 30, 2025
17dc9a7
Hierarchical MVN Dist. tests: 15 fail, 113 pass
plato-12 May 30, 2025
5e4006b
Hierarchical MVN Dist tests: 9 fail, 114 pass
plato-12 May 30, 2025
5f1cfe8
Hierarchical MVN Dist tests: 5 fail, 130 pass
plato-12 May 30, 2025
7a2863c
Hierarchical MVN bug fix, build fail
plato-12 May 31, 2025
1838656
Hierarchical MVN tests: 1 fail, 134 pass
plato-12 May 31, 2025
ad90353
Hierarchical MVN success
plato-12 May 31, 2025
254cadd
Hierarchical Beta: 6 fail, 33 pass
plato-12 May 31, 2025
2a61204
Hierarchical Beta tests: 2 fail, 55 pass
plato-12 Jun 1, 2025
c87594f
Weibull Dist. 7 fail, 45 pass
plato-12 Jun 2, 2025
1003ae9
Fixing Markov DP tests bug
plato-12 Jun 2, 2025
ed3f05c
Fixing Markov DP
plato-12 Jun 3, 2025
605f812
Markov DP tests: 3 fail, 345 pass
plato-12 Jun 3, 2025
f543f20
Markov DP: all tests passed
plato-12 Jun 3, 2025
abc48e1
Fixing Weibull Dist.
plato-12 Jun 3, 2025
b8dcc3d
Weibull Dist tests: 5 fail, pass 31
plato-12 Jun 3, 2025
695a289
Weibull Dist. tests: 3 fail, 33 pass
plato-12 Jun 4, 2025
b669735
Weibull Dist. tests: 1 fail, 53 pass
plato-12 Jun 4, 2025
ddfb19d
Weibull Dist. success
plato-12 Jun 4, 2025
c40e042
Fixing MV Normal Dist
plato-12 Jun 4, 2025
c92d19c
MV Normal Dist tests: 4 fail, 594 warns, 59 pass
plato-12 Jun 4, 2025
6ce5bc9
MV Normal Dist tests: 0 fail, 500+ warns, 74 pass
plato-12 Jun 4, 2025
b5f53d3
MV Normal Dist. success
plato-12 Jun 5, 2025
e8050f3
Hierarchical MV Normal performance fix: 1 fail, 27 pass
plato-12 Jun 5, 2025
d84b501
Hierarchical MV Normal Performance: 0 fail, 29 pass
plato-12 Jun 5, 2025
d5d75a4
mvnormal_normal_wishart.R tests: 1 warn, 1 skip, 44 pass
plato-12 Jun 6, 2025
45b6525
Fixing MVNormal Wishart and Change Observations
plato-12 Jun 6, 2025
a7fd7d5
MVNormal Wishart fixed
plato-12 Jun 6, 2025
80d7f1a
MVNormal Wishart fix: 1 skip
plato-12 Jun 6, 2025
1220ed3
MVNormal Wishart tests: 1 fail, 46 pass
plato-12 Jun 6, 2025
4ebcd15
MVNormal Wishart fixed: 0 fail, 47 pass
plato-12 Jun 7, 2025
0f7c7a0
test_conjugate fixed
plato-12 Jun 7, 2025
ef58e99
Added mcmc_diagnostics.R
plato-12 Jun 7, 2025
79cc367
Fixing Hierarchical Beta
plato-12 Jun 7, 2025
048c89a
Fixing Hierarchical Beta: 1 fail, 61 pass
plato-12 Jun 8, 2025
cfc2202
Hierarchical Beta: 0 fail, 66 pass
plato-12 Jun 8, 2025
e00797d
Fixing test_cluster_component_update
plato-12 Jun 9, 2025
57017f1
Fixed exponential dist. and added benchmark code
plato-12 Jun 12, 2025
71f5660
exponential benchmark and unit tests in inst/benchmark
plato-12 Jun 12, 2025
ade8dde
fixing exponential benchmark
plato-12 Jun 12, 2025
8e3ed0d
Added mcmc framework and Gaussian implementation
plato-12 Jun 14, 2025
45b1663
fixing gaussian mcmc sampler
plato-12 Jun 14, 2025
97b36d0
Fixing mcmc framework and gaussian mcmc
plato-12 Jun 14, 2025
c35c8d4
mcmc framework and gaussian mcmc success
plato-12 Jun 14, 2025
0b2e993
fixing gaussian mcmc
plato-12 Jun 14, 2025
68e213d
fixing gaussian mcmc
plato-12 Jun 15, 2025
71a13f0
update mcmc_runner.cpp and cpp_interface.R
plato-12 Jun 15, 2025
25c4a80
gaussian mcmc benchmark working, tests need fix
plato-12 Jun 15, 2025
4e9c69e
fixing gaussisan mcmc: 14 pass, R session hang
plato-12 Jun 16, 2025
aef0551
fixing gaussian mcmc
plato-12 Jun 16, 2025
f9b6602
added new gaussian mcmc unit tests: 21 fail, 37 pass
plato-12 Jun 16, 2025
c9b5de6
Fixing gaussian mcmc clusters
plato-12 Jun 16, 2025
17fccab
Fixing gaussian c++ clusters
plato-12 Jun 16, 2025
361829b
fixing gaussian mcmc clusters
plato-12 Jun 16, 2025
4bd1821
gaussian mcmc clusters partially fixed
plato-12 Jun 16, 2025
640971b
Avg Cluster diff < 1, need some improvements
plato-12 Jun 17, 2025
25bc077
files to fix partial correct c++ clusters
plato-12 Jun 17, 2025
6eaea8f
improved gaussian mcmc clusters, but needs improvements
plato-12 Jun 17, 2025
6eec552
implemented beta mcmc
plato-12 Jun 18, 2025
b50a741
improved beta mcmc, added benchmark
plato-12 Jun 18, 2025
7c0b157
added beta cpp unit tests
plato-12 Jun 18, 2025
371f14e
implemented mvnormal mcmc
plato-12 Jun 19, 2025
fe819ed
fixing mvnormal mcmc
plato-12 Jun 19, 2025
9011af1
fixing mvnormal mcmc, 1 fail, 16 pass
plato-12 Jun 19, 2025
82739de
fixing mvnormal s3 dispatch
plato-12 Jun 20, 2025
073d524
mvnormal s3 dispatch fixed
plato-12 Jun 20, 2025
f45eb43
mvnormal mcmc tests need improvements, benchmark code working
plato-12 Jun 20, 2025
733dcc8
weibull mcmc implemented
plato-12 Jun 21, 2025
5d180d5
fixing weibull unit tests
plato-12 Jun 21, 2025
b7569c4
fixing weibull mcmc
plato-12 Jun 21, 2025
ad7229a
weibull basic tests passed
plato-12 Jun 21, 2025
19362b4
added weibull benchmark
plato-12 Jun 21, 2025
9555a47
fixing weibull speed
plato-12 Jun 22, 2025
b44fd66
fixing weibull mcmc runner
plato-12 Jun 22, 2025
b5e0848
weibull mcmc_runner implemented
plato-12 Jun 22, 2025
61d3d59
weibull mcmc_runner fixed
plato-12 Jun 22, 2025
34b51e9
implementing exponential mcmc_runner
plato-12 Jun 22, 2025
9e511ff
fixing exponential MCMCRunner
plato-12 Jun 22, 2025
ce21c10
exponential MCMCRunner implemented, unit tests 4 fail, 5 pass
plato-12 Jun 22, 2025
885175c
exponential MCMCRunner complete
plato-12 Jun 24, 2025
28fd7f4
implementing hierarchical beta MCMCRunner
plato-12 Jun 24, 2025
c50a8f1
hierarchical beta MCMCRunner implemented
plato-12 Jun 24, 2025
27e786c
hierarchical beta tests 7 fail, 4 pass
plato-12 Jun 25, 2025
1a4b58a
hierarchical beta tests: 3 fail, 9 pass
plato-12 Jun 26, 2025
e02d6a0
hierarchical beta benchmark added
plato-12 Jun 27, 2025
dd90756
hierarchical beta benchmark
plato-12 Jun 27, 2025
9fe7005
hierarchical beta benchmark done
plato-12 Jun 27, 2025
ee38ef0
implementing hierarchical mvnormal
plato-12 Jun 27, 2025
7d61be9
fixing hierarchical mvnormal
plato-12 Jun 27, 2025
e6be6b6
hierarchical mvnormal tests added
plato-12 Jun 28, 2025
3ee6ad3
hierarchical mvnormal benchmark added
plato-12 Jun 28, 2025
53ce281
fixing hierarchical mvnormal benchmark
plato-12 Jun 28, 2025
4da0c34
normal atime benchmark
plato-12 Jun 29, 2025
00d6506
mvnormal and weibull atime benchmark added
plato-12 Jun 29, 2025
986e285
fixing hierarchical mvnormal benchmark
plato-12 Jun 29, 2025
0bac5c3
hierarchical mvnormal benchmark done
plato-12 Jun 30, 2025
ff2c586
implementing markovDP MCMCRunner
plato-12 Jun 30, 2025
23b97f4
fixing markovDP MCMCRunner
plato-12 Jun 30, 2025
1dbb0d0
markovDP MCMCRunner implemented
plato-12 Jun 30, 2025
76d0e46
fixing markovDP unit tests: 2 fail, 9 pass
plato-12 Jun 30, 2025
5d1b76d
markovDP tests: 0 fail, 11 pass
plato-12 Jul 1, 2025
660538e
markov benchmark added
plato-12 Jul 1, 2025
3109c76
old cpp unit tests removed, normal cpp unit tests added
plato-12 Jul 2, 2025
c6fb0d2
normal cpp unit tests: 6 fail, 62 pass
plato-12 Jul 3, 2025
e72a778
normal cpp unit tests complete
plato-12 Jul 3, 2025
d11d5e1
beta unit tests added: 12 fail, 43 pass
plato-12 Jul 3, 2025
dd75d3f
fixing beta unit tests: 18 fail, 68 pass
plato-12 Jul 5, 2025
619454b
fixing beta unit tests: 9 fail, 35 pass
plato-12 Jul 5, 2025
acf59a9
beta tests: 18 fail, 68 pass
plato-12 Jul 5, 2025
904c1dd
fixing beta unit tests
plato-12 Jul 5, 2025
87ed284
fixing beta unit tests: 18 fail, 68 pass
plato-12 Jul 5, 2025
d13b076
fixing beta distribution
plato-12 Jul 5, 2025
89636e5
beta tests: 7 fail, 79 pass
plato-12 Jul 6, 2025
85f5cc0
beta unit tests: 6 fail, 86 pass
plato-12 Jul 6, 2025
7755f47
beta atime benchmark added
plato-12 Jul 6, 2025
fe56169
fixing beta atime benchmark
plato-12 Jul 6, 2025
76b20a8
added mvnormal atime benchmark
plato-12 Jul 6, 2025
d1a1863
beta tests passed, atime benchmark added
plato-12 Jul 6, 2025
6fd9508
beta tests: 6 fail, 86 pass; mvnormal tests added; beta atime benchma…
plato-12 Jul 7, 2025
06c3d9b
fixing beta unit tests
plato-12 Jul 7, 2025
dccbaa4
mvnormal cpp tests: 6 fail, 34 pass
plato-12 Jul 7, 2025
e189eda
mvnormal cpp tests: 2 fail, 51 pass
plato-12 Jul 8, 2025
1ca9fc3
mvnormal unit tests: 1 fail, 56 pass
plato-12 Jul 8, 2025
545599a
mvnormal unit tests: 0 fail, 1 skip, 59 pass
plato-12 Jul 8, 2025
af73122
mvnormal unit tests: 7 fail, 63 pass
plato-12 Jul 8, 2025
cdd5b2b
mvnormal tests: 2 fail, 70 pass
plato-12 Jul 8, 2025
09b7545
fixing beta clusters mismatch
plato-12 Jul 8, 2025
b9ae267
fixing mvnormal and beta unit tests
plato-12 Jul 8, 2025
74bbdca
Merge pull request #3 from plato-12/cpp-implementation
plato-12 Jul 9, 2025
d41e5ff
removed unnecessary files
plato-12 Jul 9, 2025
11ab2bb
Merge pull request #4 from plato-12/cpp-implementation
plato-12 Jul 9, 2025
ebbd1c9
fixing beta cluster mismatch
plato-12 Jul 10, 2025
29a7391
mcmc manual runner
plato-12 Jul 11, 2025
e496004
fixing mcmc manual runner
plato-12 Jul 11, 2025
cb3ef3b
fixing mcmc manual runner
plato-12 Jul 11, 2025
a928c01
mcmc manual runner tests: 20 fail, 13 pass
plato-12 Jul 11, 2025
bc30cff
fixing BetaDP.cpp
plato-12 Jul 11, 2025
759932e
fixed BetaDP, still clusters issues
plato-12 Jul 12, 2025
692e658
manual mcmc runner tests: 8 fail, 83 pass
plato-12 Jul 12, 2025
e793e3b
benchmark: mvnormal results; exponential and weibull files
plato-12 Jul 13, 2025
1f26fb9
exponential benchmark
plato-12 Jul 13, 2025
616dc44
weibull benchmark done
plato-12 Jul 13, 2025
c601878
exponential benchmark done
plato-12 Jul 14, 2025
3ed8059
mvnormal diagonals implementation
plato-12 Jul 14, 2025
5f9e705
fixing mvnormal diagonals
plato-12 Jul 14, 2025
0f4aae0
fixing mvnormal covariance models
plato-12 Jul 14, 2025
ca27c41
fixing mvnormal covariance models
plato-12 Jul 14, 2025
40a68e9
fixing mvnormal covariance models
plato-12 Jul 14, 2025
b869e66
removed initial unit tests
plato-12 Jul 14, 2025
070dc44
fixed mvnormal covariance models
plato-12 Jul 14, 2025
fbbb66c
added mvnormal tests
plato-12 Jul 14, 2025
fa78044
fixed mvnormal tests, fixing mvnormal2 tests
plato-12 Jul 15, 2025
9aa40e4
mvnormal and mvnormal2 tests passed
plato-12 Jul 15, 2025
f2cf8c7
fixed cpp unit tests
plato-12 Jul 15, 2025
f748d12
covariance benchmark added, fixing covariance implementations
plato-12 Jul 15, 2025
4dfb7a4
covariance models corrected, unit tests passed
plato-12 Jul 15, 2025
2b93009
mvnormal c++ parameters mismatch resolved
plato-12 Jul 16, 2025
1fb9f21
constrained covariance MCMC dimensions resolved
plato-12 Jul 16, 2025
51f53be
covariance access issue resolved
plato-12 Jul 16, 2025
5a8a876
dimension-aware parameter access of covariance resolved
plato-12 Jul 16, 2025
bad2a86
numerical stability done
plato-12 Jul 16, 2025
32c38d9
E model Initialization resolved
plato-12 Jul 16, 2025
17f4e49
covariance benchmark fixed
plato-12 Jul 16, 2025
2403ce0
covariance benchmark fixed
plato-12 Jul 16, 2025
060ef5f
fixing covariance models usage
plato-12 Jul 17, 2025
205b5f5
begin TESTING and VALIDATION phase
plato-12 Jul 17, 2025
295e31b
mvnormal & mvnormal2 integration to MCMC cpp runner
plato-12 Jul 17, 2025
440e311
cpp memory fixes
plato-12 Jul 17, 2025
cf41ddf
fixed c++ compilation issues
plato-12 Jul 17, 2025
df48790
fixed beta distribution tests
plato-12 Jul 18, 2025
e5a4379
fixing beta distributions
plato-12 Jul 18, 2025
e3d1d69
fixed beta and likelihood of all distributions
plato-12 Jul 18, 2025
17f717f
fixed cpp documentation
plato-12 Jul 18, 2025
aaff533
fixing tests
plato-12 Jul 18, 2025
4a5566d
Merge pull request #9 from plato-12/cpp-implementation
plato-12 Jul 18, 2025
8ae38ab
tests: 2 fail, 524 pass
plato-12 Jul 18, 2025
9687236
all tests passed: 534
plato-12 Jul 18, 2025
cd4dda3
Merge pull request #10 from plato-12/cpp-implementation
plato-12 Jul 19, 2025
b628eeb
C++ testing framework for R/C++ consistency validation
plato-12 Jul 19, 2025
93eb165
added atime dependency
plato-12 Jul 19, 2025
f17acae
update artifact actions to v4
plato-12 Jul 19, 2025
ae5a5ba
fix R dependency conflicts in CI
plato-12 Jul 19, 2025
5aabd98
remove deprecated devtools::compile_dll
plato-12 Jul 19, 2025
c25cc7a
fix deprecated devtools functions in package_checks.R
plato-12 Jul 19, 2025
7203a19
simplify C++ compilation check to verify shared library exists
plato-12 Jul 19, 2025
0b6a215
fixed cpp-consistency
plato-12 Jul 20, 2025
d603485
fixed mvnormal dimension and c++ ClusterLabelPredict
plato-12 Jul 20, 2025
aab06c4
enabled dev and prod mode
plato-12 Jul 20, 2025
48accda
fixed workflow
plato-12 Jul 20, 2025
dfd2c89
header filename and validation script robustness
plato-12 Jul 21, 2025
b08417c
added c++ support for beta2 and fixed normal variance
plato-12 Jul 21, 2025
eac97dd
fixed compilation error
plato-12 Jul 21, 2025
1144693
fixed cpp-manual-mcmc and partial cpp-edge-cases
plato-12 Jul 22, 2025
67b7c50
fixed workflow run errors
plato-12 Jul 22, 2025
43ed267
fixing workflow run
plato-12 Jul 22, 2025
5091863
fixed cpp edge cases
plato-12 Jul 22, 2025
efc75f4
fixed cpp-convergence
plato-12 Jul 22, 2025
31274a3
fixing cpp-consistency individual distributions
plato-12 Jul 23, 2025
ffc4e77
fixing mvnormal2 warnings
plato-12 Jul 23, 2025
fc909b0
Merge pull request #11 from plato-12/feature/r-cpp-consistency
plato-12 Jul 24, 2025
32a036f
Merge pull request #12 from plato-12/cpp-implementation
plato-12 Jul 24, 2025
07caabd
fixing algorithm 4 implementations
plato-12 Jul 24, 2025
24993ed
fixed beta cpp-consistency
plato-12 Jul 24, 2025
15a4dd4
added cpp-consistency test files
plato-12 Jul 24, 2025
4beccae
fixing mvnormal2 CppMCMCRunner interface
plato-12 Jul 24, 2025
e34c78a
fixed mvnormal2 cpp-consistency
plato-12 Jul 24, 2025
2bc8bd8
fixed beta2 cpp-consistency
plato-12 Jul 25, 2025
cee9e0f
new workflow
plato-12 Jul 25, 2025
a3d0763
fixed r cmd workflow
plato-12 Jul 25, 2025
c64c2cd
Fix R CMD check workflow by removing problematic documentation
plato-12 Jul 25, 2025
891779f
fixed test-cpp fixed-normal-variance
plato-12 Jul 25, 2025
d00c084
fixing hierarchical-beta cpp-consistency test
plato-12 Jul 25, 2025
8d1bc90
fixing hierarchical mvnormal test-cpp-consistency
plato-12 Jul 26, 2025
a75f55d
fixed hierarchical mvnormal test-cpp-consistency
plato-12 Jul 26, 2025
7c9ddff
fixed hierarchical-mvnormal2 test-cpp-consistency
plato-12 Jul 26, 2025
374d421
fixed header files path
plato-12 Jul 26, 2025
81c386d
fix workflow compilation errors
plato-12 Jul 26, 2025
21e5a2c
fixed makevars and tests
plato-12 Jul 26, 2025
bf5080f
debugging the tests errors
plato-12 Jul 26, 2025
af599f6
fixing devtools test [2 fail, 604 pass]
plato-12 Jul 28, 2025
f39db13
1 failure in convergence left
plato-12 Jul 28, 2025
2c9bd0e
fixing devtools check
plato-12 Jul 29, 2025
0eb1c0a
fixing devtools check for cran
plato-12 Jul 29, 2025
9f875ea
fixed devtools check
plato-12 Jul 30, 2025
bb5c030
cran submission ready
plato-12 Jul 30, 2025
acfd55b
fixed workflow
plato-12 Jul 30, 2025
0ec0d48
vignette codes verified
plato-12 Jul 30, 2025
a7d1e79
covariance models demonstration
plato-12 Jul 31, 2025
f72f63f
fixing devtools test
plato-12 Aug 2, 2025
f5bbb76
fixed beta2 c++ implementation
plato-12 Aug 4, 2025
6dcd309
fixed beta2 and beta tests
plato-12 Aug 4, 2025
a193c7b
fixing mvnormal_wishart tests
plato-12 Aug 5, 2025
f05d079
fixed conjugate and likelihood tests
plato-12 Aug 5, 2025
0c0abaf
fixed mvnormal errors
plato-12 Aug 6, 2025
f5c214e
fixing devtools::test(), 2 failures
plato-12 Aug 6, 2025
092e0d4
fixing devtools::test(), 1 test failure
plato-12 Aug 7, 2025
fb8b773
almost fixed tests, 1 minor test failure
plato-12 Aug 7, 2025
c60f096
all tests passed
plato-12 Aug 7, 2025
dcefe78
Merge pull request #14 from plato-12/feature/testing-framework-fixes
plato-12 Aug 7, 2025
a0d1144
fixing hierarchical mcmc
plato-12 Aug 7, 2025
6d4b017
switch mechanism
plato-12 Aug 7, 2025
3145972
fixed hierarchical cpp sampler
plato-12 Aug 8, 2025
2c19fff
fixed hierarchical mvnormal2 sampler
plato-12 Aug 8, 2025
6455b7f
cran check 3 warnings
plato-12 Aug 8, 2025
7023e47
package ready
plato-12 Aug 9, 2025
d9f0e90
Merge pull request #15 from plato-12/feature/testing-framework-fixes
plato-12 Aug 9, 2025
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
  •  
  •  
  •  
Binary file added .RData
Binary file not shown.
6 changes: 6 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@
^pkgdown$
^\.github$
^CRAN-SUBMISSION$
^profiling$
^analysis$
^inst/benchmarks$
^\.vscode$
^CLAUDE\.md$
^benchmark$
39 changes: 0 additions & 39 deletions .github/workflows/R-CMD-check.yaml

This file was deleted.

91 changes: 91 additions & 0 deletions .github/workflows/R-CMD-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: R-CMD-check

on:
push:
branches:
- '**'
pull_request:
branches:
- '**'

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
timeout-minutes: 120

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: windows-latest, r: 'release'}
- {os: macOS-latest, r: 'release'}

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes

steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::rcmdcheck
any::roxygen2
any::devtools
needs: check

- name: Install system dependencies on Linux
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-openssl-dev libssl-dev libxml2-dev libharfbuzz-dev libfribidi-dev liblapack-dev libblas-dev libgfortran-13-dev

- name: Install system dependencies on macOS
if: runner.os == 'macOS'
run: |
brew install harfbuzz fribidi

- name: Session info
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
shell: Rscript {0}

- name: Compile C++ exports
run: |
Rcpp::compileAttributes()
shell: Rscript {0}

- name: Check package
uses: r-lib/actions/check-r-package@v2
with:
args: 'c("--no-manual", "--as-cran", "--no-build-vignettes")'
build_args: 'c("--no-manual", "--no-build-vignettes")'
error-on: '"error"'
check-dir: '"check"'

- name: Show testthat output
if: always()
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash

- name: Upload check results
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
path: check
215 changes: 215 additions & 0 deletions .github/workflows/cpp-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# .github/workflows/cpp-validation.yml
# DISABLED: Temporarily disabled to focus on R CMD check workflow

name: C++ Implementation Validation (DISABLED)

on:
# push:
# branches: [ feature/r-cpp-consistency, feature/*, cpp-implementation ]
# pull_request:
# branches: [ master, main ]
# schedule:
# # Run weekly on Mondays at 2 AM UTC
# - cron: '0 2 * * 1'
workflow_dispatch:
inputs:
test_mode:
description: 'Test mode: dev (fast) or prod (full validation)'
required: false
default: 'dev'
type: choice
options:
- dev
- prod

jobs:
test-validation:
runs-on: ${{ matrix.os }}
timeout-minutes: 120 # 2 hours max for dev, allows prod mode

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
r-version: ['4.3.0', '4.4.0', 'release']
include:
- os: ubuntu-latest
r-version: 'devel'

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
DP_DEV_TESTING: ${{ github.event.inputs.test_mode == 'prod' && 'FALSE' || 'TRUE' }}

steps:
- uses: actions/checkout@v3

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.r-version }}
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::devtools
any::testthat
any::sessioninfo
any::rcmdcheck
dependencies: '"all"'

- name: Session info
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
cat("Test mode: ${{ github.event.inputs.test_mode || 'dev' }}\n")
cat("DP_DEV_TESTING:", Sys.getenv("DP_DEV_TESTING"), "\n")
shell: Rscript {0}

- name: Compile C++ code
run: |
devtools::document()
shell: Rscript {0}

- name: Check C++ compilation
run: |
source("tests/integration/package_checks.R")
cpp_check <- check_cpp_compilation()
if (length(cpp_check$warnings) > 0) {
cat("C++ compilation warnings detected:\n")
cat(cpp_check$warnings, sep = "\n")
}
if (!cpp_check$success) {
stop("C++ compilation failed")
}
cat("✅ C++ compilation successful\n")
shell: Rscript {0}

- name: Install package
run: |
devtools::install(".", upgrade = "never")
cat("✅ Package installed successfully\n")
shell: Rscript {0}

- name: Run testthat test suite
run: |
source("inst/validation/run_all_validations.R")
if (Sys.getenv("DP_DEV_TESTING") == "FALSE") {
cat("Running PRODUCTION mode validation...\n")
results <- run_complete_validation()
} else {
cat("Running DEVELOPMENT mode validation...\n")
results <- quick_validation()
}
print(results)
shell: Rscript {0}

- name: Run integration tests
run: |
cat("Running integration tests in",
ifelse(Sys.getenv("DP_DEV_TESTING") == "FALSE", "PRODUCTION", "DEVELOPMENT"),
"mode...\n")

# Source and run each integration test
source("tests/integration/memory_tests.R")
memory_result <- test_memory_stability()
cat("Memory test result:", memory_result, "MB\n")

source("tests/integration/stress_tests.R")
stress_results <- run_stress_tests()
cat("Stress test results:\n")
print(stress_results)

source("tests/integration/package_checks.R")
package_results <- run_package_checks()
cat("Package check results:\n")
print(package_results)
shell: Rscript {0}

- name: Run R CMD check
if: github.event.inputs.test_mode == 'prod' || github.event_name == 'pull_request'
run: |
rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"),
error_on = "warning",
check_dir = "check")
shell: Rscript {0}

- name: Upload check results
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}-r${{ matrix.r-version }}-check-results
path: check

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}-r${{ matrix.r-version }}
path: |
validation_results/
*.rds

pr-comment:
needs: test-validation
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'

steps:
- name: Comment PR with results
uses: actions/github-script@v6
with:
script: |
const comment = `## C++ Implementation Validation Results

✅ testthat and integration tests completed

### Test Summary
- **testthat tests**: Core functionality validation
- **Integration tests**: Memory, stress, and package checks
- **Mode**: ${{ github.event.inputs.test_mode || 'dev' }}

See artifacts for detailed results.`;

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});

coverage:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::covr
dependencies: '"all"'

- name: Test coverage
run: |
cov <- covr::package_coverage(
type = "all",
quiet = FALSE,
clean = FALSE,
install_path = file.path(Sys.getenv("RUNNER_TEMP"), "package")
)
print(cov)
covr::to_cobertura(cov)
shell: Rscript {0}

- uses: codecov/codecov-action@v3
with:
file: ./cobertura.xml
fail_ci_if_error: false
verbose: true
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,12 @@ inst/doc
clean_bib.sh
tests/testthat/Rplots.pdf

src/*.o
src/*.so
src/*.dll

papers/
presentation/

.vscode/

Loading