1
0
mirror of https://github.com/pcvolkmer/fastq-tools.git synced 2025-09-13 05:02:53 +00:00

test: illumina generated casava 1.8+ header format used at CCC MF

This commit is contained in:
2025-08-11 14:04:35 +02:00
parent a012fa8ae3
commit 6ca8fa3cdb

View File

@@ -252,7 +252,7 @@ mod tests {
} }
#[test] #[test]
fn should_return_header_string() { fn should_return_casava18_header_string() {
let given = "@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG"; let given = "@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG";
let actual = given.parse::<Header>(); let actual = given.parse::<Header>();
@@ -263,21 +263,47 @@ mod tests {
} }
#[test] #[test]
fn should_return_scrambled_sequence_string_seed1() { fn should_return_other_parsed_casava18_header() {
let given = "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT"; let given = "@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:NGAAGCAA+NATGCTGA";
let actual = scramble_sequence(given, 1);
let expected = "CGATCTGGCGCGCAGCGCCGGAGCGAGCAGAGCGTAGATGCATCCGCGCGGCGCGCCGTT";
assert_eq!(expected, actual); if let Ok(Header::Casava18(actual)) = given.parse::<Header>() {
assert_eq!(actual.instrument_name, "EAS139");
assert_eq!(actual.run_id, 136);
assert_eq!(actual.flowcell_id, "FC706VJ");
assert_eq!(actual.flowcell_lane, 2);
assert_eq!(actual.tile_number, 2104);
assert_eq!(actual.x, 15343);
assert_eq!(actual.y, 197393);
assert_eq!(actual.pair_member, Pair::PairedEnd);
assert_eq!(actual.filtered, Filtered::Y);
assert_eq!(actual.control_bits, 18);
assert_eq!(actual.index_sequence, "NGAAGCAA+NATGCTGA");
} else {
panic!("Failed to parse FASTQ header");
}
} }
#[test] #[test]
fn should_return_scrambled_sequence_string_seed42() { fn should_return_other_casava18_header_string() {
let given = "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT"; let given = "@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:NGAAGCAA+NATGCTGA";
let actual = scramble_sequence(given, 42); let actual = given.parse::<Header>();
let expected = "GTTTCTGGTTCGCAGCGCTCTCGCTCGCATCTTCTATCTGCTTCTTCGCCGCGCGCTTTA";
assert_eq!(expected, actual); assert!(actual.is_ok());
let actual = actual.unwrap();
assert_eq!(given, actual.to_string());
}
#[test]
fn should_return_other_scrambled_casava18_header_string() {
let given = "@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:NGAAGCAA+NATGCTGA";
let actual = given.parse::<Header>();
let expected = "@TEST73:273:CQEAACM:8:503:15353:197403 1:Y:18:NCGGCGCA+NGACGCCG";
assert!(actual.is_ok());
let actual = actual.unwrap().scramble();
assert_eq!(expected, actual.to_string().as_str());
} }
#[test] #[test]
@@ -308,4 +334,22 @@ mod tests {
let actual = actual.unwrap(); let actual = actual.unwrap();
assert_eq!(given, actual.to_string()); assert_eq!(given, actual.to_string());
} }
#[test]
fn should_return_scrambled_sequence_string_seed1() {
let given = "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT";
let actual = scramble_sequence(given, 1);
let expected = "CGATCTGGCGCGCAGCGCCGGAGCGAGCAGAGCGTAGATGCATCCGCGCGGCGCGCCGTT";
assert_eq!(expected, actual);
}
#[test]
fn should_return_scrambled_sequence_string_seed42() {
let given = "GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT";
let actual = scramble_sequence(given, 42);
let expected = "GTTTCTGGTTCGCAGCGCTCTCGCTCGCATCTTCTATCTGCTTCTTCGCCGCGCGCTTTA";
assert_eq!(expected, actual);
}
} }