public void VariantsToStringsLists_VariantsCount0()
        {
            var marksAdderMock = new Mock <ILetterChanger>();

            var variants = new NGramVariants(new NGram(5, new List <string> {
                "jest", "ok"
            }), marksAdderMock.Object);
            var result = variants.VariantsToStringsLists();

            Assert.Null(result);
        }
        public void UpdateNGramsVariantes()
        {
            var marksAdderMock = new Mock <ILetterChanger>();

            marksAdderMock.Setup(m => m.Start("jest", It.IsAny <int>())).Returns(new List <KeyValuePair <string, int> >
            {
                new KeyValuePair <string, int>("jest", 0),
                new KeyValuePair <string, int>("jęst", 1),
                new KeyValuePair <string, int>("jeśt", 1),
                new KeyValuePair <string, int>("jęśt", 2),
            });

            marksAdderMock.Setup(m => m.Start("ktora", It.IsAny <int>())).Returns(new List <KeyValuePair <string, int> >
            {
                new KeyValuePair <string, int>("ktora", 0),
                new KeyValuePair <string, int>("która", 1),
                new KeyValuePair <string, int>("którą", 2),
            });

            var list = new List <NGram>
            {
                new NGram(15, new List <string> {
                    "jest", "która"
                })
            };

            var variantsResult = new List <NGram>
            {
                new NGram(15, new List <string> {
                    "jest", "która"
                }),
                new NGram(0, new List <string> {
                    "jest", "którą"
                }),
            };

            var variants = new NGramVariants(new NGram(5, new List <string> {
                "jest", "ktora"
            }), marksAdderMock.Object);

            variants.CreateVariants(new List <string> {
                "jest", "która", "którą"
            });
            variants.UpdateNGramsVariants(list);

            foreach (var item in variantsResult)
            {
                var content = variants.NgramVariants.Exists(x => x.Ngram.Equals(item));
                Assert.True(content);
            }

            Assert.Equal(2, variants.NgramVariants.Count);
        }
        public void VariantsToStringsLists_Normal()
        {
            var marksAdderMock = new Mock <ILetterChanger>();

            marksAdderMock.Setup(m => m.Start("jest", It.IsAny <int>())).Returns(new List <KeyValuePair <string, int> >
            {
                new KeyValuePair <string, int>("jest", 0),
                new KeyValuePair <string, int>("jęst", 1),
                new KeyValuePair <string, int>("jeśt", 1),
                new KeyValuePair <string, int>("jęśt", 2),
            });

            marksAdderMock.Setup(m => m.Start("ktora", It.IsAny <int>())).Returns(new List <KeyValuePair <string, int> >
            {
                new KeyValuePair <string, int>("ktora", 0),
                new KeyValuePair <string, int>("która", 1),
                new KeyValuePair <string, int>("którą", 2),
            });

            var variantsResult = new List <List <string> >
            {
                new List <string> {
                    "jest"
                },
                new List <string> {
                    "która", "którą"
                }
            };

            var variants = new NGramVariants(new NGram(5, new List <string> {
                "jest", "ktora"
            }), marksAdderMock.Object);

            variants.CreateVariants(new List <string> {
                "jest", "która", "którą"
            });
            var result = variants.VariantsToStringsLists();

            Assert.Equal(variantsResult, result);
        }