public void CreateCreatorMatrix_TwoCreators_VectorizesCreatorsCorrectly()
        {
            var movies   = CreateMovies();
            var creators = CreateCreators();

            var vectorizer = new Service.MovieVectorizer(new List <Database.Tag>(), creators);

            var matrixString = JsonConvert.SerializeObject(vectorizer.CreateCreatorMatrix(movies));

            Assert.AreEqual("[[1.0,0.0],[0.0,1.0]]", matrixString);
        }
        public void CreateTagMatrix_ThreeTags_VectorizesTagsCorrectly()
        {
            var movies = CreateMovies();
            var tags   = CreateTags();

            var vectorizer = new Service.MovieVectorizer(tags, new List <Database.Creator>());

            var matrixString = JsonConvert.SerializeObject(vectorizer.CreateTagMatrix(movies));

            Assert.AreEqual("[[1.0,1.0,1.0],[1.0,0.0,1.0]]", matrixString);
        }
        public void CreateMovieMatrix_TwoMovies_VectorizesMovieAttributesCorrectly()
        {
            var movies   = CreateMovies();
            var tags     = CreateTags();
            var creators = CreateCreators();

            var vectorizer = new Service.MovieVectorizer(tags, creators);

            var matrixString = JsonConvert.SerializeObject(vectorizer.CreateMovieMatrix(movies));

            Assert.AreEqual("[[0.8,0.0,1.0,1.0,1.0,1.0,0.0],[0.7,0.0,1.0,0.0,1.0,0.0,1.0]]", matrixString);
        }
        public async Task VectorizeDescriptions_SingleRepeatingWordWithWeight_VectorizesDescriptionsCorrectly()
        {
            var descriptions = new List <string>()
            {
                "one word",
                "another word"
            };

            var vectorizer = new Service.MovieVectorizer(new List <Database.Tag>(), new List <Database.Creator>());

            var matrixString = JsonConvert.SerializeObject(await vectorizer.VectorizeDescriptions(descriptions, 5));

            Assert.AreEqual("[[5.0],[5.0]]", matrixString);
        }
        public async Task VectorizeDescriptions_NoRepeatingWords_VectorizesDescriptionsCorrectly()
        {
            var descriptions = new List <string>()
            {
                "one word after another",
                "no repeating phrases"
            };

            var vectorizer = new Service.MovieVectorizer(new List <Database.Tag>(), new List <Database.Creator>());

            var matrixString = JsonConvert.SerializeObject(await vectorizer.VectorizeDescriptions(descriptions));

            Assert.AreEqual("[[],[]]", matrixString);
        }
        public void CreateMovieMatrix_TwoMoviesWithCustomWeights_VectorizesMovieAttributesCorrectly()
        {
            var movies   = CreateMovies();
            var tags     = CreateTags();
            var creators = CreateCreators();

            var weights = new Service.MovieVectorizer.Weights()
            {
                Creators     = 10.0f,
                Descriptions = 9.0f,
                Rating       = 8.0f,
                Tags         = 7.0f,
                Year         = 6.0f
            };

            var vectorizer = new Service.MovieVectorizer(tags, creators);

            var matrixString = JsonConvert.SerializeObject(vectorizer.CreateMovieMatrix(movies, weights));

            Assert.AreEqual("[[6.4,0.0,7.0,7.0,7.0,10.0,0.0],[5.6,0.0,7.0,0.0,7.0,0.0,10.0]]", matrixString);
        }