From 072ae7d14b8dc2221fe06410bf0f99ba8ddadc77 Mon Sep 17 00:00:00 2001 From: Tristan Murphy <72839119+inflectrix@users.noreply.github.com> Date: Tue, 16 Apr 2024 14:06:56 +0000 Subject: [PATCH 1/3] change cfg macros --- examples/basic.rs | 78 ++++++++--------------------------------------- 1 file changed, 13 insertions(+), 65 deletions(-) diff --git a/examples/basic.rs b/examples/basic.rs index bcd5d6d..5d21054 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -87,55 +87,23 @@ fn fitness(dna: &AgentDNA) -> f32 { fitness } -#[cfg(all(not(feature = "crossover"), not(feature = "rayon")))] fn main() { + #[cfg(not(feature = "rayon"))] let mut rng = rand::thread_rng(); let mut sim = GeneticSim::new( + #[cfg(not(feature = "rayon"))] Vec::gen_random(&mut rng, 100), - fitness, - division_pruning_nextgen, - ); - for _ in 0..100 { - sim.next_generation(); - } + #[cfg(feature = "rayon")] + Vec::gen_random(100), - let fits: Vec<_> = sim.genomes.iter().map(fitness).collect(); - - let maxfit = fits - .iter() - .max_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap(); - - dbg!(&fits, maxfit); -} - -#[cfg(all(not(feature = "crossover"), feature = "rayon"))] -fn main() { - let mut sim = GeneticSim::new(Vec::gen_random(100), fitness, division_pruning_nextgen); - - for _ in 0..100 { - sim.next_generation(); - } - - let fits: Vec<_> = sim.genomes.iter().map(fitness).collect(); - - let maxfit = fits - .iter() - .max_by(|a, b| a.partial_cmp(b).unwrap()) - .unwrap(); - - dbg!(&fits, maxfit); -} + fitness, -#[cfg(all(feature = "crossover", not(feature = "rayon")))] -fn main() { - let mut rng = rand::thread_rng(); + #[cfg(not(feature = "crossover"))] + division_pruning_nextgen, - let mut sim = GeneticSim::new( - Vec::gen_random(&mut rng, 100), - fitness, + #[cfg(feature = "crossover")] crossover_pruning_nextgen, ); @@ -143,36 +111,16 @@ fn main() { sim.next_generation(); } - let mut fits: Vec<_> = sim.genomes.iter().map(|e| (e, fitness(e))).collect(); + let mut fits: Vec<_> = sim.genomes.iter().map(fitness).collect(); - fits.sort_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap()); + fits.sort_by(|a, b| a.partial_cmp(&b).unwrap()); dbg!(&fits); - if cfg!(feature = "serde") { + #[cfg(feature = "serde")] + { let intermediate = NNTSerde::from(&fits[0].0.network); let serialized = serde_json::to_string(&intermediate).unwrap(); println!("{}", serialized); } -} - -#[cfg(all(feature = "crossover", feature = "rayon"))] -fn main() { - let mut sim = GeneticSim::new(Vec::gen_random(100), fitness, crossover_pruning_nextgen); - - for _ in 0..100 { - sim.next_generation(); - } - - let mut fits: Vec<_> = sim.genomes.iter().map(|e| (e, fitness(e))).collect(); - - fits.sort_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap()); - - dbg!(&fits); - - if cfg!(feature = "serde") { - let intermediate = NNTSerde::from(&fits[0].0.network); - let serialized = serde_json::to_string(&intermediate).unwrap(); - println!("serialized: {}", serialized); - } -} +} \ No newline at end of file From fb806ae9bf2b080c2ed81d9de0e2f1a00683f395 Mon Sep 17 00:00:00 2001 From: Tristan Murphy <72839119+inflectrix@users.noreply.github.com> Date: Tue, 16 Apr 2024 14:11:39 +0000 Subject: [PATCH 2/3] fix serde feature comp error --- examples/basic.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/basic.rs b/examples/basic.rs index 5d21054..922f9d5 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -111,10 +111,18 @@ fn main() { sim.next_generation(); } + #[cfg(not(feature = "serde"))] let mut fits: Vec<_> = sim.genomes.iter().map(fitness).collect(); + + #[cfg(feature = "serde")] + let mut fits: Vec<_> = sim.genomes.iter().map(|e| (e, fitness(e))).collect(); + #[cfg(not(feature = "serde"))] fits.sort_by(|a, b| a.partial_cmp(&b).unwrap()); + #[cfg(feature = "serde")] + fits.sort_by(|(_, a), (_, b)| a.partial_cmp(&b).unwrap()); + dbg!(&fits); #[cfg(feature = "serde")] From 12727b86ea356f0c4e37c579d6702fe8beb25378 Mon Sep 17 00:00:00 2001 From: Tristan Murphy <72839119+inflectrix@users.noreply.github.com> Date: Tue, 16 Apr 2024 14:14:24 +0000 Subject: [PATCH 3/3] cargo fmt --- examples/basic.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/examples/basic.rs b/examples/basic.rs index 922f9d5..9ad0419 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -94,15 +94,11 @@ fn main() { let mut sim = GeneticSim::new( #[cfg(not(feature = "rayon"))] Vec::gen_random(&mut rng, 100), - #[cfg(feature = "rayon")] Vec::gen_random(100), - fitness, - #[cfg(not(feature = "crossover"))] division_pruning_nextgen, - #[cfg(feature = "crossover")] crossover_pruning_nextgen, ); @@ -113,7 +109,7 @@ fn main() { #[cfg(not(feature = "serde"))] let mut fits: Vec<_> = sim.genomes.iter().map(fitness).collect(); - + #[cfg(feature = "serde")] let mut fits: Vec<_> = sim.genomes.iter().map(|e| (e, fitness(e))).collect(); @@ -131,4 +127,4 @@ fn main() { let serialized = serde_json::to_string(&intermediate).unwrap(); println!("{}", serialized); } -} \ No newline at end of file +}