Beispiel #1
0
        public void ValidateFixedBranches3()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            // No Assignments.
            FixedBranchAssignments branchAssignments = new FixedBranchAssignments();

            branchAssignments.AddBranchAssignment('D', 1);
            branchAssignments.AddBranchAssignment('D', 2);
            branchAssignments.AddBranchAssignment('E', 2);
            branchAssignments.AddBranchAssignment('E', 3);
            List <string>          errors;
            RelayVariations        relayVariations = new RelayVariations(eventDB, CourseId(4), new RelaySettings(1, 6));
            FixedBranchAssignments result          = relayVariations.ValidateFixedBranches(branchAssignments, out errors);

            FixedBranchAssignments expected = new FixedBranchAssignments();

            expected.AddBranchAssignment('D', 1);
            expected.AddBranchAssignment('D', 2);
            expected.AddBranchAssignment('E', 3);

            Assert.AreEqual(1, errors.Count);
            Assert.AreEqual("Leg 3 is assigned to both branch 'D' and branch 'E'", errors[0]);
            Assert.AreEqual(expected, result);
        }
Beispiel #2
0
        public void ValidateFixedBranches7()
        {
            Setup(TestUtil.GetTestFile("relay\\gaffle.ppen"));

            FixedBranchAssignments branchAssignments = new FixedBranchAssignments();

            branchAssignments.AddBranchAssignment('D', 0);
            branchAssignments.AddBranchAssignment('H', 1);
            branchAssignments.AddBranchAssignment('I', 0);
            branchAssignments.AddBranchAssignment('I', 2);

            List <string>          errors;
            RelayVariations        relayVariations = new RelayVariations(eventDB, CourseId(4), new RelaySettings(10, 3));
            FixedBranchAssignments result          = relayVariations.ValidateFixedBranches(branchAssignments, out errors);

            FixedBranchAssignments expected = new FixedBranchAssignments();

            branchAssignments.AddBranchAssignment('D', 0);
            branchAssignments.AddBranchAssignment('H', 1);
            branchAssignments.AddBranchAssignment('I', 2);

            Assert.AreEqual(1, errors.Count);
            Assert.AreEqual("Leg 1 never reaches branch 'I': it was assigned to go a different way in a containing fork.", errors[0]);
            Assert.AreEqual(expected, result);
        }
Beispiel #3
0
        public void GenerateAssignment6()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(1), new RelaySettings(64, 5));

            ValidateRelayVariationsTest(teamAssignment, "relay\\complexuneven");
        }
Beispiel #4
0
        public void GenerateAssignment8()
        {
            Setup(TestUtil.GetTestFile("relay\\harper.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), new RelaySettings(201, 10, 3));

            ValidateRelayVariationsTest(teamAssignment, "relay\\harper2");
        }
Beispiel #5
0
        public void GenerateAssignment5()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(7), new RelaySettings(64, 5));

            ValidateRelayVariationsTest(teamAssignment, "relay\\nestedbranches");
        }
Beispiel #6
0
        public void GenerateAssignment2()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(5), new RelaySettings(64, 6));

            ValidateRelayVariationsTest(teamAssignment, "relay\\threeloop");
        }
Beispiel #7
0
        void ValidateRelayVariationsTest(RelayVariations relayAsignment, string baselineName)
        {
            string baselineFileName = TestUtil.GetTestFile(baselineName + ".txt");
            string tempFileName     = TestUtil.GetTestFile(baselineName + "_temp.txt");

            DumpAssignment(relayAsignment, tempFileName);
            TestUtil.CompareTextFileBaseline(tempFileName, baselineFileName);
            File.Delete(tempFileName);
        }
Beispiel #8
0
        public void FixedBranches7()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            FixedBranchAssignments fixedBranchAssignments = new FixedBranchAssignments();

            fixedBranchAssignments.AddBranchAssignment('B', 6);
            var teamAssignment = new RelayVariations(eventDB, CourseId(1), new RelaySettings(30, 7, fixedBranchAssignments));

            ValidateRelayVariationsTest(teamAssignment, "relay\\complexfixed");
        }
        public void BranchWarnings4()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(7), 64, 5);
            var warnings = teamAssignment.GetBranchWarnings().ToArray();
            Assert.AreEqual(1, warnings.Length);
            Assert.AreEqual(3, warnings[0].numMore);
            CollectionAssert.AreEquivalent(new[] { 'A' }, warnings[0].codeMore);
            Assert.AreEqual(2, warnings[0].numLess);
            CollectionAssert.AreEquivalent(new[] { 'B' }, warnings[0].codeLess);
        }
Beispiel #10
0
        public void FixedBranches1()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            FixedBranchAssignments fixedBranchAssignments = new FixedBranchAssignments();

            fixedBranchAssignments.AddBranchAssignment('A', 3);
            fixedBranchAssignments.AddBranchAssignment('A', 1);
            var teamAssignment = new RelayVariations(eventDB, CourseId(8), new RelaySettings(30, 5, fixedBranchAssignments));

            ValidateRelayVariationsTest(teamAssignment, "relay\\twowayfixed");
        }
Beispiel #11
0
        public void BranchWarnings4()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(7), new RelaySettings(64, 5));
            var warnings       = teamAssignment.GetBranchWarnings().ToArray();

            Assert.AreEqual(1, warnings.Length);
            Assert.AreEqual(3, warnings[0].numMore);
            CollectionAssert.AreEquivalent(new[] { 'A' }, warnings[0].codeMore);
            Assert.AreEqual(2, warnings[0].numLess);
            CollectionAssert.AreEquivalent(new[] { 'B' }, warnings[0].codeLess);
        }
Beispiel #12
0
        public void ValidateFixedBranches5()
        {
            Setup(TestUtil.GetTestFile("relay\\gaffle.ppen"));

            // No Assignments.
            FixedBranchAssignments branchAssignments = new FixedBranchAssignments();
            List <string>          errors;
            RelayVariations        relayVariations = new RelayVariations(eventDB, CourseId(4), new RelaySettings(10, 3));
            FixedBranchAssignments result          = relayVariations.ValidateFixedBranches(branchAssignments, out errors);

            Assert.AreEqual(0, errors.Count);
            Assert.AreEqual(branchAssignments, result);
        }
Beispiel #13
0
        public void FixedBranches9()
        {
            Setup(TestUtil.GetTestFile("relay\\gaffle.ppen"));

            FixedBranchAssignments fixedBranchAssignments = new FixedBranchAssignments();

            fixedBranchAssignments.AddBranchAssignment('D', 0);
            fixedBranchAssignments.AddBranchAssignment('H', 1);
            fixedBranchAssignments.AddBranchAssignment('I', 2);
            var teamAssignment = new RelayVariations(eventDB, CourseId(4), new RelaySettings(10, 3, fixedBranchAssignments));

            ValidateRelayVariationsTest(teamAssignment, "relay\\fixedinnnerbranch");
        }
Beispiel #14
0
        public void ExportCsv2()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));
            string tempOutputFile = TestUtil.GetTestFile("relay\\doublebranch_temp.csv");
            string baselineFile   = TestUtil.GetTestFile("relay\\doublebranch_baseline2.csv");

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), new RelaySettings(101, 143, 6));
            var csvWriter      = new CsvWriter();

            csvWriter.WriteCsv(tempOutputFile, teamAssignment);

            TestUtil.CompareTextFileBaseline(tempOutputFile, baselineFile);

            File.Delete(tempOutputFile);
        }
Beispiel #15
0
        public void ExportXml2()
        {
            Dictionary <string, string> exceptions = ExportXmlVersion3.TestFileExceptionMap();

            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));
            string tempOutputFile = TestUtil.GetTestFile("relay\\doublebranch_temp.xml");
            string baselineFile   = TestUtil.GetTestFile("relay\\doublebranch_baseline2.xml");

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), new RelaySettings(101, 143, 6));
            var xmlExporter    = new ExportRelayVariations3();

            xmlExporter.WriteFullXml(tempOutputFile, teamAssignment, eventDB, CourseId(4));

            TestUtil.CompareTextFileBaseline(tempOutputFile, baselineFile, exceptions);

            File.Delete(tempOutputFile);
        }
Beispiel #16
0
        public void PossiblePaths()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var relays = new RelayVariations(eventDB, CourseId(3), new RelaySettings(1, 6));

            Assert.AreEqual(2, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(4), new RelaySettings(1, 6));
            Assert.AreEqual(6, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(5), new RelaySettings(1, 6));
            Assert.AreEqual(6, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(1), new RelaySettings(1, 6));
            Assert.AreEqual(37, relays.GetTotalPossiblePaths());
        }
Beispiel #17
0
 void DumpAssignment(RelayVariations relayAssignment, string fileName)
 {
     using (TextWriter writer = new StreamWriter(fileName)) {
         for (int team = relayAssignment.FirstTeamNumber; team <= relayAssignment.LastTeamNumber; ++team)
         {
             writer.Write("Team {0,3}: \t", team);
             for (int leg = 1; leg <= relayAssignment.NumberOfLegs; ++leg)
             {
                 if (leg != 0)
                 {
                     writer.Write("\t");
                 }
                 writer.Write("{0}", relayAssignment.GetVariation(team, leg).CodeString);
             }
             writer.WriteLine();
         }
     }
 }
Beispiel #18
0
        public void ValidateFixedBranches2()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            // No Assignments.
            FixedBranchAssignments branchAssignments = new FixedBranchAssignments();

            branchAssignments.AddBranchAssignment('A', -1);
            branchAssignments.AddBranchAssignment('A', 4);
            List <string>          errors;
            RelayVariations        relayVariations = new RelayVariations(eventDB, CourseId(7), new RelaySettings(1, 4));
            FixedBranchAssignments result          = relayVariations.ValidateFixedBranches(branchAssignments, out errors);

            Assert.AreEqual(2, errors.Count);
            Assert.AreEqual("'0' is not a valid leg number for branch 'A'", errors[0]);
            Assert.AreEqual("'5' is not a valid leg number for branch 'A'", errors[1]);
            Assert.AreEqual(result, new FixedBranchAssignments());
        }
        public void GenerateAssignment3()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), 64, 6);
            ValidateRelayVariationsTest(teamAssignment, "relay\\doublebranch");
        }
        public void GenerateAssignment5()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(7), 64, 5);
            ValidateRelayVariationsTest(teamAssignment, "relay\\nestedbranches");
        }
        public void GenerateAssignment6()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(1), 64, 5);
            ValidateRelayVariationsTest(teamAssignment, "relay\\complexuneven");
        }
 void ValidateRelayVariationsTest(RelayVariations relayAsignment, string baselineName)
 {
     string baselineFileName = TestUtil.GetTestFile(baselineName + ".txt");
     string tempFileName = TestUtil.GetTestFile(baselineName + "_temp.txt");
     DumpAssignment(relayAsignment, tempFileName);
     TestUtil.CompareTextFileBaseline(tempFileName, baselineFileName);
     File.Delete(tempFileName);
 }
        public void PossiblePaths()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var relays = new RelayVariations(eventDB, CourseId(3), 1, 6);
            Assert.AreEqual(2, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(4), 1, 6);
            Assert.AreEqual(6, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(5), 1, 6);
            Assert.AreEqual(6, relays.GetTotalPossiblePaths());

            relays = new RelayVariations(eventDB, CourseId(1), 1, 6);
            Assert.AreEqual(37, relays.GetTotalPossiblePaths());
        }
        public void GenerateAssignment2()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));

            var teamAssignment = new RelayVariations(eventDB, CourseId(5), 64, 6);
            ValidateRelayVariationsTest(teamAssignment, "relay\\threeloop");
        }
 void DumpAssignment(RelayVariations relayAssignment, string fileName)
 {
     using (TextWriter writer = new StreamWriter(fileName)) {
         for (int team = 1; team <= relayAssignment.NumberOfTeams; ++team) {
             writer.Write("Team {0,3}: \t", team);
             for (int leg = 1; leg <= relayAssignment.NumberOfLegs; ++leg) {
                 if (leg != 0)
                     writer.Write("\t");
                 writer.Write("{0}", relayAssignment.GetVariation(team, leg).CodeString);
             }
             writer.WriteLine();
         }
     }
 }
        public void ExportXml()
        {
            Dictionary<string, string> exceptions = ExportXmlVersion3.TestFileExceptionMap();

            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));
            string tempOutputFile = TestUtil.GetTestFile("relay\\doublebranch_temp.xml");
            string baselineFile = TestUtil.GetTestFile("relay\\doublebranch_baseline.xml");

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), 143, 6);
            var xmlExporter = new ExportRelayVariations3();
            xmlExporter.WriteXml(tempOutputFile, teamAssignment, eventDB, CourseId(4));

            TestUtil.CompareTextFileBaseline(tempOutputFile, baselineFile, exceptions);

            File.Delete(tempOutputFile);
        }
        public void ExportCsv()
        {
            Setup(TestUtil.GetTestFile("relay\\relay.ppen"));
            string tempOutputFile = TestUtil.GetTestFile("relay\\doublebranch_temp.csv");
            string baselineFile = TestUtil.GetTestFile("relay\\doublebranch_baseline.csv");

            var teamAssignment = new RelayVariations(eventDB, CourseId(4), 143, 6);
            var csvWriter = new CsvWriter();
            csvWriter.WriteCsv(tempOutputFile, teamAssignment);

            TestUtil.CompareTextFileBaseline(tempOutputFile, baselineFile);

            File.Delete(tempOutputFile);
        }