/// <summary>Defines the entry point of the application.</summary>
        public static void Main()
        {
            Debug.WriteLine("General test begin...");
            TestGeneral testGeneral = new TestGeneral();
            testGeneral.TestIntervalEntitySystem();
            testGeneral.TestAttributes();
            testGeneral.TestDummies();
            testGeneral.TestMultipleSystems();
            testGeneral.TestQueueSystems();
#if !PORTABLE
            testGeneral.TestRenderMultiHealthBarSystem();
#endif
            testGeneral.TestSimpleSystem();
            testGeneral.TestSystemCommunication();
            testGeneral.TestEntityComponentSystem();
            testGeneral.TestDerivedComponents();
            testGeneral.TestInitializeComponentTypes();
            testGeneral.TestInitializeComponentTypesFromAssemblies();
            Debug.WriteLine("General test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif

            Debug.WriteLine("Bag test begin...");
            TestBag testBag = new TestBag();
            testBag.TestPerformance();
            testBag.TestAdd();
            testBag.TestAddRange();
            testBag.TestBagConstructor();
            testBag.TestCapacity();
            testBag.TestClear();
            testBag.TestContains();
            testBag.TestGet();
            testBag.TestGrow();
            testBag.TestIsEmpty();
            testBag.TestItem();
            testBag.TestRemove();
            testBag.TestRemoveAll();
            testBag.TestRemoveLast();
            testBag.TestSet();
            Debug.WriteLine("Bag test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif

            Debug.WriteLine("Aspect test begin...");
            TestAspect testAspect = new TestAspect();
            testAspect.TestAspectEmpty();
            testAspect.TestAspectAllSingle();
            testAspect.TestAspectAllMultiple();
            testAspect.TestAspectOneSingle();
            testAspect.TestAspectOneMultiple();
            testAspect.TestAspectExcludeSingle();
            testAspect.TestAspectExcludeMultiple();
            testAspect.TestAspectAllOneExclude();
            Debug.WriteLine("Aspect test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif
        }
        /// <summary>Defines the entry point of the application.</summary>
        public static void Main()
        {
            Debug.WriteLine("General test begin...");
            TestGeneral testGeneral = new TestGeneral();

            testGeneral.TestIntervalEntitySystem();
            testGeneral.TestAttributes();
            testGeneral.TestDummies();
            testGeneral.TestMultipleSystems();
            testGeneral.TestQueueSystems();
#if !PORTABLE
            testGeneral.TestRenderMultiHealthBarSystem();
#endif
            testGeneral.TestSimpleSystem();
            testGeneral.TestSystemCommunication();
            testGeneral.TestEntityComponentSystem();
            testGeneral.TestDerivedComponents();
            testGeneral.TestInitializeComponentTypes();
            testGeneral.TestInitializeComponentTypesFromAssemblies();
            Debug.WriteLine("General test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif

            Debug.WriteLine("Bag test begin...");
            TestBag testBag = new TestBag();
            testBag.TestPerformance();
            testBag.TestAdd();
            testBag.TestAddRange();
            testBag.TestBagConstructor();
            testBag.TestCapacity();
            testBag.TestClear();
            testBag.TestContains();
            testBag.TestGet();
            testBag.TestGrow();
            testBag.TestIsEmpty();
            testBag.TestItem();
            testBag.TestRemove();
            testBag.TestRemoveAll();
            testBag.TestRemoveLast();
            testBag.TestSet();
            Debug.WriteLine("Bag test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif

            Debug.WriteLine("Aspect test begin...");
            TestAspect testAspect = new TestAspect();
            testAspect.TestAspectEmpty();
            testAspect.TestAspectAllSingle();
            testAspect.TestAspectAllMultiple();
            testAspect.TestAspectOneSingle();
            testAspect.TestAspectOneMultiple();
            testAspect.TestAspectExcludeSingle();
            testAspect.TestAspectExcludeMultiple();
            testAspect.TestAspectAllOneExclude();
            Debug.WriteLine("Aspect test end.");

#if !METRO && !PORTABLE
            Debug.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
#endif
        }