public void 正解判定テスト()
        {
            var ankimonItem = new AnkimonItem("", new [] { "a", "b", "." }.Select(x => new MondaiWord(x)));
            var ankimonRowContainer = new AnkimonRowContainer();
            var wordCardContainer = ankimonRowContainer.WordCardContainer;
            ankimonRowContainer.AnkimonItem = ankimonItem;

            var a = new WordCard("a");
            wordCardContainer.Items.Add(a);
            var b = new WordCard("b");
            wordCardContainer.Items.Add(b);
            Assert.False(ankimonRowContainer.正解判定());

            var d = new WordCard(".");
            wordCardContainer.Items.Add(d);
            Assert.True(ankimonRowContainer.正解判定());
        }
        public void Test2()
        {
            var ankimonRowContainer = new AnkimonRowContainer()
            {
                Left = 1, Top = 10,
            };

            var label = ankimonRowContainer.Label;
            var wordCardContainer = ankimonRowContainer.WordCardContainer;

            // label
            Assert.AreSame(ankimonRowContainer.Items[0], label);
            Assert.AreEqual(DrawingObjectPosition.Static, label.Position);
            Assert.AreEqual(label.Height, ankimonRowContainer.Height);
            Assert.AreEqual
            (
                new PointF(1, 10),
                new PointF(ankimonRowContainer.OuterLeft, ankimonRowContainer.OuterTop)
            );

            // wordCardContainer
            Assert.AreSame(ankimonRowContainer.Items[1], wordCardContainer);
            Assert.AreEqual(DrawingObjectPosition.Absolute, wordCardContainer.Position);
            Assert.AreEqual
            (
                new PointF(1 + label.OuterWidth, 10),
                new PointF(wordCardContainer.OuterLeft, wordCardContainer.OuterTop)
            );

            var a = new WordCard("a");
            var b = new WordCard("b");
            wordCardContainer.Items.Add(a);
            wordCardContainer.Items.Add(b);

            // a
            //			Assert.AreEqual(50, a.Width);
            Assert.AreEqual
            (
                new PointF(wordCardContainer.OuterLeft, 10f),
                new PointF(a.OuterLeft, a.OuterTop)
            );

            // b
            //			Assert.AreEqual(50, b.Width);

            // リリースビルドだと誤差が出る。
            {
                var s = new PointF(a.OuterRight, 10f);
                var t = new PointF(b.OuterLeft, b.OuterTop);
                Assert.AreEqual(s.X, t.X, 0.0001d);
                Assert.AreEqual(s.Y, t.Y, 0.0001d);
            }

            // aの幅変更
            a.Width = 30;
            Assert.AreEqual
            (
                new PointF(a.OuterRight, 10f),
                new PointF(b.OuterLeft, b.OuterTop)
            );
        }
        public void WordCardContainerにWordCard以外のものを入れたら例外()
        {
            var ankimonRowContainer = new AnkimonRowContainer();
            var wordCardContainer = ankimonRowContainer.WordCardContainer;

            var a = new WordCard("a");
            wordCardContainer.Items.Add(a);

            Assert.Throws<InvalidCastException>(() =>
            {
                var b = new EigoTestLabelItem("b");
                wordCardContainer.Items.Add(b);
            });
        }