diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 70cd1fe..2307ec2 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -86,6 +86,8 @@ jobs: cp tarpaulin-report.json target/doc/rustframe/ cp tarpaulin-badge.json target/doc/rustframe/ cp last-commit-date.json target/doc/rustframe/ + mkdir -p target/doc/rustframe/.github + cp .github/rustframe_logo.png target/doc/rustframe/.github/ echo "" > target/doc/index.html - name: Upload Pages artifact diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index ba90e9e..6fe312d 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -7,6 +7,7 @@ on: jobs: run-unit-tests: + if: github.event.pull_request.draft == false name: run-unit-tests runs-on: ubuntu-latest env: diff --git a/README.md b/README.md index d44e91c..3a990ae 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -# rustframe + +# Rustframe rustframe + + 📚 [Docs](https://magnus167.github.io/rustframe/) | 🐙 [GitHub](https://github.com/Magnus167/rustframe) | 🌐 [Gitea mirror](https://gitea.nulltech.uk/Magnus167/rustframe) | 🦀 [Crates.io](https://crates.io/crates/rustframe) | 🔖 [docs.rs](https://docs.rs/rustframe/latest/rustframe/) @@ -53,35 +56,37 @@ let dates: Vec = .list() .unwrap(); - let col_names: Vec = vec!["a".to_string(), "b".to_string()]; +let col_names: Vec = vec!["a".to_string(), "b".to_string()]; - let ma: Matrix = Matrix::from_cols(vec![vec![1.0, 2.0, 3.0, 4.0], vec![5.0, 6.0, 7.0, 8.0]]); - let mb: Matrix = Matrix::from_cols(vec![vec![4.0, 3.0, 2.0, 1.0], vec![8.0, 7.0, 6.0, 5.0]]); +let ma: Matrix = + Matrix::from_cols(vec![vec![1.0, 2.0, 3.0, 4.0], vec![5.0, 6.0, 7.0, 8.0]]); +let mb: Matrix = + Matrix::from_cols(vec![vec![4.0, 3.0, 2.0, 1.0], vec![8.0, 7.0, 6.0, 5.0]]); - let fa: Frame = Frame::new( - ma.clone(), - col_names.clone(), - Some(RowIndex::Date(dates.clone())), - ); - let fb: Frame = Frame::new(mb, col_names, Some(RowIndex::Date(dates))); +let fa: Frame = Frame::new( + ma.clone(), + col_names.clone(), + Some(RowIndex::Date(dates.clone())), +); +let fb: Frame = Frame::new(mb, col_names, Some(RowIndex::Date(dates))); - // Math that reads like math - let result: Frame = &fa * &fb; // element‑wise multiply - let total: f64 = result.sum_vertical().iter().sum::(); - assert_eq!(total, 184.0); +// Math that reads like math +let result: Frame = &fa * &fb; // element‑wise multiply +let total: f64 = result.sum_vertical().iter().sum::(); +assert_eq!(total, 184.0); - // broadcast & reduce - let result: Matrix = &ma + 1.0; // add scalar - let result: Matrix = &result - 1.0; // subtract scalar - let result: Matrix = &result * 2.0; // multiply by scalar - let result: Matrix = &result / 2.0; // divide by scalar +// broadcast & reduce +let result: Matrix = &ma + 1.0; // add scalar +let result: Matrix = &result - 1.0; // subtract scalar +let result: Matrix = &result * 2.0; // multiply by scalar +let result: Matrix = &result / 2.0; // divide by scalar - let check: bool = result.eq_elementwise(ma.clone()).all(); - assert!(check); +let check: bool = result.eq_elementwise(ma.clone()).all(); +assert!(check); - // The above math can also be written as: - let check: bool = (&(&(&(&ma + 1.0) - 1.0) * 2.0) / 2.0) - .eq_elementwise(ma) - .all(); - assert!(check); +// The above math can also be written as: +let check: bool = (&(&(&(&ma + 1.0) - 1.0) * 2.0) / 2.0) + .eq_elementwise(ma) + .all(); +assert!(check); ```