public void FindsCorrectMatch_DoubleMatchInSingleProductSamePair()
        {
            // Arrange
            EmployeeRecord[] employeeRecord = new EmployeeRecord[]
            {
                new EmployeeRecord(1, 1, new DateTime(2012, 1, 1), new DateTime(2014, 6, 1)),
                new EmployeeRecord(2, 1, new DateTime(2013, 1, 1), new DateTime(2015, 6, 1)),
                new EmployeeRecord(3, 1, new DateTime(2010, 7, 1), new DateTime(2011, 6, 1)),
                new EmployeeRecord(1, 2, new DateTime(2010, 1, 1), new DateTime(2012, 6, 1)),
                new EmployeeRecord(2, 2, new DateTime(2013, 1, 1), new DateTime(2013, 6, 1)),
                new EmployeeRecord(1, 1, new DateTime(2016, 1, 1), new DateTime(2018, 2, 1)),
                new EmployeeRecord(2, 1, new DateTime(2017, 1, 1), new DateTime(2018, 8, 1)),
            };
            int daysWorkedTogether1 = (new DateTime(2014, 6, 1) - new DateTime(2013, 1, 1)).Days;
            int daysWorkedTogether2 = (new DateTime(2018, 2, 1) - new DateTime(2017, 1, 1)).Days;

            ProjectEmployeeMatcher             matcher = new ProjectEmployeeMatcher();
            IEnumerable <ProjectEmployeeMatch> matches;

            // Act
            matches = matcher.FindMatches(employeeRecord);

            // Assert
            Assert.NotNull(matches);
            Assert.Collection(matches, c =>
            {
                Assert.Equal(1, c.EmployeeID1);
                Assert.Equal(2, c.EmployeeID2);
                Assert.Equal(1, c.ProjectID);
                Assert.Equal(daysWorkedTogether1 + daysWorkedTogether2, c.DaysWorked);
            });
        }
        public void FindsNoMatch()
        {
            // Arrange
            EmployeeRecord[] employeeRecord = new EmployeeRecord[]
            {
                new EmployeeRecord(1, 1, new DateTime(2012, 1, 1), new DateTime(2014, 6, 1)),
                new EmployeeRecord(3, 1, new DateTime(2015, 7, 1), new DateTime(2018, 6, 1)),
                new EmployeeRecord(1, 2, new DateTime(2010, 1, 1), new DateTime(2012, 6, 1)),
                new EmployeeRecord(2, 2, new DateTime(2013, 1, 1), new DateTime(2013, 6, 1)),
            };
            int daysWorkedTogether = (new DateTime(2014, 6, 1) - new DateTime(2013, 1, 1)).Days;

            ProjectEmployeeMatcher             matcher = new ProjectEmployeeMatcher();
            IEnumerable <ProjectEmployeeMatch> matches;

            // Act
            matches = matcher.FindMatches(employeeRecord);

            // Assert
            Assert.NotNull(matches);
            Assert.Empty(matches);
        }