feat: added support to wasm (#94)

* test: run tests also in wasm targets

* fix: install rand with wasm-bindgen por wasm targets

* fix: use actual usize size to access buffer.

* fix: do not run functions that create files in wasm.

* test: do not run in wasm test that panics.

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
This commit is contained in:
Luis Moreno
2021-04-28 15:58:39 -04:00
committed by GitHub
parent 5ed5772a4e
commit 162bed2aa2
71 changed files with 294 additions and 51 deletions
+7
View File
@@ -144,6 +144,7 @@ mod tests {
use super::*;
use crate::linalg::naive::dense_matrix::*;
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_kfold_return_test_indices_simple() {
let k = KFold {
@@ -158,6 +159,7 @@ mod tests {
assert_eq!(test_indices[2], (22..33).collect::<Vec<usize>>());
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_kfold_return_test_indices_odd() {
let k = KFold {
@@ -172,6 +174,7 @@ mod tests {
assert_eq!(test_indices[2], (23..34).collect::<Vec<usize>>());
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_kfold_return_test_mask_simple() {
let k = KFold {
@@ -197,6 +200,7 @@ mod tests {
}
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_kfold_return_split_simple() {
let k = KFold {
@@ -212,6 +216,7 @@ mod tests {
assert_eq!(train_test_splits[1].1, (11..22).collect::<Vec<usize>>());
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_kfold_return_split_simple_shuffle() {
let k = KFold {
@@ -227,6 +232,7 @@ mod tests {
assert_eq!(train_test_splits[1].1.len(), 11_usize);
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn numpy_parity_test() {
let k = KFold {
@@ -247,6 +253,7 @@ mod tests {
}
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn numpy_parity_test_shuffle() {
let k = KFold {
+4
View File
@@ -285,6 +285,7 @@ mod tests {
use crate::model_selection::kfold::KFold;
use crate::neighbors::knn_regressor::KNNRegressor;
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn run_train_test_split() {
let n = 123;
@@ -308,6 +309,7 @@ mod tests {
#[derive(Clone)]
struct NoParameters {}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn test_cross_validate_biased() {
struct BiasedEstimator {}
@@ -367,6 +369,7 @@ mod tests {
assert_eq!(0.4, results.mean_train_score());
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn test_cross_validate_knn() {
let x = DenseMatrix::from_2d_array(&[
@@ -411,6 +414,7 @@ mod tests {
assert!(results.mean_train_score() < results.mean_test_score());
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn test_cross_val_predict_knn() {
let x = DenseMatrix::from_2d_array(&[