コード例 #1
0
        public void LayeredConnectionsSeparatesUnitsIntoLayersCorrectly()
        {
            var inputs = _network.GetInputs();

            _network.AddBias();

            var layeredUnitCollection = new LayeredConnectionCollection <IUnit, IConnection, IUnitActivation <IUnit> >(inputs);
            var layeredConnections    = layeredUnitCollection.GetLayeredConnection().ToList();

            layeredConnections.Should().HaveCount(2);

            var inputToHiddenConnections  = layeredConnections.ElementAt(0);
            var hiddenToOutputConnections = layeredConnections.ElementAt(1);

            inputToHiddenConnections.Should().Contain(new List <object>
            {
                _network.ConnectionInput1Hidden1,
                _network.ConnectionInput1Hidden2,
                _network.ConnectionInput2Hidden1,
                _network.ConnectionInput2Hidden2,
                _network.InputUnorthodoxToHidden1,
                _network.HiddenBiasToHidden1,
                _network.HiddenBiasToHidden2,
            }).And.HaveCount(7);

            hiddenToOutputConnections.Should().Contain(new List <object>
            {
                _network.ConnectionHidden1Output1,
                _network.ConnectionHidden1Output2,
                _network.ConnectionHidden2Output1,
                _network.ConnectionHidden2Output2,
                _network.InputUnorthodoxToOutput1,
                _network.OutputBiasToOutput1,
                _network.OutputBiasToOutput2,
            }).And.HaveCount(7);
        }