@@ -29,7 +29,8 @@ use base_sequence_compression::{compress_sequence, decompress_sequence};
29
29
fn main () {
30
30
let dna_sequence = " ACGTACGTACGT" ;
31
31
let compressed = compress_sequence (dna_sequence );
32
- let decompressed = decompress_sequence (& compressed );
32
+ let sequence_length = dna_sequence . len ();
33
+ let decompressed = decompress_sequence (& compressed , sequence_length ). unwrap ();
33
34
34
35
assert_eq! (dna_sequence , decompressed );
35
36
println! (" Compression successful!" );
@@ -54,11 +55,12 @@ pub fn compress_sequence(sequence: &str) -> Vec<u8>
54
55
Decompresses binary data back into the original DNA sequence .
55
56
56
57
```rust
57
- pub fn decompress_sequence (compressed : & [u8 ]) -> String
58
+ pub fn decompress_sequence (compressed : & [u8 ], sequence_length : usize ) -> io :: Result < String > {
58
59
```
59
60
60
61
- ** Input** : ` &[u8] ` - The compressed binary data.
61
- - * * Output ** : `String ` - The decompressed DNA sequence .
62
+ - ** Input** : ` usize ` - The length of the original DNA sequence.
63
+ - ** Output** : ` io::Result<String> ` - The decompressed DNA sequence.
62
64
63
65
## Tests
64
66
@@ -83,7 +85,8 @@ Here's an example test that checks the compression and decompression of a DNA se
83
85
fn test_compress_decompress () {
84
86
let dna_sequence = " ACGTACGTACGT" ;
85
87
let compressed = compress_sequence (dna_sequence );
86
- let decompressed = decompress_sequence (& compressed );
88
+ let sequence_length = dna_sequence . len ();
89
+ let decompressed = decompress_sequence (& compressed , sequence_length ). unwrap ();
87
90
88
91
assert_eq! (dna_sequence , decompressed );
89
92
}
0 commit comments