예제 #1
0
        public void TestMethod12()
        {
            // Arrange.
            string        myCrozzleFile  = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Crozzle.txt";
            string        myWordlistFile = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Wordlist.txt";
            string        myConfigFile   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);

            int    expectedReturnRows    = 10;
            int    expectedReturnColumns = 15;
            string expectedWordListPath  = "C:\\SIT323_Assignment1\\Old Program and Old Files\\Test 1 Wordlist.txt";

            // Act.
            int    actualReturnRows    = crozzle.Rows;
            int    actualReturnColumns = crozzle.Columns;
            string actualWordlistPath  = crozzle.WordListPath;

            // Assert.
            Assert.AreEqual(expectedReturnRows, actualReturnRows, "failed ...");
            Assert.AreEqual(expectedReturnColumns, actualReturnColumns, "failed ...");
            Assert.AreEqual(expectedWordListPath, actualWordlistPath, "failed ...");
        }
예제 #2
0
        public void Scenario8Case3()
        {
            Configuration config;
            WordList      wordlist;
            Crozzle       crozzle;

            String[] expectedStrings =
            {
                "Configuration file is invalid",
                "Crozzle file is invalid",
                "Word list file is invalid"
            };

            Configuration.TryParse(@"..\..\..\..\Test Files\UnitTest3.cfg", out config);
            WordList.TryParse(@"..\..\..\..\Test Files\UnitTest3.seq", config, out wordlist);
            Crozzle.TryParse(@"..\..\..\..\Test Files\UnitTest1.czl", config, wordlist, out crozzle);

            var htmlString = crozzle.ToStringHTML();

            foreach (String eString in expectedStrings)
            {
                if (!htmlString.Contains(eString))
                {
                    Assert.Fail();
                }
            }
        }
예제 #3
0
        public void TestMethod7()
        {
            // Arrange.
            string myCrozzleFile  = @"C:\temp\Old Program and Old Files\Assessment Task 1 Files\Test1.czl";
            string myWordlistFile = @"C:\temp\Old Program and Old Files\Assessment Task 1 Files\Test1.seq";
            string myConfigFile   = @"C:\temp\Old Program and Old Files\Assessment Task 1 Files\Test1.cfg";
            string myConfigFile2  = @"C:\temp\Old Program and Old Files\Test Files\unitTest9\Test1 Configuration_groupCount2.cfg";
            string myConfigFile3  = @"C:\temp\Old Program and Old Files\Test Files\unitTest9\Test1 Configuration_groupCount4.cfg";
            string myCrozzleFile2 = @"C:\temp\Old Program and Old Files\Test Files\unitTest9\Test1 Crozzle_groupCount2.czl";
            string myCrozzleFile3 = @"C:\temp\Old Program and Old Files\Test Files\unitTest9\Test1 Crozzle_groupCount4.czl";
            //test 1 - Original files
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);
            CrozzleMap crozzleMap = new CrozzleMap(crozzle.CrozzleRows, crozzle.CrozzleColumns);

            //Test 2 - Files edited into two groups of connected words. Words removed are Mark and Jack
            Configuration config2;

            Configuration.TryParse(myConfigFile2, out config2);
            WordList wordlist2;

            WordList.TryParse(myWordlistFile, config2, out wordlist2);
            Crozzle crozzle2;

            Crozzle.TryParse(myCrozzleFile2, config2, wordlist2, out crozzle2);
            CrozzleMap crozzleMap2 = new CrozzleMap(crozzle2.CrozzleRows, crozzle2.CrozzleColumns);

            //test 3 - Files edited into four groups.
            Configuration config3;

            Configuration.TryParse(myConfigFile3, out config3);
            WordList wordlist3;

            WordList.TryParse(myWordlistFile, config3, out wordlist3);
            Crozzle crozzle3;

            Crozzle.TryParse(myCrozzleFile3, config3, wordlist3, out crozzle3);
            CrozzleMap crozzleMap3 = new CrozzleMap(crozzle3.CrozzleRows, crozzle3.CrozzleColumns);

            int expectedGroupCount     = 1;
            int expectedNewGroupCount1 = 2;
            int expectedNewGroupCount2 = 4;

            // Act.
            int ActualGroupCount     = crozzleMap.GroupCount();
            int ActualNewGroupCount1 = crozzleMap2.GroupCount();
            int ActualNewGroupCount2 = crozzleMap3.GroupCount();

            // Assert.
            Assert.AreEqual(expectedGroupCount, ActualGroupCount, "failed ...");
            Assert.AreEqual(expectedNewGroupCount1, ActualNewGroupCount1, "failed ...");
            Assert.AreEqual(expectedNewGroupCount2, ActualNewGroupCount2, "failed ...");
        }
예제 #4
0
        public void TestMethod5()
        {
            // Arrange.
            string myCrozzleFile   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Crozzle.txt";
            string myCrozzleFile2  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest5\Test 1 Crozzle_invalidScore.txt";
            string myWordlistFile  = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Wordlist.txt";
            string myConfigFile    = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            string myCrozzleFile3  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest5\Test 1 Crozzle_scoreNewWords.txt";
            string myWordlistFile3 = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest5\Test 1 Wordlist_scoreNewWords.txt";

            //CASE 1
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);

            //CASE 2 Removed a row from crozzle file
            Crozzle crozzle2;

            Crozzle.TryParse(myCrozzleFile2, config, wordlist, out crozzle2);

            //CASE 3 Adding two new words to crozzle files
            WordList wordlist3;

            WordList.TryParse(myWordlistFile3, config, out wordlist3);
            Crozzle crozzle3;

            Crozzle.TryParse(myCrozzleFile3, config, wordlist3, out crozzle3);

            //the expected output should be 303
            string expectedOriginalScore = "303";

            //the expected output of the edited crozzle file should be "INVALID CROZZLE" as row is missing
            string expectedInvalidScore = "INVALID CROZZLE";

            //the expected output should be 336 with the new words of JACKIE and TOMORY
            string expectedNewWordsScore = "336";

            // Act.
            crozzle.Validate();
            crozzle2.Validate();
            crozzle3.Validate();
            string actualOriginalScore = crozzle.Score();
            string actualInvalidScore  = crozzle2.Score();
            string actualNewWordsScore = crozzle3.Score();

            // Assert.
            Assert.AreEqual(expectedOriginalScore, actualOriginalScore, "failed ...");
            Assert.AreEqual(expectedInvalidScore, actualInvalidScore, "failed ...");
            Assert.AreEqual(expectedNewWordsScore, actualNewWordsScore, "failed ...");
        }
예제 #5
0
        public void TestMethod7()
        {
            // Arrange.
            string        myCrozzleFile   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Crozzle.txt";
            string        myWordlistFile  = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Wordlist.txt";
            string        myCrozzleFile2  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest7\Test 1 Crozzle_validateFalse.txt";
            string        myWordlistFile2 = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest7\Test 1 Wordlist_validateFalse.txt";
            string        myConfigFile    = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);

            //Unit test 2 and 3 - Word AL is removed from Crozzle file. Errors are RONALD is removed and group counts exceed config limits
            WordList wordlist2;

            WordList.TryParse(myWordlistFile2, config, out wordlist2);
            Crozzle crozzle2;

            Crozzle.TryParse(myCrozzleFile2, config, wordlist2, out crozzle2);

            bool   expectedTrueValidityOriginal = true;
            bool   expectedFalseValidityNew     = false;
            string expectedErrorMessageNew      = "code 11002: the number of horizontal words intersecting AL is 0, but this is not within [1, 100]";

            // Act.
            crozzle.Validate();
            crozzle2.Validate();
            bool   actualTrueValidityOriginal = crozzle.CrozzleValid;
            bool   actualFalseValidityNew     = crozzle2.CrozzleValid;
            string actualErrorMessageNew      = crozzle2.CrozzleGridErrors[0];


            // Assert.
            Assert.AreEqual(expectedTrueValidityOriginal, actualTrueValidityOriginal, "failed ...");
            Assert.AreEqual(expectedFalseValidityNew, actualFalseValidityNew, "failed ...");
            Assert.AreEqual(expectedErrorMessageNew, actualErrorMessageNew, "failed ...");
        }
        // Import files for testing
        public void setAttributes()
        {
            String wordListPath1      = ".\\UploadedFiles\\.\\Test1.seq";
            String wordListPath2      = ".\\UploadedFiles\\.\\Test2.seq";
            String wordListPath3      = ".\\UploadedFiles\\.\\Test3.seq";
            String configurationPath1 = ".\\UploadedFiles\\.\\Test1.cfg";
            String configurationPath2 = ".\\UploadedFiles\\.\\Test2.cfg";
            String configurationPath3 = ".\\UploadedFiles\\.\\Test3.cfg";
            String crozzlePath1       = ".\\UploadedFiles\\Test1.czl";
            String crozzlePath2       = ".\\UploadedFiles\\Test2.czl";
            String crozzlePath3       = ".\\UploadedFiles\\Test3.czl";

            Configuration.TryParse(configurationPath1, out aConfiguration1);
            Configuration.TryParse(configurationPath2, out aConfiguration2);
            Configuration.TryParse(configurationPath3, out aConfiguration3);

            WordList.TryParse(wordListPath1, aConfiguration1, out aWordList1);
            WordList.TryParse(wordListPath2, aConfiguration2, out aWordList2);
            WordList.TryParse(wordListPath3, aConfiguration3, out aWordList3);

            Crozzle.TryParse(crozzlePath1, aConfiguration1, aWordList1, out aCrozzle1);
            Crozzle.TryParse(crozzlePath2, aConfiguration2, aWordList2, out aCrozzle2);
            Crozzle.TryParse(crozzlePath3, aConfiguration3, aWordList3, out aCrozzle3);
        }
예제 #7
0
        public void TestMethod8()
        {
            // Arrange.
            string myCrozzleFile   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Crozzle.txt";
            string myWordlistFile  = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Wordlist.txt";
            string myConfigFile    = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            string myCrozzleFile2  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\Test 1 Crozzle_scoreNewWords.txt";
            string myWordlistFile2 = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\Test 1 Wordlist_scoreNewWords.txt";
            string myConfigFile2   = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\Test 1 Configuration.txt";


            //TEST 1 - Saving files after the validate method
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);
            crozzle.Validate();

            //Save toStringHTML() result to text file
            StreamWriter writer = new StreamWriter(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html.txt");

            writer.Write(crozzle.ToStringHTML());
            writer.Close();

            //Load the HTML file to a string
            StreamReader reader = new StreamReader(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html.txt");
            string       expectedAfterValidate = reader.ReadToEnd();

            reader.Close();

            //TEST 2 - Saving files before the validate method
            Crozzle crozzle2;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle2);

            StreamWriter writer2 = new StreamWriter(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html2.txt");

            writer2.Write(crozzle2.ToStringHTML());
            writer2.Close();

            StreamReader reader2 = new StreamReader(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html2.txt");
            string       expectedBeforeValidate = reader2.ReadToEnd();

            reader2.Close();

            //TEST 3 - Files with new Score and seeing that the expected HTML score matches that of the actual new HTML score
            Configuration config3;

            Configuration.TryParse(myConfigFile2, out config3);
            WordList wordlist3;

            WordList.TryParse(myWordlistFile2, config3, out wordlist3);
            Crozzle crozzle3;

            Crozzle.TryParse(myCrozzleFile2, config3, wordlist3, out crozzle3);
            crozzle3.Validate();

            StreamWriter writer3 = new StreamWriter(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html3.txt");

            writer3.Write(crozzle3.ToStringHTML());
            writer3.Close();

            StreamReader reader3         = new StreamReader(@"C:\SIT323_Assignment1\Old Program and Old Files\unitTest8\html3.txt");
            string       expectedNewHTML = reader3.ReadToEnd();

            reader3.Close();


            // Act.
            string actualAfterValidate  = crozzle.ToStringHTML();
            string actualBeforeValidate = crozzle2.ToStringHTML();
            string actualNewHTML        = crozzle3.ToStringHTML();

            crozzle2.Validate();

            // Assert.
            Assert.AreEqual(expectedAfterValidate, actualAfterValidate, "failed ...");
            Assert.AreEqual(expectedBeforeValidate, actualBeforeValidate, "failed ...");
            Assert.AreEqual(expectedNewHTML, actualNewHTML, "failed ...");
        }
예제 #8
0
        public void TestMethod6()
        {
            // Arrange.
            string        myCrozzleFile  = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Crozzle.txt";
            string        myWordlistFile = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Wordlist.txt";
            string        myConfigFile   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            Configuration config;

            Configuration.TryParse(myConfigFile, out config);
            WordList wordlist;

            WordList.TryParse(myWordlistFile, config, out wordlist);
            Crozzle crozzle;

            Crozzle.TryParse(myCrozzleFile, config, wordlist, out crozzle);
            CrozzleSequences crozzleSequences = new CrozzleSequences(crozzle.CrozzleRows, crozzle.CrozzleColumns, config);

            //SECOND FILES - Files changed so that there are two "RON" with valid config file max duplcates capped a 2.
            string        myCrozzleFile2  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest6\Test 1 Crozzle_checkDuplicates.txt";
            string        myWordlistFile2 = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest6\Test 1 Wordlist_checkDuplicates.txt";
            string        myConfigFile2   = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest6\Test 1 Configuration_checkDuplicates.txt";
            Configuration config2;

            Configuration.TryParse(myConfigFile2, out config2);
            WordList wordlist2;

            WordList.TryParse(myWordlistFile2, config2, out wordlist2);
            Crozzle crozzle2;

            Crozzle.TryParse(myCrozzleFile2, config2, wordlist2, out crozzle2);
            CrozzleSequences crozzleSequences2 = new CrozzleSequences(crozzle2.CrozzleRows, crozzle2.CrozzleColumns, config2);

            //Third Test - Files changed so that there are two "RON" but with config max duplicates capped at 1.
            string        myCrozzleFile3  = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest6\Test 1 Crozzle_checkDuplicates.txt";
            string        myWordlistFile3 = @"C:\SIT323_Assignment1\Old Program and Old Files\unitTest6\Test 1 Wordlist_checkDuplicates.txt";
            string        myConfigFile3   = @"C:\SIT323_Assignment1\Old Program and Old Files\Test 1 Configuration.txt";
            Configuration config3;

            Configuration.TryParse(myConfigFile3, out config3);
            WordList wordlist3;

            WordList.TryParse(myWordlistFile3, config3, out wordlist3);
            Crozzle crozzle3;

            Crozzle.TryParse(myCrozzleFile3, config3, wordlist3, out crozzle3);
            CrozzleSequences crozzleSequences3 = new CrozzleSequences(crozzle3.CrozzleRows, crozzle3.CrozzleColumns, config3);


            bool expectedFalseErrors    = false;
            bool expectedFalseErrorsNew = false;
            bool expectedTrueErrorsNew  = true;

            // Act.
            crozzleSequences.CheckDuplicateWords(1, 1);
            crozzleSequences2.CheckDuplicateWords(1, 2);
            crozzleSequences3.CheckDuplicateWords(1, 1);
            bool actualFalseErrors    = crozzleSequences.ErrorsDetected;
            bool actualFalseErrorsNew = crozzleSequences2.ErrorsDetected;
            bool actualTrueErrorsNew  = crozzleSequences3.ErrorsDetected;

            // Assert.
            Assert.AreEqual(expectedFalseErrors, actualFalseErrors, "failed ...");
            Assert.AreEqual(expectedFalseErrorsNew, actualFalseErrorsNew, "failed ...");
            Assert.AreEqual(expectedTrueErrorsNew, actualTrueErrorsNew, "failed ...");
        }