コード例 #1
0
            public void ReadDataSource_GoodData_FourProducts_Success()
            {
                _dataSource.Data = _goodDataWithFourProducts;

                _parser         = new TriangleParser(_dataSource, _dataFormatter, _dataReadResult);
                _dataReadResult = _parser.ReadDataSource();
                Assert.AreEqual(1990, _dataReadResult.FirstYear);
                Assert.AreEqual(1993, _dataReadResult.LastYear);
                Assert.AreEqual(4, _dataReadResult.NumberOfYears);
                Assert.AreEqual(4, _dataReadResult.Products.Count());

                var firstProduct = _dataReadResult.Products.ElementAt(0);

                Assert.AreEqual("Comp", firstProduct.Name);
                Assert.AreEqual(2, firstProduct.Rows.Count);

                var secondProduct = _dataReadResult.Products.ElementAt(1);

                Assert.AreEqual("Non-Comp", secondProduct.Name);
                Assert.AreEqual(4, secondProduct.Rows.Count);

                var thirdProduct = _dataReadResult.Products.ElementAt(2);

                Assert.AreEqual("First-Prod", thirdProduct.Name);
                Assert.AreEqual(1, thirdProduct.Rows.Count);

                var fourthProduct = _dataReadResult.Products.ElementAt(3);

                Assert.AreEqual("Second-Prod", fourthProduct.Name);
                Assert.AreEqual(2, fourthProduct.Rows.Count);
            }
コード例 #2
0
            public void ReadDataSource_WithMissingColumn_Exception()
            {
                _dataSource.Data = _missingColumn;

                _parser         = new TriangleParser(_dataSource, _dataFormatter, _dataReadResult);
                _dataReadResult = _parser.ReadDataSource();
                Assert.AreEqual(false, _dataReadResult.IsSuccess);
            }
コード例 #3
0
            public void ReadDataSource_WithNoCommaData_Exception()
            {
                _dataSource.Data = _invalidDataWithNoComma;

                _parser         = new TriangleParser(_dataSource, _dataFormatter, _dataReadResult);
                _dataReadResult = _parser.ReadDataSource();
                Assert.AreEqual(false, _dataReadResult.IsSuccess);
            }
コード例 #4
0
 public TriangleParser(IDataSource dataSource, IDataFormatter dataFormatter, IDataReadResult dataReadResult)
 {
     DataSource     = dataSource;
     DataFormatter  = dataFormatter;
     DataReadResult = dataReadResult;
 }
コード例 #5
0
            public void Initialise()
            {
                _dataSource     = new TextDataSource("input.csv", "output.csv");
                _dataFormatter  = new CsvDataFormatter(',', true);
                _dataReadResult = new DataReadResult();

                _goodData = new List <string>
                {
                    "Product, Origin Year, Development Year, Incremental Value",
                    "Comp, 1992, 1992, 110.0",
                    "Comp, 1992, 1993, 170.0",
                    "Comp, 1993, 1993, 200.0",
                    "Non-Comp, 1990, 1990, 45.2",
                    "Non-Comp, 1990, 1991, 64.8",
                    "Non-Comp, 1990, 1993, 37.0",
                    "Non-Comp, 1991, 1991, 50.0",
                    "Non-Comp, 1991, 1992, 75.0",
                    "Non-Comp, 1991, 1993, 25.0",
                    "Non-Comp, 1992, 1992, 55.0",
                    "Non-Comp, 1992, 1993, 85.0",
                    "Non-Comp, 1993, 1993, 100.0"
                };

                _goodDataWithFourProducts = new List <string>
                {
                    "Product, Origin Year, Development Year, Incremental Value",
                    "Comp, 1992, 1992, 110.0",
                    "Comp, 1992, 1993, 170.0",
                    "Comp, 1993, 1993, 200.0",
                    "Non-Comp, 1990, 1990, 45.2",
                    "Non-Comp, 1990, 1991, 64.8",
                    "Non-Comp, 1990, 1993, 37.0",
                    "Non-Comp, 1991, 1991, 50.0",
                    "Non-Comp, 1991, 1992, 75.0",
                    "Non-Comp, 1991, 1993, 25.0",
                    "Non-Comp, 1992, 1992, 55.0",
                    "Non-Comp, 1992, 1993, 85.0",
                    "Non-Comp, 1993, 1993, 100.0",
                    "First-Prod, 1990, 1992, 55.0",
                    "Second-Prod, 1991, 1991, 78.0",
                    "Second-Prod, 1991, 1992, 79.0",
                    "Second-Prod, 1993, 1993, 65.0"
                };

                _invalidFormatData = new List <string>
                {
                    "Product, Origin Year, Development Year, Incremental Value",
                    "Comp, 1A992, 1992, 11A0.0",
                    "Comp, 1992, 1993, 170.0",
                    "Comp, 1993, 1993, 200.0",
                    "Non-Comp, 1990, 1990, 45.2",
                    "Non-Comp, 1990, 1991, 64.8",
                    "Non-Comp, 1990, 1993, 37.0"
                };

                _invalidDataWithNoComma = new List <string>
                {
                    "Product, Origin Year, Development Year, Incremental Value",
                    "Comp 1992 1992 110.0",
                    "Comp, 1992, 1993, 170.0",
                    "Comp, 1993, 1993, 200.0",
                    "Non-Comp, 1990, 1990, 45.2",
                    "Non-Comp, 1990, 1991, 64.8",
                    "Non-Comp, 1990, 1993, 37.0"
                };

                _missingColumn = new List <string>
                {
                    "Product, Origin Year, Development Year, Incremental Value",
                    "Comp, 1992, 1992"
                };


                _dataReadResult = new DataReadResult
                {
                    FirstYear = 1990,
                    LastYear  = 1993,
                    Products  = new List <Product>
                    {
                        new Product("Comp")
                        {
                            Rows = new SortedList <int, SortedList <int, double> >
                            {
                                { 1992, new SortedList <int, double> {
                                      { 1992, 110 }, { 1993, 280 }
                                  } },
                                { 1993, new SortedList <int, double> {
                                      { 1993, 200 }
                                  } }
                            }
                        },
                        new Product("Non-Comp")
                        {
                            Rows = new SortedList <int, SortedList <int, double> >
                            {
                                { 1990, new SortedList <int, double> {
                                      { 1990, 45.2 }, { 1991, 64.8 }, { 1993, 37 }
                                  } },
                                { 1991, new SortedList <int, double> {
                                      { 1991, 50 }, { 1992, 75 }, { 1993, 25 }
                                  } },
                                { 1992, new SortedList <int, double> {
                                      { 1992, 55 }, { 1993, 85 }
                                  } },
                                { 1993, new SortedList <int, double> {
                                      { 1993, 100 }
                                  } }
                            }
                        }
                    }
                };
                _products = new List <Product>
                {
                    new Product("Comp")
                    {
                        Rows = new SortedList <int, SortedList <int, double> >
                        {
                            { 1990, new SortedList <int, double> {
                                  { 1990, 0 }, { 1991, 0 }, { 1992, 0 }, { 1993, 0 }
                              } },
                            { 1991, new SortedList <int, double> {
                                  { 1991, 0 }, { 1992, 0 }, { 1993, 0 }
                              } },
                            { 1992, new SortedList <int, double> {
                                  { 1992, 110 }, { 1993, 280 }
                              } },
                            { 1993, new SortedList <int, double> {
                                  { 1993, 200 }
                              } }
                        }
                    },
                    new Product("Non-Comp")
                    {
                        Rows = new SortedList <int, SortedList <int, double> >
                        {
                            { 1990, new SortedList <int, double> {
                                  { 1990, 45.2 }, { 1991, 110 }, { 1992, 110 }, { 1993, 147 }
                              } },
                            { 1991, new SortedList <int, double> {
                                  { 1991, 50 }, { 1992, 125 }, { 1993, 150 }
                              } },
                            { 1992, new SortedList <int, double> {
                                  { 1992, 55 }, { 1993, 140 }
                              } },
                            { 1993, new SortedList <int, double> {
                                  { 1993, 100 }
                              } }
                        }
                    }
                };
            }