Fix, clippy now working better
This commit is contained in:
@ -2,7 +2,7 @@ use std::rc::Rc;
|
||||
|
||||
use crate::element::IdState;
|
||||
use crate::reaction::{BasicReaction, PositiveReaction, Reaction};
|
||||
use crate::set::{ExtensionsSet, PositiveSet, Set, BasicSet};
|
||||
use crate::set::{BasicSet, ExtensionsSet, PositiveSet, Set};
|
||||
use crate::system::{PositiveSystem, System};
|
||||
use crate::trace::*;
|
||||
use crate::translator::Translator;
|
||||
@ -82,13 +82,14 @@ fn slice_atoi() {
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
.into();
|
||||
let products_elements =
|
||||
["rorgt", "stat3", "il21r", "il6r", "nfat", "stat1", "tbet", "il21",
|
||||
"il23r"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
.into();
|
||||
let products_elements = [
|
||||
"rorgt", "stat3", "il21r", "il6r", "nfat", "stat1", "tbet", "il21",
|
||||
"il23r",
|
||||
]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
.into();
|
||||
|
||||
let trace: SlicingTrace<Set, Reaction, System> = SlicingTrace {
|
||||
elements,
|
||||
@ -205,72 +206,129 @@ fn slice_positive_atoi() {
|
||||
);
|
||||
|
||||
let converted_system: PositiveSystem = system.into();
|
||||
let mut reactions = Rc::try_unwrap(converted_system.reaction_rules).unwrap();
|
||||
reactions.sort_by(|a, b| a.reactants.cmp(&b.reactants)
|
||||
.then(a.products.cmp(&b.products)));
|
||||
let mut reactions =
|
||||
Rc::try_unwrap(converted_system.reaction_rules).unwrap();
|
||||
reactions.sort_by(|a, b| {
|
||||
a.reactants
|
||||
.cmp(&b.reactants)
|
||||
.then(a.products.cmp(&b.products))
|
||||
});
|
||||
|
||||
println!("Computed Reactions:");
|
||||
for (pos, r) in reactions.iter().enumerate() {
|
||||
println!("\t({pos}) {},", crate::translator::Formatter::from(&translator, r));
|
||||
println!(
|
||||
"\t({pos}) {},",
|
||||
crate::translator::Formatter::from(&translator, r)
|
||||
);
|
||||
}
|
||||
reactions
|
||||
};
|
||||
|
||||
let elements = [
|
||||
(vec![("il23r", IdState::Positive), ("il21", IdState::Positive),
|
||||
("rorgt", IdState::Negative), ("stat3", IdState::Negative),
|
||||
("il21r", IdState::Negative), ("il6r", IdState::Negative),
|
||||
("nfat", IdState::Negative), ("stat1", IdState::Negative),
|
||||
("tbet", IdState::Negative), ("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative)],
|
||||
vec![("tcr", IdState::Positive), ("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative), ("il27", IdState::Negative)]),
|
||||
(vec![("il21r", IdState::Positive), ("stat3", IdState::Positive),
|
||||
("nfat", IdState::Positive), ("rorgt", IdState::Negative),
|
||||
("il6r", IdState::Negative), ("stat1", IdState::Negative),
|
||||
("tbet", IdState::Negative), ("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative), ("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative)],
|
||||
vec![("il27", IdState::Positive), ("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative), ("tcr", IdState::Negative)]),
|
||||
(vec![("stat1", IdState::Positive), ("rorgt", IdState::Negative),
|
||||
("stat3", IdState::Negative), ("il21r", IdState::Negative),
|
||||
("il6r", IdState::Negative), ("nfat", IdState::Negative),
|
||||
("tbet", IdState::Negative), ("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative), ("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative)],
|
||||
vec![("il27", IdState::Negative), ("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative), ("tcr", IdState::Negative)]),
|
||||
(vec![("tbet", IdState::Positive), ("rorgt", IdState::Negative),
|
||||
("stat3", IdState::Negative), ("il21r", IdState::Negative),
|
||||
("il6r", IdState::Negative), ("nfat", IdState::Negative),
|
||||
("stat1", IdState::Negative), ("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative), ("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative)],
|
||||
vec![]),
|
||||
(
|
||||
vec![
|
||||
("il23r", IdState::Positive),
|
||||
("il21", IdState::Positive),
|
||||
("rorgt", IdState::Negative),
|
||||
("stat3", IdState::Negative),
|
||||
("il21r", IdState::Negative),
|
||||
("il6r", IdState::Negative),
|
||||
("nfat", IdState::Negative),
|
||||
("stat1", IdState::Negative),
|
||||
("tbet", IdState::Negative),
|
||||
("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative),
|
||||
],
|
||||
vec![
|
||||
("tcr", IdState::Positive),
|
||||
("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative),
|
||||
("il27", IdState::Negative),
|
||||
],
|
||||
),
|
||||
(
|
||||
vec![
|
||||
("il21r", IdState::Positive),
|
||||
("stat3", IdState::Positive),
|
||||
("nfat", IdState::Positive),
|
||||
("rorgt", IdState::Negative),
|
||||
("il6r", IdState::Negative),
|
||||
("stat1", IdState::Negative),
|
||||
("tbet", IdState::Negative),
|
||||
("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative),
|
||||
("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative),
|
||||
],
|
||||
vec![
|
||||
("il27", IdState::Positive),
|
||||
("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative),
|
||||
("tcr", IdState::Negative),
|
||||
],
|
||||
),
|
||||
(
|
||||
vec![
|
||||
("stat1", IdState::Positive),
|
||||
("rorgt", IdState::Negative),
|
||||
("stat3", IdState::Negative),
|
||||
("il21r", IdState::Negative),
|
||||
("il6r", IdState::Negative),
|
||||
("nfat", IdState::Negative),
|
||||
("tbet", IdState::Negative),
|
||||
("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative),
|
||||
("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative),
|
||||
],
|
||||
vec![
|
||||
("il27", IdState::Negative),
|
||||
("tgfb", IdState::Negative),
|
||||
("il6", IdState::Negative),
|
||||
("tcr", IdState::Negative),
|
||||
],
|
||||
),
|
||||
(
|
||||
vec![
|
||||
("tbet", IdState::Positive),
|
||||
("rorgt", IdState::Negative),
|
||||
("stat3", IdState::Negative),
|
||||
("il21r", IdState::Negative),
|
||||
("il6r", IdState::Negative),
|
||||
("nfat", IdState::Negative),
|
||||
("stat1", IdState::Negative),
|
||||
("il21", IdState::Negative),
|
||||
("il23r", IdState::Negative),
|
||||
("tgfbr", IdState::Negative),
|
||||
("foxp3", IdState::Negative),
|
||||
],
|
||||
vec![],
|
||||
),
|
||||
]
|
||||
.iter()
|
||||
.map(|elements| SlicingElement {
|
||||
context: Into::<PositiveSet>::into(
|
||||
elements
|
||||
.1
|
||||
.iter()
|
||||
.map(|el| (translator.encode(el.0), el.1))
|
||||
.collect::<Vec<_>>()),
|
||||
reaction_products: Into::<PositiveSet>::into(
|
||||
elements
|
||||
.0
|
||||
.iter()
|
||||
.map(|el| (translator.encode(el.0), el.1))
|
||||
.collect::<Vec<_>>()),
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
.iter()
|
||||
.map(|elements| SlicingElement {
|
||||
context: Into::<PositiveSet>::into(
|
||||
elements
|
||||
.1
|
||||
.iter()
|
||||
.map(|el| (translator.encode(el.0), el.1))
|
||||
.collect::<Vec<_>>(),
|
||||
),
|
||||
reaction_products: Into::<PositiveSet>::into(
|
||||
elements
|
||||
.0
|
||||
.iter()
|
||||
.map(|el| (translator.encode(el.0), el.1))
|
||||
.collect::<Vec<_>>(),
|
||||
),
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let enabled_reactions = {
|
||||
let mut enabled_reactions = vec![];
|
||||
for slice_el in elements.iter().rev().skip(1).rev() {
|
||||
let available_enteties = slice_el.context.union(&slice_el.reaction_products);
|
||||
let available_enteties =
|
||||
slice_el.context.union(&slice_el.reaction_products);
|
||||
enabled_reactions.push(vec![]);
|
||||
for (pos, r) in reactions.iter().enumerate() {
|
||||
if r.enabled(&available_enteties) {
|
||||
@ -278,28 +336,29 @@ fn slice_positive_atoi() {
|
||||
}
|
||||
}
|
||||
}
|
||||
enabled_reactions.into_iter()
|
||||
.map(|r| EnabledReactions {
|
||||
data: r,
|
||||
})
|
||||
enabled_reactions
|
||||
.into_iter()
|
||||
.map(|r| EnabledReactions { data: r })
|
||||
.collect::<Vec<_>>()
|
||||
};
|
||||
|
||||
let context_elements =
|
||||
Into::<Set>::into(
|
||||
["tgfb", "il6", "tcr", "il27"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
).to_positive_set(IdState::Positive);
|
||||
let products_elements =
|
||||
Into::<Set>::into(
|
||||
["rorgt", "stat3", "il21r", "il6r", "nfat", "stat1", "tbet", "il21",
|
||||
"il23r", "tgfbr", "foxp3"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
).to_positive_set(IdState::Positive);
|
||||
let context_elements = Into::<Set>::into(
|
||||
["tgfb", "il6", "tcr", "il27"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.to_positive_set(IdState::Positive);
|
||||
let products_elements = Into::<Set>::into(
|
||||
[
|
||||
"rorgt", "stat3", "il21r", "il6r", "nfat", "stat1", "tbet", "il21",
|
||||
"il23r", "tgfbr", "foxp3",
|
||||
]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.to_positive_set(IdState::Positive);
|
||||
|
||||
let trace: SlicingTrace<PositiveSet, PositiveReaction, PositiveSystem> =
|
||||
SlicingTrace {
|
||||
@ -312,13 +371,13 @@ fn slice_positive_atoi() {
|
||||
products_elements: Rc::new(products_elements),
|
||||
};
|
||||
|
||||
let marking =
|
||||
Into::<Set>::into(
|
||||
["tbet"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>()
|
||||
).to_positive_set(IdState::Positive);
|
||||
let marking = Into::<Set>::into(
|
||||
["tbet"]
|
||||
.iter()
|
||||
.map(|el| translator.encode(*el))
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
.to_positive_set(IdState::Positive);
|
||||
|
||||
let sliced = trace.slice(marking).unwrap();
|
||||
|
||||
@ -334,14 +393,19 @@ fn slice_positive_atoi() {
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
reaction_products.iter_mut().for_each(|x| x.sort());
|
||||
let mut correct_reaction_products: Vec<Vec<(String, IdState)>> =
|
||||
[vec![("foxp3", IdState::Negative)],
|
||||
vec![("nfat", IdState::Positive), ("tgfbr", IdState::Negative)],
|
||||
vec![("stat1", IdState::Positive), ("foxp3", IdState::Negative),
|
||||
("rorgt", IdState::Negative)],
|
||||
vec![("tbet", IdState::Positive)]]
|
||||
.iter().map(|x| x.iter().map(|y| (y.0.to_string(), y.1))
|
||||
.collect::<Vec<_>>()).collect::<Vec<_>>();
|
||||
let mut correct_reaction_products: Vec<Vec<(String, IdState)>> = [
|
||||
vec![("foxp3", IdState::Negative)],
|
||||
vec![("nfat", IdState::Positive), ("tgfbr", IdState::Negative)],
|
||||
vec![
|
||||
("stat1", IdState::Positive),
|
||||
("foxp3", IdState::Negative),
|
||||
("rorgt", IdState::Negative),
|
||||
],
|
||||
vec![("tbet", IdState::Positive)],
|
||||
]
|
||||
.iter()
|
||||
.map(|x| x.iter().map(|y| (y.0.to_string(), y.1)).collect::<Vec<_>>())
|
||||
.collect::<Vec<_>>();
|
||||
correct_reaction_products.iter_mut().for_each(|x| x.sort());
|
||||
|
||||
assert_eq!(reaction_products, correct_reaction_products);
|
||||
@ -358,13 +422,15 @@ fn slice_positive_atoi() {
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
context.iter_mut().for_each(|x| x.sort());
|
||||
let mut correct_context =
|
||||
[vec![("tcr", IdState::Positive)],
|
||||
vec![("il27", IdState::Positive)],
|
||||
vec![],
|
||||
vec![]]
|
||||
.iter().map(|x| x.iter().map(|y| (y.0.to_string(), y.1))
|
||||
.collect::<Vec<_>>()).collect::<Vec<_>>();
|
||||
let mut correct_context = [
|
||||
vec![("tcr", IdState::Positive)],
|
||||
vec![("il27", IdState::Positive)],
|
||||
vec![],
|
||||
vec![],
|
||||
]
|
||||
.iter()
|
||||
.map(|x| x.iter().map(|y| (y.0.to_string(), y.1)).collect::<Vec<_>>())
|
||||
.collect::<Vec<_>>();
|
||||
correct_context.iter_mut().for_each(|x| x.sort());
|
||||
|
||||
assert_eq!(context, correct_context);
|
||||
|
||||
Reference in New Issue
Block a user