public void Can_Find_Interior_Points()
        {
            var set = new HashSet <char> {
                'a', 'b', 'c'
            };
            // Arrange
            var t = new HashSet <HashSet <char> >
            {
                new HashSet <char> {
                    'a', 'b', 'c'
                },
                new HashSet <char>(),
                new HashSet <char> {
                    'a'
                },
                new HashSet <char> {
                    'a', 'b'
                },
            };
            var subset = new HashSet <char> {
                'a', 'c'
            };
            var expected = new HashSet <char> {
                'a'
            };
            var categories = new SubsetCategories <char>(set, subset, t);

            // Act
            var result = categories.InteriorPoints;

            // Assert
            Assert.Equal(expected, result, SetComparer);
        }
Пример #2
0
        private void FindPointsBtn_Click(object sender, RoutedEventArgs e)
        {
            var setBox = PointsTabSetTextBox.Text;

            if (string.IsNullOrEmpty(setBox))
            {
                MessageBox.Show("Please fill the set field.", "Required Field!");
                return;
            }

            var subsetBox = PointsTabSubsetTextBox.Text;

            if (string.IsNullOrEmpty(subsetBox))
            {
                MessageBox.Show("Please fill the subset field.", "Required Field!");
                return;
            }

            var tBox = PointsTabTopologyTextBox.Text;

            if (string.IsNullOrEmpty(tBox))
            {
                MessageBox.Show("Please fill the topology field.", "Required Field!");
                return;
            }

            var set    = StringToSet(setBox);
            var subset = StringToSet(subsetBox);
            var t      = StringToSetOfSets(tBox);

            var func = PointsTabPointsComboBox.Text;

            if (string.IsNullOrEmpty(func))
            {
                MessageBox.Show("Please, select the points set.", "Required Field!");
                return;
            }

            try
            {
                var caterings = new SubsetCategories <string>(set, subset, t);

                var result = func switch
                {
                    "Limit Points" => caterings.LimitPoints,
                    "Closure Points" => caterings.ClosurePoints,
                    "Interior Points" => caterings.InteriorPoints,
                    "Exterior Points" => caterings.ExteriorPoints,
                    "Boundary Points" => caterings.BoundaryPoints,
                    _ => null
                };

                PointsTabPointsResult.Text = SetToString(result);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Error: {ex.Message}", "Error!");
            }
        }
        public void Can_Find_Closure_Points()
        {
            // Arrange
            var set = new HashSet <char> {
                'a', 'b', 'c', 'd'
            };
            var t = new HashSet <HashSet <char> >
            {
                new HashSet <char> {
                    'a', 'b', 'c', 'd'
                },
                new HashSet <char>(),
                new HashSet <char> {
                    'a'
                },
                new HashSet <char> {
                    'b', 'c'
                },
                new HashSet <char> {
                    'a', 'b', 'c'
                },
            };
            var subset = new HashSet <char> {
                'b', 'd'
            };
            var expected = new HashSet <char> {
                'b', 'c', 'd'
            };

            var categories1 = new SubsetCategories <char>(set, subset, t);
            var categories2 = new SubsetCategories <char>(set, new HashSet <char>(), t);
            var categories3 = new SubsetCategories <char>(set, set, t);

            // Act
            var result  = categories1.ClosurePoints;
            var result2 = categories2.ClosurePoints;
            var result3 = categories3.ClosurePoints;

            // Assert
            Assert.Equal(expected, result, SetComparer);
            Assert.Equal(new HashSet <char>(), result2);
            Assert.Equal(set, result3);
        }
Пример #4
0
        private void FindSubsetsPointsBtn_Click(object sender, RoutedEventArgs e)
        {
            SubsetPointsDataGrid.Items.Clear();

            try
            {
                var set      = StringToSet(SubsetPointsTabSetTextBox.Text);
                var t        = StringToSetOfSets(SubsetPointsTabTopologyTextBox.Text);
                var powerSet = PowerSet(set);

                var i = 0;
                foreach (var subset in powerSet)
                {
                    var caterings = new SubsetCategories <string>(set, subset, t);

                    SubsetPointsDataGrid.Items.Add(new SubsetCategoriesModel
                    {
                        Index    = ++i,
                        Subset   = SetToString(subset),
                        Limit    = SetToString(caterings.LimitPoints),
                        Closure  = SetToString(caterings.ClosurePoints),
                        Interior = SetToString(caterings.InteriorPoints),
                        Exterior = SetToString(caterings.ExteriorPoints),
                        Boundary = SetToString(caterings.BoundaryPoints),
                        Accuracy = caterings.Accuracy,
                    });
                }
            }
            catch (ArgumentNullException nex)
            {
                MessageBox.Show(
                    messageBoxText: $"Please fill the {nex.ParamName.ToLower()} field.",
                    caption: "Required Field!",
                    button: MessageBoxButton.OK,
                    icon: MessageBoxImage.Exclamation);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Error: {ex.Message}", "Error!");
            }
        }
        public void Can_Find_Limit_Points()
        {
            // Arrange
            var set = new HashSet <char> {
                'a', 'b', 'c', 'd', 'e'
            };
            var t = new HashSet <HashSet <char> >
            {
                new HashSet <char> {
                    'a', 'b', 'c', 'd', 'e'
                },
                new HashSet <char>(),
                new HashSet <char> {
                    'a'
                },
                new HashSet <char> {
                    'c', 'd'
                },
                new HashSet <char> {
                    'a', 'c', 'd'
                },
                new HashSet <char> {
                    'b', 'c', 'd', 'e'
                }
            };
            var subset = new HashSet <char> {
                'a', 'b', 'c'
            };
            var expected = new HashSet <char> {
                'b', 'd', 'e'
            };
            var categories = new SubsetCategories <char>(set, subset, t);

            // Act
            var result = categories.LimitPoints;

            // Assert
            Assert.Equal(expected, result, SetComparer);
        }