This commit is contained in:
@@ -38,7 +38,7 @@ impl IconBitfield {
|
||||
debug_assert!(index < 5);
|
||||
match field {
|
||||
CardField::Icon(icon) => self.add_icon(icon, index),
|
||||
CardField::DoubleIcon((icon1, icon2)) => {
|
||||
CardField::DoubleIcon(icon1, icon2) => {
|
||||
self.add_icon(icon1, index);
|
||||
self.add_icon(icon2, index);
|
||||
}
|
||||
@@ -50,8 +50,8 @@ impl IconBitfield {
|
||||
pub fn new(card: &Card) -> Self {
|
||||
let mut result = Self::default();
|
||||
(0u8..)
|
||||
.zip(card.field.iter())
|
||||
.for_each(|(index, field)| result.add_field(*field, index));
|
||||
.zip(card.field_iter())
|
||||
.for_each(|(index, field)| result.add_field(field, index));
|
||||
result
|
||||
}
|
||||
|
||||
@@ -84,35 +84,40 @@ impl IconBitfield {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_add_field() {
|
||||
let mut x: IconBitfield = Default::default();
|
||||
x.add_icon(Icon::Circle, 2);
|
||||
let expected = IconBitfield {
|
||||
circle: 0b00100,
|
||||
..Default::default()
|
||||
};
|
||||
assert_eq!(x, expected);
|
||||
}
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::{Icon, icon_bitfield::IconBitfield};
|
||||
|
||||
#[test]
|
||||
fn test_layer_below() {
|
||||
let mut a: IconBitfield = IconBitfield {
|
||||
color: 0b00010,
|
||||
points: 0b01000,
|
||||
..Default::default()
|
||||
};
|
||||
let b = IconBitfield {
|
||||
triangle: a.get_point_bits(),
|
||||
square: 0b10000,
|
||||
..Default::default()
|
||||
};
|
||||
let expected = IconBitfield {
|
||||
color: a.get_icon_bits(Icon::Color),
|
||||
points: a.get_point_bits(),
|
||||
square: b.get_icon_bits(Icon::Square),
|
||||
..Default::default()
|
||||
};
|
||||
a.layer_below(&b);
|
||||
assert_eq!(a, expected);
|
||||
#[test]
|
||||
fn test_add_field() {
|
||||
let mut x: IconBitfield = Default::default();
|
||||
x.add_icon(Icon::Circle, 2);
|
||||
let expected = IconBitfield {
|
||||
circle: 0b00100,
|
||||
..Default::default()
|
||||
};
|
||||
assert_eq!(x, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_layer_below() {
|
||||
let mut a: IconBitfield = IconBitfield {
|
||||
color: 0b00010,
|
||||
points: 0b01000,
|
||||
..Default::default()
|
||||
};
|
||||
let b = IconBitfield {
|
||||
triangle: a.get_point_bits(),
|
||||
square: 0b10000,
|
||||
..Default::default()
|
||||
};
|
||||
let expected = IconBitfield {
|
||||
color: a.get_icon_bits(Icon::Color),
|
||||
points: a.get_point_bits(),
|
||||
square: b.get_icon_bits(Icon::Square),
|
||||
..Default::default()
|
||||
};
|
||||
a.layer_below(&b);
|
||||
assert_eq!(a, expected);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user