Skip to content

Commit

Permalink
fix tests that depend on tokio
Browse files Browse the repository at this point in the history
  • Loading branch information
CarlKCarlK committed Feb 2, 2024
1 parent af9b55a commit 5068231
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 22 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ crate-type = ["cdylib", "rlib"]
# https://pyo3.rs/latest/faq.html#i-cant-run-cargo-test-or-i-cant-build-in-a-cargo-workspace-im-having-linker-issues-like-symbol-not-found-or-undefined-reference-to-_pyexc_systemerror
[features]
extension-module = ["pyo3/extension-module", "tokio/full"]
default = [ "extension-module"] # cmk remove extension-module from default
default = []

[dependencies]
thiserror = "1.0.40"
Expand Down
52 changes: 31 additions & 21 deletions examples/cloud.rs
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
use bed_reader::{BedCloud, BedErrorPlus, ReadOptions};
use ndarray::s;
use std::collections::HashSet;
#[cfg(feature = "tokio/full")]
mod cloud_example {

#[tokio::main]
async fn main() -> Result<(), Box<BedErrorPlus>> {
let url = "https://raw.githubusercontent.com/fastlmm/bed-sample-files/main/some_missing.bed";
let cloud_options = [("timeout", "10s")];
use bed_reader::{BedCloud, BedErrorPlus, ReadOptions};
use ndarray::s;
use std::collections::HashSet;

let mut bed_cloud = BedCloud::new_with_options(url, cloud_options).await?;
println!("{:?}", bed_cloud.iid().await?.slice(s![..5])); // Outputs ndarray: ["iid_0", "iid_1", "iid_2", "iid_3", "iid_4"]
println!("{:?}", bed_cloud.sid().await?.slice(s![..5])); // Outputs ndarray: ["sid_0", "sid_1", "sid_2", "sid_3", "sid_4"]
println!(
"{:?}",
bed_cloud.chromosome().await?.iter().collect::<HashSet<_>>()
);
// Outputs: {"12", "10", "4", "8", "19", "21", "9", "15", "6", "16", "13", "7", "17", "18", "1", "22", "11", "2", "20", "3", "5", "14"}
let _ = ReadOptions::builder()
.sid_index(bed_cloud.chromosome().await?.map(|elem| elem == "5"))
.f64()
.read_cloud(&mut bed_cloud)
.await?;
#[tokio::main]
async fn main() -> Result<(), Box<BedErrorPlus>> {
let url =
"https://raw.githubusercontent.com/fastlmm/bed-sample-files/main/some_missing.bed";
let cloud_options = [("timeout", "10s")];

Ok(())
let mut bed_cloud = BedCloud::new_with_options(url, cloud_options).await?;
println!("{:?}", bed_cloud.iid().await?.slice(s![..5])); // Outputs ndarray: ["iid_0", "iid_1", "iid_2", "iid_3", "iid_4"]
println!("{:?}", bed_cloud.sid().await?.slice(s![..5])); // Outputs ndarray: ["sid_0", "sid_1", "sid_2", "sid_3", "sid_4"]
println!(
"{:?}",
bed_cloud.chromosome().await?.iter().collect::<HashSet<_>>()
);
// Outputs: {"12", "10", "4", "8", "19", "21", "9", "15", "6", "16", "13", "7", "17", "18", "1", "22", "11", "2", "20", "3", "5", "14"}
let _ = ReadOptions::builder()
.sid_index(bed_cloud.chromosome().await?.map(|elem| elem == "5"))
.f64()
.read_cloud(&mut bed_cloud)
.await?;

Ok(())
}
}

#[cfg(not(feature = "tokio/full"))]
pub fn main() {
println!("This example requires the 'tokio/full' feature to be enabled");
}
3 changes: 3 additions & 0 deletions tests/tests_api_cloud.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![cfg(feature = "tokio/full")]

use bed_reader::allclose;
use bed_reader::assert_eq_nan;
use bed_reader::assert_error_variant;
Expand Down Expand Up @@ -1045,6 +1047,7 @@ async fn fill_cloud() -> Result<(), Box<BedErrorPlus>> {
Ok(())
}

#[cfg(feature = "tokio/full")]
#[tokio::test]
async fn read_options_builder_cloud() -> Result<(), Box<BedErrorPlus>> {
let url = sample_bed_url("small.bed")?;
Expand Down

0 comments on commit 5068231

Please sign in to comment.