diff options
author | sanine <sanine.not@pm.me> | 2023-10-30 00:31:47 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-10-30 00:31:47 -0500 |
commit | ae504c5f500b523eecb51b41eaf3b51d799d8a5f (patch) | |
tree | f8e64ef017ea7ae18540ed6e1cf9f4700367859a /src/genome/genome.test.js | |
parent | 3793cddeb12993da492f9934b59849442c68aa12 (diff) |
add mut_genome_expand
Diffstat (limited to 'src/genome/genome.test.js')
-rw-r--r-- | src/genome/genome.test.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/genome/genome.test.js b/src/genome/genome.test.js index e1c8711..11b2d31 100644 --- a/src/genome/genome.test.js +++ b/src/genome/genome.test.js @@ -6,6 +6,7 @@ import { mut_gene_source,
mut_gene_sink,
mut_gene_weight,
+ mut_genome_expand,
} from './genome';
@@ -110,3 +111,53 @@ test('mutate gene weight', () => { weight_max, [0, 0, 3], 0.5
)).toEqual([0, 0, (6+0)/3]);
});
+
+
+test('expand genome', () => {
+ const n_input = 1;
+ const n_internal = 3;
+ const n_output = 1;
+
+ const genome = [
+ [0, 1, 0],
+ [1, 2, 0],
+ [2, 3, 0],
+ [3, 4, 0],
+ ];
+
+ expect(mut_genome_expand([
+ n_input, n_internal, n_output, genome
+ ], 0.0)).toEqual([
+ n_input, n_internal+1, n_output,
+ [
+ [0, 2, 0],
+ [2, 3, 0],
+ [3, 4, 0],
+ [4, 5, 0],
+ ],
+ ]);
+
+ expect(mut_genome_expand([
+ n_input, n_internal, n_output, genome
+ ], 0.5)).toEqual([
+ n_input, n_internal+1, n_output,
+ [
+ [0, 1, 0],
+ [1, 3, 0],
+ [3, 4, 0],
+ [4, 5, 0],
+ ],
+ ]);
+
+ expect(mut_genome_expand([
+ n_input, n_internal, n_output, genome
+ ], 0.99)).toEqual([
+ n_input, n_internal+1, n_output,
+ [
+ [0, 1, 0],
+ [1, 2, 0],
+ [2, 4, 0],
+ [4, 5, 0],
+ ],
+ ]);
+});
|