public GranuleSet BuildGranuleSet(List <Granule> granules) { var sortedGranules = granules.OrderBy(x => x.Count(y => y == 1)).ToList(); var result = new GranuleSet(); foreach (var addGranule in sortedGranules) { var resultReverse = result.Reverse().ToList(); foreach (var granule in resultReverse) { var compare = (GranuleComparerResult)addGranule.CompareTo(granule); if (compare != GranuleComparerResult.IsGreater && compare != GranuleComparerResult.Equal || CheckContainInParent(granule, addGranule)) { continue; } addGranule.Children.Add(granule); granule.Parent.Add(addGranule); } result.Add(addGranule); } return(result); }
public bool SaveGranule(GranuleSet granuleSet, out string error) { error = null; if (granuleSet == null) { error = "Pusty zbiór granul."; return(false); } var path = _fileService.GetPathFromSaveFileDialog(FileService.CsvFilter); if (string.IsNullOrEmpty(path)) { if (path == string.Empty) { error = "Ścieżka do pliku jest pusta."; } return(false); } var content = _printGranuleService.Print(granuleSet); return(_fileService.SaveFile(path, content, out error)); }
public List <string> Print(GranuleSet granuleSet) { var content = new List <string> { _printHeader(granuleSet) }; if (granuleSet.Count > 0) { content.AddRange(_printContent(granuleSet)); } return(content); }
public void SaveGranule_WhenDoNotChooseFile_ThenShouldReturnFalseWithoutError() { //Arrange var granuleSet = new GranuleSet { new Granule(new[] { 1, 0, 1 }, 1), new Granule(new[] { 1, 1, 1 }, 2), new Granule(new[] { 0, 0, 1 }, 3) }; //Act var result = _actionsService.SaveGranule(granuleSet, out var error); //Assert Assert.False(result); Assert.Null(error); }
private string _printHeader(GranuleSet granuleSet) { var header = "" + _separator; for (var i = 0; i < granuleSet.Count; i++) { if (i > 0) { header += _separator; } header += $"g(u{i + 1})"; } return(header); }
public void SaveGranule_WhenPathIsNull_ThenShouldReturnFalseWithError() { //Arrange var granuleSet = new GranuleSet { new Granule(new[] { 1, 0, 1 }, 1), new Granule(new[] { 1, 1, 1 }, 2), new Granule(new[] { 0, 0, 3 }, 3) }; _fileServiceMock.Setup(x => x.GetPathFromSaveFileDialog(It.IsAny <string>())).Returns(string.Empty); //Act var result = _actionsService.SaveGranule(granuleSet, out var error); //Assert Assert.False(result); Assert.NotEmpty(error); }
public void Print_WhenPutGranuleSet_ThenShouldPreparePrint() { //Arrange var granuleSet = new GranuleSet() { new Granule(new[] { 1, 0, 1 }, 1), new Granule(new[] { 1, 1, 1 }, 2), new Granule(new[] { 0, 0, 1 }, 3) }; //Act var result = _fileReaderService.Print(granuleSet); //Assert var expected = new List <string> { ";g(u1);g(u2);g(u3)", "u1;1;1;0", "u2;0;1;0", "u3;1;1;1" }; Assert.Equal(expected, result); }
private List <string> _printContent(GranuleSet granuleSet) { var granulesInPreviousOrder = granuleSet.OrderBy(x => x.ObjectNumber).ToList(); var content = new List <string>(); var length = granulesInPreviousOrder[0].Count(); for (var i = 0; i < length; i++) { var line = $"u{i + 1}"; foreach (var granule in granulesInPreviousOrder) { line += _separator + granule[i].ToString(); } content.Add(line); } return(content); }
public TreeNode[] DrawTreeView(GranuleSet granuleSet) { var result = new List <TreeNode>(); foreach (var granule in granuleSet.GetMax()) { var branches = _getBranches(granule); foreach (var branch in branches) { var root = new TreeNode(branch[0].ToString()); branch.Remove(branch[0]); var treeNodes = branch.Select(x => new TreeNode(x.ToString())).ToArray(); root.Nodes.AddRange(treeNodes); result.Add(root); } } return(result.ToArray()); }
public void SaveGranule_WhenEverythingIsFine_ThenShouldReturnTrueWithoutError() { //Arrange var path = "path"; var granuleSet = new GranuleSet() { new Granule(new[] { 1, 0, 1 }, 1), new Granule(new[] { 1, 1, 1 }, 2), new Granule(new[] { 0, 0, 1 }, 3) }; _fileServiceMock.Setup(x => x.GetPathFromSaveFileDialog(It.IsAny <string>())).Returns(path); string error; _fileServiceMock.Setup(x => x.SaveFile(path, It.IsAny <List <string> >(), out error)).Returns(true); //Act var result = _actionsService.SaveGranule(granuleSet, out error); //Assert Assert.True(result); Assert.Null(error); }
public GranuleSetWithPath(GranuleSet granuleSet, string path) { GranuleSet = granuleSet; Path = path; }
public void BuildGranuleSet_WhenSendGranulesList_ThenShouldBuildGranulesSet(List <Granule> granules, GranuleSet expected) { //Arrange //Act var result = _granuleService.BuildGranuleSet(granules); //Assert var comparer = new GranuleSetComparer(); Assert.Equal(expected, result, comparer); }