use ctor::ctor;
use ebiotic::data::*;
use ebiotic::tools::*;
use env_logger;
#[ctor]
fn init() {
env_logger::init();
}
#[tokio::test]
async fn blast_run_with_valid_query_returns_expected_result() {
let blast = Blast::default();
let query = "MAKQVQKARKLAEQAERYDDMAAAMKAVTEQGHELSNEERNLLSVAYKNVVGARRSSWRVISSIEQKTERNEKKQQMGKEYREKIEAELQDICNDVLELLDKYLIPNATQPESKVFYLKMKGDYFRYLSEVASGDNKQTTVSNSQQAYQEAFEISKKEMQPTHPIRLGLALNFSVFYYEILNSPDRACRLAKAAFDDASLAKDAESEKNPEEIAWYQSITQ";
let result = blast.run(query.to_string()).await;
assert!(result.is_ok());
}
#[tokio::test]
async fn blast_run_with_empty_query_returns_error() {
let blast = Blast::default();
let query = "";
let result = blast.run(query.to_string()).await;
assert!(result.is_err());
}
#[tokio::test]
async fn clustalo_run_with_valid_sequences_returns_expected_result() {
let mut clustalo = Clustalo::default();
clustalo.set_email("harryallsopp8@gmail.com".to_string());
let seq1 = Record::with_attrs(
"seq1",
None,
"AGCTTGAACGTTAGCGGAACGTAAGCGAGATCCGTAGGCTAACTCGTACGTA"
.to_string()
.as_ref(),
);
let seq2 = Record::with_attrs(
"seq2",
None,
"TACGATGCAAATCGTGCACGGTCCAGTACGATCCGATGCTAAGTCCGATCGA"
.to_string()
.as_ref(),
);
let seq3 = Record::with_attrs(
"seq3",
None,
"GCTAGTCCGATGCGTACGATCGTACGATGCTAGCTAGCTAGCTAGCTAGCTA"
.to_string()
.as_ref(),
);
let seq4 = Record::with_attrs(
"seq4",
None,
"CGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTA"
.to_string()
.as_ref(),
);
let result = clustalo.run(vec![seq1, seq2, seq3, seq4]).await;
println!("{:?}", result);
assert!(result.is_ok());
}
#[tokio::test]
async fn clustalo_run_with_empty_sequences_returns_error() {
let mut clustalo = Clustalo::default();
clustalo.set_email("harryallsopp8@gmail.com".to_string());
let result = clustalo.run(vec![]).await;
assert!(result.is_err());
}
#[tokio::test]
async fn test_dbfetch() {
let dbfetch = Dbfetch::default();
let ids = AccessionIds::new(vec![
"M10051".to_string(),
"K00650".to_string(),
"D87894".to_string(),
"AJ242600".to_string(),
]);
let result = dbfetch.run(ids).await;
println!("{:?}", result);
assert!(result.is_ok());
}
#[tokio::test]
async fn test_dbfetch_default_fasta() {
let dbfetch = Dbfetch::default();
let ids = AccessionIds::new(vec![
"M10051".to_string(),
"K00650".to_string(),
"D87894".to_string(),
"AJ242600".to_string(),
]);
let result = dbfetch.run(ids).await;
assert!(result.is_ok());
println!("{:?}", result.unwrap().into_records());
}
#[tokio::test]
async fn test_ebi_search() {
let ebi_search = EbiSearch::default();
let query = "P53";
let result = ebi_search.query(query.to_string(), None).await;
println!("{:?}", result);
assert!(result.is_ok());
}
#[tokio::test]
async fn test_ebi_search_xref() {
let ebi_search = EbiSearch::default();
let result = ebi_search.xref(None, None).await;
println!("{:?}", result);
assert!(result.is_ok());
}