public TagifyModel(UniqueCollection <TagName> whitelistTags, UniqueCollection <TagName> selectedTags, string inputFieldSelector)
        {
            WhitelistTags = Guard.NotNull(whitelistTags, nameof(whitelistTags));
            SelectedTags  = Guard.NotNull(selectedTags, nameof(selectedTags));

            InputFieldSelector = Guard.NotNull(inputFieldSelector, nameof(inputFieldSelector));
        }
Beispiel #2
0
 private void _addFunctionMethod <T>(UniqueCollection <T> uniqueCollection, Collection <T> toAdd)
 {
     foreach (T item in toAdd)
     {
         uniqueCollection.Add(item);
     }
 }
Beispiel #3
0
        public TaskPage36()
        {
            ConsoleTool.WriteLineConsoleGreenMessage("Пробуем добавлять в нашу уникальную коллекцию не совсем уникальные элементы (string). Ждем исключение: ");
            uniqueStringCollection = new UniqueCollection <string>();
            try
            {
                uniqueStringCollection.AddItem("тест");
                uniqueStringCollection.AddItem("тест2");
                uniqueStringCollection.AddItem("тест");
            }
            catch (ItemIsAlreadyExistsException e)
            {
                Console.WriteLine(e.Message);
            }

            ConsoleTool.WriteLineConsoleGreenMessage("Пробуем добавлять в нашу уникальную коллекцию не совсем уникальные элементы (int). Ждем исключение: ");
            uniqueIntCollection = new UniqueCollection <int>();
            try
            {
                uniqueIntCollection.AddItem(5);
                uniqueIntCollection.AddItem(3);
                uniqueIntCollection.AddItem(5);
            }
            catch (ItemIsAlreadyExistsException e)
            {
                Console.WriteLine(e.Message);
            }

            ConsoleTool.WriteLineConsoleGreenMessage("Пробуем добавлять в нашу уникальную коллекцию не совсем уникальные элементы (Person). Ждем исключение: ");
            uniquePersonCollection = new UniqueCollection <Person>();
            try
            {
                uniquePersonCollection.AddItem(new Person()
                {
                    FirstName = "Иван", LastName = "Иванов", PaterName = "Иванович", BirthPlace = "Москва", Passport = "44534233423dsd3"
                });
                uniquePersonCollection.AddItem(new Person()
                {
                    FirstName = "Степанов", LastName = "Игорь", PaterName = "Сергеевич", BirthPlace = "Брянск", Passport = "4453422334231sd3"
                });
                uniquePersonCollection.AddItem(new Person()
                {
                    FirstName = "Иван", LastName = "Иванов", PaterName = "Иванович", BirthPlace = "Москва", Passport = "44534233423dsd3"
                });
            }
            catch (ItemIsAlreadyExistsException e)
            {
                Console.WriteLine(e.Message);
            }
        }
        public void GenerateCollectionWithNotUniquePersonsTest()
        {
            const int countOfElements  = 10;
            var       uniqueCollection = new UniqueCollection <Person>();

            for (var i = 0; i < countOfElements; i++)
            {
                uniqueCollection.Add(new Person());
            }

            Assert.Throws <ArgumentException>(() => uniqueCollection.Add(uniqueCollection.First()));
            Assert.AreEqual(countOfElements, uniqueCollection.Count);
            CollectionAssert.AllItemsAreUnique(uniqueCollection);
        }
Beispiel #5
0
        private void _tryAddingAnElementToUniqueCollection <T>(AddFunction <T> addFunction, Collection <T> toAdd)
        {
            UniqueCollection <T> uniqueCollection = new UniqueCollection <T>();

            try
            {
                addFunction(uniqueCollection, toAdd);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                uniqueCollection.Print();
            }
        }
        public void GenerationUniqueCollectionWith10000UniquePersonsTest()
        {
            int countOfElements = 10000;
            UniqueCollection <Person> uniqueCollection = new UniqueCollection <Person>();

            for (int i = 0; i < countOfElements; i++)
            {
                uniqueCollection.Add(GeneratorOfPersons.GeneratePerson());
            }

            int actual   = uniqueCollection.Count;
            int expected = countOfElements;

            Assert.AreEqual(expected, actual);

            Assert.IsTrue(CheckForNotRepetInTheCollection(uniqueCollection));
        }
        public bool CheckForNotRepetInTheCollection <T>(UniqueCollection <T> uniqueCollection)
        {
            HashSet <T> hs = new HashSet <T>();

            foreach (var item in uniqueCollection)
            {
                try
                {
                    hs.Add(item);
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("Коллекция не уникальна. В ней найдены два одинаковых элемента.");
                    return(false);
                }
            }
            return(true);
        }
        public void GenerateCollectionUniquePersonsTest()
        {
            const int countOfElements  = 100;
            var       uniqueCollection = new UniqueCollection <Person>();

            for (var i = 0; i < countOfElements; i++)
            {
                var p = new Person();
                while (uniqueCollection.Contains(p))
                {
                    p = new Person();
                }
                uniqueCollection.Add(p);
            }

            Assert.AreEqual(countOfElements, uniqueCollection.Count);
            CollectionAssert.AllItemsAreUnique(uniqueCollection);
        }
        public void GenerationUniqueCollectionWith100NotUniquePersonsTest()
        {
            int countOfElements = 100;
            UniqueCollection <Person> uniqueCollection = new UniqueCollection <Person>();

            for (int i = 0; i < countOfElements; i++)
            {
                uniqueCollection.Add(GeneratorOfPersons.GeneratePerson());
            }

            Person[] uniqueCollectionItems = new Person[uniqueCollection.Count];
            uniqueCollection.CopyTo(uniqueCollectionItems, 0);
            uniqueCollection.Add(uniqueCollectionItems[countOfElements / 2]);

            int actual   = uniqueCollection.Count;
            int expected = countOfElements;

            Assert.AreEqual(expected, actual);

            CollectionAssert.AllItemsAreUnique((ICollection)uniqueCollection);
        }
        public void GenerateUniqueCollectionWithNotUniqueDoubleItemsTest()
        {
            UniqueCollection <double> uniqueCollection = new UniqueCollection <double>
            {
                12.12,
                5.5,
                6.3,
                2.2,
                5.5
            };

            List <double> list = new List <double>()
            {
                12.12, 5.5, 6.3, 2.2
            };

            int actual   = uniqueCollection.Count;
            int expected = list.Count;

            Assert.AreEqual(expected, actual);

            CollectionAssert.AreEqual((ICollection)uniqueCollection, list);
            CollectionAssert.AllItemsAreUnique((ICollection)uniqueCollection);
        }
Beispiel #11
0
 public GrammarAttributes()
 {
     Rules = new UniqueCollection <string, IRule>(r => r.Identifier.Name, StringComparer.OrdinalIgnoreCase);
 }