public void ShouldConvertFromDataTable() { var reader = new ExcelReader(); var excelFileName = "Sample.xlsx"; var excelFilePath = Path.Combine(CommonUtils.ResourcesDirectory, excelFileName); // Получаем DataTable, заодно проверяем работу провайдера данных из Excel var dataTable = reader.ReadFromFile(excelFilePath); Assert.IsNotNull(dataTable); Assert.IsTrue(dataTable.Rows.Count > 0); Assert.IsTrue(dataTable.Columns.Count > 0); Assert.IsNotNull(dataTable.Rows[0][0]); // Проверяем конвертер var networkConverter = new NetworkDataSetConverter(); var networkDataSet = networkConverter.Convert(dataTable); Assert.IsNotNull(networkDataSet); Assert.IsTrue(networkDataSet.Entities != null && networkDataSet.Entities.Any()); Assert.IsTrue(networkDataSet.Attributes != null && networkDataSet.Attributes.Any()); }
public MainForm( INetworkService networkService, IReader reader, AbstractNetwork network, int? networkId = null, int? parentNeuronId = null, NetworkDataSet parentNeuronDataSet = null) { InitializeComponent(); _reader = reader; _networkService = networkService; _converter = new NetworkDataSetConverter(); _interfaceMediator = new InterfaceHelpers(); _neuralNetwork = network; _neuralNetwork.IterationCompleted += OnNetworkWeightsChanged; // При редактировании существующей сети скрыть обучение var isEdit = networkId > 0; if (isEdit) { InitializeExistingNetwork(networkId ?? 0); } else { _networkBase = new NetworkBase { ParentNeuronId = parentNeuronId }; } if (parentNeuronId > 0) { if (parentNeuronDataSet == null || !(parentNeuronDataSet?.Entities?.Any() ?? false)) { throw new Exception("Не задан набор обучающих данных для повторной кластеризации."); } _learningDataSet = parentNeuronDataSet; _testingDataSet = parentNeuronDataSet; btnChooseLearningFile.Enabled = false; btnChooseTestingFile.Enabled = false; RecalcMinMaxValues(_learningDataSet); RecalcMinMaxValues(_testingDataSet); _neuralNetwork.InputAttributes = _learningDataSet.Attributes .Select(a => new InputAttributeBase { InputAttributeNumber = a.OrderNumber, Name = a.Name }) .ToList(); _interfaceMediator.DrawDataIntoGrid(_learningDataSet.Entities, _neuralNetwork.InputAttributes, dgvInputLearningData); var normalizedData = _learningDataSet.Entities .Select(l => new NetworkDataEntity() { Name = l.Name, OrderNumber = l.OrderNumber, AttributeValues = l.AttributeValues.Select(a => new NetworkEntityAttributeValue { Attribute = a.Attribute, Value = a.GetNormalizedValue(_neuralNetwork.NormalizationType) }).ToList() }) .ToList(); _interfaceMediator.DrawDataIntoGrid(normalizedData, _neuralNetwork.InputAttributes, dgvNormalizedLearningData); _interfaceMediator.DrawDataIntoGrid(_testingDataSet.Entities, _neuralNetwork.InputAttributes, dgvTesingData); } btnEditCluster.Enabled = isEdit; SetSaveButtonEnabled(); }