public void SimulationTickClientsDoRegisterWithSimTicks(int clientCount)
        {
            // Create default tick core
            new CoreTick(TickSystemConstructionUtility.BlankCoreTickSystemConfigData());

            // Create and regster clients
            for (int i = 0; i < clientCount; i++)
            {
                DemoSimulationTickClientInstanceRegistrationTest thisClient =
                    new DemoSimulationTickClientInstanceRegistrationTest();
                thisClient.RegisterTickClient();
            }

            // Tick once to ready client additions
            Core.Tick.OnUpdate(TickSystemConstructionUtility.blankSimTickRate);

            Assert.AreEqual(GetTotalNumberOfSimulationTickSubscribers(), clientCount,
                            "Subscriber count for simulation ticksets do not match number of registrants.");
        }
        public void SimulationTickClientsDoUnregisterCorrectly()
        {
            // Create default tick core
            new CoreTick(TickSystemConstructionUtility.BlankCoreTickSystemConfigData());

            // Register clients
            Random r        = new Random();
            int    subCount = r.Next(10, 20);
            List <DemoSimulationTickClientInstanceRegistrationTest> clients =
                new List <DemoSimulationTickClientInstanceRegistrationTest>();

            for (int i = 0; i < subCount; i++)
            {
                DemoSimulationTickClientInstanceRegistrationTest thisClient =
                    new DemoSimulationTickClientInstanceRegistrationTest();
                thisClient.RegisterTickClient();
                clients.Add(thisClient);
            }

            // Tick once to ready client additions
            Core.Tick.OnUpdate(TickSystemConstructionUtility.blankSimTickRate);

            // Unrgister clients
            int remCount = r.Next(3, 8);

            for (int i = 0; i < remCount; i++)
            {
                clients[i].UnregisterTickClient();
            }

            // Tick once to ready client subtractions
            Core.Tick.OnUpdate(TickSystemConstructionUtility.blankSimTickRate);

            Assert.AreEqual(GetTotalNumberOfSimulationTickSubscribers(), subCount - remCount,
                            "Subscriber count for render ticksets do not match number of registrants.");
        }