public void CopyTo_Negative_arrayIndex_Exception() { var array = new CsvDataRow[10]; Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, -1)); Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, int.MinValue)); Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, 10)); }
private static List <CsvDataRow> ReadCsvFile(string filename) { List <CsvDataRow> values = File.ReadAllLines(filename) //"C:\\Users\\Josh\\Sample.csv") .Skip(1) .Select(v => CsvDataRow.FromCsv(v)) .ToList(); return(values); }
/// <summary/> protected internal override void ResetVillageObject() { base.ResetVillageObject(); //_timer.Stop(); _timer.Reset(); Village?.WorkerManager.DeallotateWorker(this); _nextUprade = default(TCsvData); _isUpgradeable = default(bool); _rowCache = default(CsvDataRow <TCsvData>); }
/// <summary> /// Updates the <see cref="VillageObject{TCsvData}.Data"/> associated with this <see cref="Buildable{TCsvData}"/> using /// <see cref="VillageObject.Assets"/>, the specified data ID and level. /// </summary> /// <param name="dataId"></param> /// <param name="level"></param> protected virtual void UpdateData(int dataId, int level) { Debug.Assert(level >= NotConstructedLevel, "Level was less than NotConstructedLevel."); // If we haven't cached the CsvDataRow in which Data // is found, we do it. if (RowCache == null) { var tableCollections = Assets.DataTables; var dataRef = new CsvDataRowRef <TCsvData>(dataId); var row = dataRef.Get(tableCollections); if (row == null) { throw new InvalidOperationException("Could not find CsvDataRow with ID '" + dataId + "'."); } _rowCache = row; } if (RowCache.Name == "Town Hall") { Village._townhall = this as Building; } else if (RowCache.Name == "Worker Building") { Village.WorkerManager._totalWorkers++; } // Data is null when lvl is -1 // However NextUpgrade should not. if (level == NotConstructedLevel) { _data = null; } else { _data = RowCache[level]; if (_data == null) { throw new InvalidOperationException("Could not find CsvData with ID '" + dataId + "' and with level '" + level + "'."); } } _upgradeLevel = level; }
public void LoadCsv(string csvFileName) { string header; string data; using (var reader = new StreamReader(csvFileName)) { header = reader.ReadLine(); // assumes 1st row is column headers data = reader.ReadToEnd(); } Columns = header.Split(Delimiter); var rows = Regex.Split(data, Environment.NewLine); if (!rows.Select(row => row.Split(Delimiter)).All(row => row.Length == Columns.Length)) { throw new FormatException("Inconsistent data format."); } Rows = new ObservableCollection <CsvDataRow>(rows.Select(row => CsvDataRow.Create(row, Delimiter))); }
public void CopyTo_ValidArgs_ElementsCopied() { for (int i = 0; i < 10; i++) { _rows.Add(_table.NewRow("lerow" + i)); } var array = new CsvDataRow[10]; _rows.CopyTo(array, 2); for (int i = 0; i < 2; i++) { Assert.Null(array[i]); } for (int i = 2; i < 8; i++) { var expected = _rows[i - 2]; var actual = array[i]; Assert.AreSame(expected, actual); } }
public void SetUp() { _table = new CsvDataTable <TestData>(); _row = _table.NewRow("LeRow"); }