Add tests for simple transfer region
This commit is contained in:
parent
43331ff8f2
commit
6b03e89854
|
@ -297,7 +297,7 @@ fn standardize_rectangle(c1: &(u8, u8), c2: &(u8, u8)) -> ((u8, u8), (u8, u8)) {
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::ops::Mul;
|
use std::ops::Mul;
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)] // There should be no reason to print a transfer otherwise
|
||||||
impl fmt::Display for TransferRegion<'_> {
|
impl fmt::Display for TransferRegion<'_> {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
writeln!(f, "Source Plate:")?;
|
writeln!(f, "Source Plate:")?;
|
||||||
|
@ -333,3 +333,65 @@ impl fmt::Display for TransferRegion<'_> {
|
||||||
write!(f, "{}", dest_string)
|
write!(f, "{}", dest_string)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::data::plate::*;
|
||||||
|
use crate::data::transfer_region::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_simple_transfer() {
|
||||||
|
let source = Plate::new(PlateType::Source, PlateFormat::W96);
|
||||||
|
let destination = Plate::new(PlateType::Destination, PlateFormat::W384);
|
||||||
|
|
||||||
|
|
||||||
|
let transfer1 = TransferRegion {
|
||||||
|
source_plate: &source,
|
||||||
|
source_region: Region::Rect((1, 1), (3, 3)),
|
||||||
|
dest_plate: &destination,
|
||||||
|
dest_region: Region::Point((3,3)),
|
||||||
|
interleave_source: None,
|
||||||
|
interleave_dest: None,
|
||||||
|
};
|
||||||
|
let transfer1_map = transfer1.calculate_map();
|
||||||
|
assert_eq!(transfer1_map((1,1)), Some(vec!{(3,3)}), "Failed basic shift transfer 1");
|
||||||
|
assert_eq!(transfer1_map((1,2)), Some(vec!{(3,4)}), "Failed basic shift transfer 2");
|
||||||
|
assert_eq!(transfer1_map((2,2)), Some(vec!{(4,4)}), "Failed basic shift transfer 3");
|
||||||
|
|
||||||
|
let transfer2 = TransferRegion {
|
||||||
|
source_plate: &source,
|
||||||
|
source_region: Region::Rect((1, 1), (3, 3)),
|
||||||
|
dest_plate: &destination,
|
||||||
|
dest_region: Region::Point((3,3)),
|
||||||
|
interleave_source: Some((2,2)),
|
||||||
|
interleave_dest: None,
|
||||||
|
};
|
||||||
|
let transfer2_map = transfer2.calculate_map();
|
||||||
|
assert_eq!(transfer2_map((1,1)), Some(vec!{(3,3)}), "Failed source interleave, type simple 1");
|
||||||
|
assert_eq!(transfer2_map((1,2)), None, "Failed source interleave, type simple 2");
|
||||||
|
assert_eq!(transfer2_map((2,2)), None, "Failed source interleave, type simple 3");
|
||||||
|
assert_eq!(transfer2_map((3,3)), Some(vec!{(4,4)}), "Failed source interleave, type simple 4");
|
||||||
|
|
||||||
|
let transfer3 = TransferRegion {
|
||||||
|
source_plate: &source,
|
||||||
|
source_region: Region::Rect((1, 1), (3, 3)),
|
||||||
|
dest_plate: &destination,
|
||||||
|
dest_region: Region::Point((3,3)),
|
||||||
|
interleave_source: None,
|
||||||
|
interleave_dest: Some((2,3)),
|
||||||
|
};
|
||||||
|
let transfer3_map = transfer3.calculate_map();
|
||||||
|
assert_eq!(transfer3_map((1,1)), Some(vec!{(3,3)}), "Failed destination interleave, type simple 1");
|
||||||
|
assert_eq!(transfer3_map((2,1)), Some(vec!{(5,3)}), "Failed destination interleave, type simple 2");
|
||||||
|
assert_eq!(transfer3_map((1,2)), Some(vec!{(3,6)}), "Failed destination interleave, type simple 3");
|
||||||
|
assert_eq!(transfer3_map((2,2)), Some(vec!{(5,6)}), "Failed destination interleave, type simple 4");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_replicate_transfer() {
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_pooling_transfer() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue