extern crate crast;
extern crate time;
extern crate num;
#[cfg(test)]
mod tsts {
use time::precise_time_ns;
use num::pow::pow;
use std::process::{Command, Output};
#[test]
fn tst_crast() {
let cmnd = "target/release/crast-db";
let args = vec!["-i", "asts/m_mscls_ncrnas.fa", "-o", "asts/m_mscls_ncrna_db", "--nr"];
let bgn = precise_time_ns();
rn_cmnd(cmnd, &args, "Failed to run CRAST");
let elps_tm = precise_time_ns() - bgn;
println!("Elapsed time for database construction = {}[s]", elps_tm as f32 * pow(0.1, 9));
let cmnd = "target/release/crast";
let args = vec!["-i", "asts/h_spns_m_mscls_hmlg_lncrnas.fa", "-o", "asts/h_spns_m_mscls_hmlg_lncrnas_2_m_mscls_ncrnas.maf", "--db", "asts/m_mscls_ncrna_db"];
let bgn = precise_time_ns();
rn_cmnd(cmnd, &args, "Failed to run CRAST");
let elps_tm = precise_time_ns() - bgn;
println!("Elapsed time for alignment search of human homologous lncRNAs to house mouse ncRNAs = {}[s]", elps_tm as f32 * pow(0.1, 9));
let args = vec!["-i", "asts/shfl_h_spns_m_mscls_hmlg_lncrnas.fa", "-o", "asts/shfl_h_spns_m_mscls_hmlg_lncrnas_2_m_mscls_ncrnas.maf", "--db", "asts/m_mscls_ncrna_db"];
let bgn = precise_time_ns();
rn_cmnd(cmnd, &args, "Failed to run CRAST");
let elps_tm = precise_time_ns() - bgn;
println!("Elapsed time for alignment search of di-nucleotide shuffled human homologous lncRNAs to house mouse ncRNAs = {}[s]", elps_tm as f32 * pow(0.1, 9));
}
fn rn_cmnd(cmnd: &str, args: &[&str], expct: &str) -> Output {
Command::new(cmnd).args(args).output().expect(expct)
}
}