Skip to content

Commit 3b30036

Browse files
committed
update workflows file and add some test
1 parent e0e91e2 commit 3b30036

3 files changed

Lines changed: 54 additions & 9 deletions

File tree

.github/workflows/rust.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ jobs:
1616

1717
steps:
1818
- uses: actions/checkout@v4
19-
- name: Build
19+
20+
name: Build
2021
- run: echo "start run cargo build"
2122
- run: cargo build --verbose
22-
- name: Run tests
23+
24+
name: Run tests
2325
- run: echo "start run cargo test"
2426
- run: cargo test --verbose
2527
- run: echo "This job's status is ${{ job.status }}."

src/cli/flatten.rs

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,8 @@ pub fn flatten_fq(
3030
std::process::exit(1);
3131
}
3232

33+
let fields = get_flag(flag);
3334
let mut out_writer = file_writer(out, compression_level)?;
34-
let flags = format!("{:b}", flag).chars().rev().collect::<Vec<char>>();
35-
let mut fields = vec![];
36-
for (i, k) in flags.iter().enumerate() {
37-
if k == &'1' {
38-
fields.push(i);
39-
}
40-
}
4135

4236
for rec in fq_reader.records().flatten() {
4337
let read = [rec.id().as_bytes(), rec.seq(), "+".as_bytes(), rec.qual()];
@@ -70,3 +64,32 @@ pub fn flatten_fq(
7064
info!("time elapsed is: {:?}", start.elapsed());
7165
Ok(())
7266
}
67+
68+
fn get_flag(num: u8) -> Vec<usize> {
69+
let flags = format!("{:b}", num).chars().rev().collect::<Vec<char>>();
70+
71+
let mut fields = vec![];
72+
for (i, k) in flags.iter().enumerate() {
73+
if k == &'1' {
74+
fields.push(i);
75+
}
76+
}
77+
fields
78+
}
79+
80+
#[cfg(test)]
81+
mod tests {
82+
use super::*;
83+
84+
// 1, 2, 4, 8
85+
#[test]
86+
fn flag3() {
87+
// 3 = 1 + 2, index: [0,1]
88+
assert_eq!(get_flag(3), vec![0, 1]);
89+
}
90+
91+
#[test]
92+
fn flag7() {
93+
assert_eq!(get_flag(7), vec![0, 1, 2]);
94+
}
95+
}

src/utils.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,23 @@ where
172172
Ok(Box::new(BufWriter::with_capacity(BUFF_SIZE, fp)))
173173
}
174174
}
175+
176+
#[cfg(test)]
177+
mod tests {
178+
use super::*;
179+
180+
#[test]
181+
fn gz_or_not() {
182+
assert_eq!(is_gzipped("example/mini2k.fq.gz").unwrap(), true);
183+
}
184+
185+
#[test]
186+
fn xz_or_not() {
187+
assert_eq!(is_xz("example/mini2k.fq.xz").unwrap(), true);
188+
}
189+
190+
#[test]
191+
fn bzip2_or_not() {
192+
assert_eq!(is_bzipped("example/mini2k.fq.bz2").unwrap(), true);
193+
}
194+
}

0 commit comments

Comments
 (0)