public void 複数のsekai項目のロードテスト() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai03); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); var shomon = (Shomon)mondaiDocument.Items[1].Items[0].Items[1]; Assert.AreEqual("私には従兄弟がありません。", shomon.Mondaibun); Assert.AreEqual(3, shomon.CorrectAnswers.Count()); Assert.AreEqual("I don't have any cousins.", shomon.CorrectAnswers[0].Text); Assert.AreEqual("I don't have a cousin.", shomon.CorrectAnswers[1].Text); Assert.AreEqual("I have no cousins.", shomon.CorrectAnswers[2].Text); // 正解判定テスト Assert.True(shomon.正解判定(new [] { new MondaiWord("I"), new MondaiWord("don't"), new MondaiWord("have"), new MondaiWord("any"), new MondaiWord("cousins"), new MondaiWord("."), })); Assert.True(shomon.正解判定(new [] { new MondaiWord("I"), new MondaiWord("don't"), new MondaiWord("have"), new MondaiWord("a"), new MondaiWord("cousin"), new MondaiWord("."), })); Assert.True(shomon.正解判定(new [] { new MondaiWord("I"), new MondaiWord("have"), new MondaiWord("no"), new MondaiWord("cousins"), new MondaiWord("."), })); } }
public void 整合性検証テスト() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, @"<?xml version=""1.0"" encoding=""utf-8""?> <mondai-document id=""mondaiDocument1"" title=""DocumentC""> <daimon id=""daimon1"" title=""基礎I""> <chumon id=""chumon1"" title=""This is a pen.""> <shomon id=""1-1-1""> <mondaibun>[英訳] これはノートです。</mondaibun> <seikai>Is this a notebook?</seikai> <word>This</word> <word>is</word> <word>a notebook</word> <word>.</word> <word></word> </shomon> </chumon> </daimon> </mondai-document>"); Assert.Throws<MondaiDocumentException>(() => { // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); }); } // id重複 using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, @"<?xml version=""1.0"" encoding=""utf-8""?> <mondai-document id=""mondaiDocument1"" title=""DocumentD""> <daimon id=""id1"" title=""基礎I""> <chumon id=""id1"" title=""This is a pen.""> <shomon id=""1-1-1""> <mondaibun>[英訳] これはノートです。</mondaibun> <seikai>This is a notebook.</seikai> <word>This</word> <word>is</word> <word>a notebook</word> <word>.</word> </shomon> <shomon id=""1-1-2""> <mondaibun>[英訳] これはボールです。</mondaibun> <seikai>This is a ball.</seikai> <word>This is</word> <word>a ball.</word> </shomon> </chumon> <chumon id=""chumon2"" title=""He is a policeman.""> <optional /> <shomon id=""1-2-1""> <mondaibun>[英訳] これはボールです。</mondaibun> <seikai>This is a ball.</seikai> <word>This is</word> <word>a ball.</word> </shomon> </chumon> </daimon> </mondai-document>"); Assert.Throws<MondaiDocumentException>(() => { // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); }); } }
public void 正解探索テスト() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai03); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); var shomon = (Shomon)mondaiDocument.Items[1].Items[0].Items[1]; var result = shomon.正解探索(); CollectionAssert.AreEqual(new [] { new MondaiWord("I"), new MondaiWord("don't"), new MondaiWord("have"), new MondaiWord("any"), new MondaiWord("cousins"), new MondaiWord("."), }, result[0]); CollectionAssert.AreEqual(new [] { new MondaiWord("I"), new MondaiWord("don't"), new MondaiWord("have"), new MondaiWord("a"), new MondaiWord("cousin"), new MondaiWord("."), }, result[1]); CollectionAssert.AreEqual(new [] { new MondaiWord("I"), new MondaiWord("have"), new MondaiWord("no"), new MondaiWord("cousins"), new MondaiWord("."), }, result[2]); } }
public void OptionalPropertyTest() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai02); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); Assert.False(mondaiDocument.GetItem("d2_chumon1").IsOptional); Assert.True(mondaiDocument.GetItem("d2_chumon2").IsOptional); Assert.True(mondaiDocument.GetItem("d2_chumon3").IsOptional); Assert.False(mondaiDocument.GetItem("d2_chumon4").IsOptional); // shuffle Assert.True(mondaiDocument.GetItem("d2_chumon1").IsShuffled); Assert.True(mondaiDocument.GetItem("d2_chumon2").IsShuffled); Assert.False(mondaiDocument.GetItem("d2_chumon3").IsShuffled); } }
public void SaveTest() { using (var tempFile1 = new TempFile()) using (var tempFile2 = new TempFile()) { FileUtility.Save(tempFile1.Value, _mondai02); var accessor = new MondaiDocumentFileAccessor1_0(); var mondaiDocument = accessor.Load(tempFile1.Value); accessor.Save(tempFile2.Value, mondaiDocument); FileAssert.AreEqual(tempFile1.Value, tempFile2.Value); } using (var tempFile1 = new TempFile()) using (var tempFile2 = new TempFile()) { FileUtility.Save(tempFile1.Value, _mondai03); var accessor = new MondaiDocumentFileAccessor1_0(); var mondaiDocument = accessor.Load(tempFile1.Value); accessor.Save(tempFile2.Value, mondaiDocument); FileAssert.AreEqual(tempFile1.Value, tempFile2.Value); } }
public void NextItemTest() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai02); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); var daimon1 = mondaiDocument.GetDaimon("daimon1"); var daimon2 = mondaiDocument.GetDaimon("daimon2"); var daimon3 = mondaiDocument.GetDaimon("daimon3"); Assert.Null(daimon1.PreviousItem); Assert.AreSame(daimon2, daimon1.NextItem); Assert.AreSame(daimon1, daimon2.PreviousItem); Assert.AreSame(daimon3, daimon2.NextItem); Assert.Null(daimon3.NextItem); var chumon1 = daimon1.Items[0]; var chumon2 = daimon1.Items[1]; Assert.Null(chumon1.PreviousItem); Assert.AreSame(chumon2, chumon1.NextItem); Assert.AreSame(chumon1, chumon2.PreviousItem); Assert.Null(chumon2.NextItem); var shomon0 = daimon1.Items[0].Items[0]; var shomon1 = daimon1.Items[0].Items[1]; Assert.Null(shomon0.PreviousItem); Assert.AreSame(shomon1, shomon0.NextItem); Assert.AreSame(shomon0, shomon1.PreviousItem); Assert.Null(shomon1.NextItem); } }
public void mondaiWordタグが空な場合は無視する() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai03); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var shomon = (Shomon)mondaiDocument.Items[0].Items[0].Items[0]; Assert.AreEqual(4, shomon.MondaiWords.Count()); } }
public void LoadTest() { var userInfo = new EPuzzleUserInfo(); MondaiDocument doc = null; using (var tempFile = new TempFile(_mondai03)) { var accessor = new MondaiDocumentFileAccessor1_0(); doc = accessor.Load(tempFile.FileName); } Assert.AreEqual(7, doc.Items.Count()); var daimon = doc.Items[0]; Assert.AreEqual(2, daimon.Items.Count()); Assert.AreEqual("daimon1", daimon.Id); Assert.AreEqual("基礎I", daimon.Name); var chumon = doc.Items[0].Items[0]; Assert.AreEqual(2, chumon.Items.Count()); Assert.AreEqual("chumon1", chumon.Id); Assert.AreEqual("This is a pen.", chumon.Name); Assert.AreSame(daimon, chumon.Parent); Assert.AreEqual(TimeSpan.FromSeconds(8), chumon.GetTimeLimit(userInfo)); var i = 0; { var item = (Shomon)chumon.Items[i++]; Assert.AreEqual("[英訳] これはノートです。", item.Mondaibun); Assert.AreEqual("This is a notebook.", item.CorrectAnswers.First().Text); Assert.AreEqual("1-1-1", item.Id); Assert.AreSame(chumon, item.Parent); var k = 0; { var word = item.MondaiWords[k++]; Assert.AreEqual("This", word.Text); } { var word = item.MondaiWords[k++]; Assert.AreEqual("is", word.Text); } { var word = item.MondaiWords[k++]; Assert.AreEqual("a notebook", word.Text); } { var word = item.MondaiWords[k++]; Assert.AreEqual(".", word.Text); } } }
public void GetDaimonTest() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai02); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); Assert.AreEqual("基礎I", mondaiDocument.GetDaimon("daimon1").Name); Assert.AreEqual("基礎II", mondaiDocument.GetDaimon("daimon2").Name); Assert.AreEqual("基礎III", mondaiDocument.GetDaimon("daimon3").Name); Assert.Null(mondaiDocument.GetDaimon("daimon4")); } }
public void GetAllItemsTest() { using (var tempFile = new TempFile()) { FileUtility.Save(tempFile.Value, _mondai02); // var mondaiDocument = MondaiDocument.Load(tempFile.Value); var mondaiDocument = new MondaiDocumentFileAccessor1_0().Load(tempFile.Value); var daimon1 = mondaiDocument.GetDaimon("daimon1"); var daimon2 = mondaiDocument.GetDaimon("daimon2"); Assert.AreEqual(14, daimon2.GetAllItems().Count()); { var item = mondaiDocument.GetItem("d2_chumon2"); Assert.AreEqual("She isn't Nancy.", item.Name); } { var item = mondaiDocument.GetItem("存在しないID"); Assert.Null(item); } } }