static void Main(string[] args)
        {
            //XORTest();
            FileInfo          f    = new FileInfo(@"C:\Users\Wes\Downloads\Bitfinex_BTCUSD_1h.csv");
            List <MarketData> test = f.ReadCSV <MarketData>();

            int[] inputs = new int[] { 1, 30, 50, 50, 30, 6 };
            var   net    = new FFNeuralNetwork(inputs);

            //Data still needs normalized but basic principle is here
            foreach (var data in test)
            {
                net.FeedForward(data.FloatDate);
                net.BackProp(data.ToArray());
            }

            var now     = new float[] { DateTime.Now.AddHours(1).Ticks };
            var results = net.FeedForward(now);

            foreach (var r in results)
            {
                Console.WriteLine(r);
            }
        }
        //public sealed class MarketMap : ClassMap<MarketData>
        //{
        //    public MarketMap()
        //    {
        //        var mm = Map(x => x.Date);
        //    }
        //}

        private static void XORTest()
        {
            int iterations = 50000;

            int[]           layers = new int[] { 4, 10, 25, 10, 1 };
            FFNeuralNetwork nn     = new FFNeuralNetwork(layers);

            for (int i = 0; i < iterations; i++)
            {
                #region 4-XOR
                nn.FeedForward(new float[] { 0, 0, 0, 1 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 0, 0, 1, 0 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 0, 0, 1, 1 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 0, 1, 0, 0 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 0, 1, 0, 1 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 0, 1, 1, 0 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 0, 1, 1, 1 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 1, 0, 0, 0 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 1, 0, 0, 1 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 1, 0, 1, 0 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 1, 0, 1, 1 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 1, 1, 0, 0 });
                nn.BackProp(new float[] { 0 });

                nn.FeedForward(new float[] { 1, 1, 0, 1 });
                nn.BackProp(new float[] { 1 });

                nn.FeedForward(new float[] { 1, 1, 1, 0 });
                nn.BackProp(new float[] { 1 });

                //nn.FeedForward(new float[] { 1, 1, 1, 1 });
                //nn.BackProp(new float[] { 0 });


                if (i % 1000 == 0)
                {
                    Console.Clear();
                    //Console.WriteLine(nn.ToString());
                    var results = new List <float>()
                    {
                        nn.FeedForward(new float[] { 0, 0, 0, 1 })[0],
                        nn.FeedForward(new float[] { 0, 0, 1, 0 })[0],
                        nn.FeedForward(new float[] { 0, 0, 1, 1 })[0],
                        nn.FeedForward(new float[] { 0, 1, 0, 0 })[0],
                        nn.FeedForward(new float[] { 0, 1, 0, 1 })[0],
                        nn.FeedForward(new float[] { 0, 1, 1, 0 })[0],
                        nn.FeedForward(new float[] { 0, 1, 1, 1 })[0],
                        nn.FeedForward(new float[] { 1, 0, 0, 0 })[0],
                        nn.FeedForward(new float[] { 1, 0, 0, 1 })[0],
                        nn.FeedForward(new float[] { 1, 0, 1, 0 })[0],
                        nn.FeedForward(new float[] { 1, 0, 1, 1 })[0],
                        nn.FeedForward(new float[] { 1, 1, 0, 0 })[0],
                        nn.FeedForward(new float[] { 1, 1, 0, 1 })[0],
                        nn.FeedForward(new float[] { 1, 1, 1, 0 })[0],
                        nn.FeedForward(new float[] { 1, 1, 1, 1 })[0],
                    };

                    foreach (var Z in results)
                    {
                        Console.WriteLine(Z);
                    }
                }
                #endregion
            }
            var result = nn.FeedForward(new float[] { 1, 1, 1, 1 });
            Console.WriteLine(result[0]);
        }