public void FindMatchProposalsTransform_FindsSingleQueryIntersection()
        {
            var ratings = TinyRatingSet.Setup();

            FindMatchProposalsTransform.Execute(ratings, k_Intersection);
            Assert.True(k_Intersection.SetEquals(TinyRatingSet.expectedMatchSet));
        }
        public void MatchReductionTransform_SingleEntry()
        {
            var ratings = TinyRatingSet.Setup();

            MatchReductionTransform.Execute(ratings, TinyRatingSet.expectedMatchSet, m_Ratings);

            Assert.AreEqual(TinyRatingSet.expectedMatchSet.Count, m_Ratings.Count);
            AssertUtils.MatchRatingsValid(TinyRatingSet.expectedMatchSet, m_Ratings);
            AssertUtils.MatchRatingsSorted(m_Ratings);
        }
        public void MatchReductionTransform_AllEntries()
        {
            var ratings       = TinyRatingSet.Setup();
            var dataTransform = new MatchReductionTransform()
            {
                WorkingIndices = new List <int> {
                    1
                },
                Input1 = new [] { ratings, ratings },
                Input2 = new [] { TinyRatingSet.expectedMatchSet, TinyRatingSet.expectedMatchSet },
                Output = CreateRatingsArray()
            };

            dataTransform.Complete();
            Assert.Zero(dataTransform.Output[0].Count);          // index 0 wasn't processed, so no matches
            Assert.AreEqual(dataTransform.Output[1].Count, TinyRatingSet.expectedMatchSet.Count);
        }
        public void FindMatchProposalsTransform_SkipsNonWorkingIndices()
        {
            var ratings = TinyRatingSet.Setup();
            // this transform should only process index 1
            var dataTransform = new FindMatchProposalsTransform()
            {
                WorkingIndices = new List <int> {
                    1
                },
                Input1 = new List <int>(),
                Input2 = new [] { ratings, ratings },
                Output = new [] { new HashSet <int>(), new HashSet <int>() }
            };

            dataTransform.Complete();
            Assert.Zero(dataTransform.Output[0].Count);          // index 0 wasn't processed, so no matches
            Assert.Greater(dataTransform.Output[1].Count, 0);    // index 1 was processed, so has matches
        }