From a32853e60029fa7f08d4d713ee613ee03196fbef Mon Sep 17 00:00:00 2001 From: sanine Date: Mon, 30 Oct 2023 01:18:23 -0500 Subject: add mut_genome_contract --- src/genome/genome.test.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'src/genome/genome.test.js') diff --git a/src/genome/genome.test.js b/src/genome/genome.test.js index a021073..37bdacc 100644 --- a/src/genome/genome.test.js +++ b/src/genome/genome.test.js @@ -7,6 +7,7 @@ import { mut_gene_sink, mut_gene_weight, mut_genome_expand, + mut_genome_contract, mut_genome_insert, mut_genome_delete, } from './genome'; @@ -165,6 +166,57 @@ test('expand genome', () => { }); +test('contract genome', () => { + const n_input = 1; + const n_internal = 3; + const n_output = 1; + + const genome = [ + [0, 1, 0], + [1, 2, 1], + [2, 3, 2], + [3, 4, 3], + ]; + + expect(mut_genome_contract([ + n_input, n_internal, n_output, genome + ], 0.0)).toEqual([ + n_input, n_internal-1, n_output, + [ + [0, 1, 0], + [0, 1, 1], + [1, 2, 2], + [2, 3, 3], + ], + ]); + + expect(mut_genome_contract([ + n_input, n_internal, n_output, genome + ], 0.5)).toEqual([ + n_input, n_internal-1, n_output, + [ + [0, 1, 0], + [1, 2, 1], + [1, 2, 2], + [2, 3, 3], + ], + ]); + + expect(mut_genome_contract([ + n_input, n_internal, n_output, genome + ], 0.99)).toEqual([ + n_input, n_internal-1, n_output, + [ + [0, 1, 0], + [1, 2, 1], + [2, 3, 2], + [2, 3, 3], + ], + ]); +}); + + + test('insert new genes', () => { const n_input = 1; const n_internal = 2; -- cgit v1.2.1