Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        public List <string> Print(GranuleSet granuleSet)
        {
            var content = new List <string> {
                _printHeader(granuleSet)
            };

            if (granuleSet.Count > 0)
            {
                content.AddRange(_printContent(granuleSet));
            }

            return(content);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 public GranuleSetWithPath(GranuleSet granuleSet, string path)
 {
     GranuleSet = granuleSet;
     Path       = path;
 }
Exemplo n.º 12
0
        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);
        }