1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#![allow(dead_code)]
#![doc(html_logo_url = "https://img.freepik.com/free-icon/rubber-duck_318-763202.jpg?w=2000")]
extern crate ndarray;
pub mod layers;
#[cfg(test)]
mod layers_tests {
use ndarray::*;
use super::layers::*;
#[test]
fn dense1d_pass_arr1_1() {
let layer = Dense1d::from(
|x| x,
arr2(&[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]]),
arr1(&[1., 1., 1.]),
);
let input_array = arr1(&[1., 1., 1.]);
assert_eq!(
layer.pass(input_array),
arr1(&[4., 4., 4.])
)
}
#[test]
fn dense1d_pass_arr1_2() {
let layer = Dense1d::from(
|x| x,
arr2(&[
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]
]),
arr1(&[
1., 1., 1.
]),
);
let input_array = arr1(&[
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
]);
assert_eq!(
layer.pass(input_array),
arr1(&[
13.0, 13.0, 13.0
])
)
}
#[test]
#[should_panic]
fn dense1d_pass_arr1_diff_size() {
let layer = Dense1d::from(
|x| x,
arr2(&[[1., 1., 1., 1.], [1., 1., 1., 1.]]),
arr1(&[0., 0.]),
);
let input_array = arr1(&[1.]);
layer.pass(input_array);
}
}