File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 }}."
Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments