Exemplo n.º 1
0
 public BlogPostDataManager(IDataGetter dataGetter, IDataConvertor dataConvertor, IPostRepository postRepository,
                            IDataDisplayer dataDisplayer)
 {
     _dataGetter     = dataGetter;
     _dataConvertor  = dataConvertor;
     _postRepository = postRepository;
     _dataDisplayer  = dataDisplayer;
 }
 public void Setup()
 {
     _dataGetter     = Substitute.For <IDataGetter>();
     _postRepository = Substitute.For <IPostRepository>();
     _dataConvertor  = Substitute.For <IDataConvertor>();
     _dataDisplayer  = Substitute.For <IDataDisplayer>();
     _dataGetter.GetData().Returns(_data);
     _dataConvertor.ConvertMarkdownToHtml(_data).Returns(_data);
 }
Exemplo n.º 3
0
        public void Serialize(IDataConvertor convertor)
        {
            ushort      code;
            List <byte> parameters;

            if (convertor == null)
            {
                code       = 0;
                parameters = null;
            }
            else
            {
                switch (convertor)
                {
                case DataRange data_range:
                    code       = 1;
                    parameters = new List <byte>();
                    parameters.AddRange(BitConverter.GetBytes(data_range.SignalRange));
                    parameters.AddRange(BitConverter.GetBytes(data_range.SignalHeight));
                    // paramter length = 8
                    break;

                case DataRangeDouble data_range_double:
                    code       = 2;
                    parameters = new List <byte>();
                    parameters.AddRange(BitConverter.GetBytes(data_range_double.SignalRange));
                    parameters.AddRange(BitConverter.GetBytes(data_range_double.SignalHeight));
                    // paramter length = 16
                    break;

                default:
                    var attr = GetAttribute(convertor.GetType());
                    if (!registered_functions_via_code.ContainsKey(attr.code | DATA_CONVERTOR_SIGN))
                    {
                        throw new ArgumentException(
                                  nameof(convertor), "this type of IDataConvertor is not registered.");
                    }
                    var serializer = registered_functions_via_code[attr.code | DATA_CONVERTOR_SIGN];
                    code = serializer.Code;
                    var buffer = serializer.Serialize(convertor);
                    if ((buffer?.Length ?? 0) != serializer.ParameterLength)
                    {
                        throw new Exception("invalid parameters' length.");
                    }
                    parameters = new List <byte>();
                    if (buffer != null)
                    {
                        parameters.AddRange(buffer);
                    }
                    break;
                }
            }

            // serialaize type and parameters
            Serialize(code, parameters?.ToArray());
        }
Exemplo n.º 4
0
 public NeuralNetworkImage(
     Layer[] layers, IErrorFunction error_fnc,
     IDataConvertor input_convertor, IDataConvertor output_convertor,
     IRegularization regularization)
 {
     CheckImageError(layers, error_fnc);
     this.layers           = layers;
     this.error_fnc        = error_fnc;
     this.input_convertor  = input_convertor;
     this.output_convertor = output_convertor;
     this.regularization   = regularization;
 }
Exemplo n.º 5
0
        private NeuralNetworkImage CloseCurrentImage()
        {
            var image = new NeuralNetworkImage(
                layers.ToArray(),
                error_func, in_cvrt, out_cvrt, regularization);

            last_layer_input_count = 0;
            layers         = null;
            error_func     = null;
            in_cvrt        = out_cvrt = null;
            regularization = null;

            return(image);
        }
Exemplo n.º 6
0
        public NeuralNetworkInitializer SetDataConvertor(
            IDataConvertor input_convertot, IDataConvertor output_convertot)
        {
            if (layers == null)
            {
                throw new Exception("The layers input is not set yet.");
            }

            if (layers.Count < 1)
            {
                throw new Exception("The layers output is not set yet.");
            }

            if (last_layer_input_count > -1)
            {
                throw new Exception("The layers are not closed.");
            }

            in_cvrt  = input_convertot;
            out_cvrt = output_convertot;

            return(this);
        }