Index: /lang/csharp/DominionEngine/DominionEngine.CardInfo.Test/DDL/CardPositionTest.cs
===================================================================
--- /lang/csharp/DominionEngine/DominionEngine.CardInfo.Test/DDL/CardPositionTest.cs (revision 37477)
+++ /lang/csharp/DominionEngine/DominionEngine.CardInfo.Test/DDL/CardPositionTest.cs (revision 37477)
@@ -0,0 +1,54 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+
+namespace DominionEngine.CardInfo.Test
+{
+    [TestFixture]
+    public class CardPositionTest
+    {
+        #region Equals
+
+        [TestCaseSource("EqualsTestSource")]
+        public void EqualsTest(CardPosition pos1, CardPosition pos2)
+        {
+            Assert.That(pos1, Is.EqualTo(pos2));
+        }
+        static object[][] EqualsTestSource = new object[][]{
+            new object[]{CardPosition.Deck(0), CardPosition.Deck(0)},
+            new object[]{CardPosition.Deck(1), CardPosition.Deck(1)},
+            new object[]{CardPosition.Deck(2), CardPosition.Deck(2)},
+            new object[]{CardPosition.Hand(0), CardPosition.Hand(0)},
+            new object[]{CardPosition.PlayArea(0), CardPosition.PlayArea(0)},
+            new object[]{CardPosition.Discard(0), CardPosition.Discard(0)},
+            new object[]{CardPosition.Supply, CardPosition.Supply},
+            new object[]{CardPosition.Trash, CardPosition.Trash},
+        };
+
+        [Test]
+        public void NotEqualsTest([ValueSource("NotEqualsTestSource1")] CardPosition pos1, [ValueSource("NotEqualsTestSource2")] CardPosition pos2)
+        {
+            Assert.That(pos1, Is.Not.EqualTo(pos2));
+        }
+        static object[] NotEqualsTestSource1 = new object[]{
+            CardPosition.Deck(0),
+            CardPosition.Deck(1),
+            CardPosition.Hand(0),
+            CardPosition.PlayArea(0),
+            CardPosition.Discard(0),
+            CardPosition.Supply,
+        };
+        static object[] NotEqualsTestSource2 = new object[]{
+            CardPosition.Deck(2),
+            CardPosition.Deck(3),
+            CardPosition.Hand(1),
+            CardPosition.PlayArea(1),
+            CardPosition.Discard(1),
+            CardPosition.Trash,
+        };
+
+        #endregion
+    }
+}
