private void AssertEquals(MultiCounter mc, params int[] values)
 {
     for (int i = 0; i < values.Length; i++)
     {
         Assert.AreEqual(mc[i], values[i]);
     }
 }
        public void MultiCounterDecrementScenarioTest()
        {
            var mc = new MultiCounter(10, 10);

            AssertEquals(mc, 0, 0);

            for (int i = 0; i <= 24; i++)
            {
                mc.Decrement(1);
            }
            mc.Decrement();
            AssertEquals(mc, 4, 7);

            mc.Decrement(45);

            AssertEquals(mc, 9, 2);

            mc.Increment(-7);

            AssertEquals(mc, 2, 2);

            mc.Decrement(12);
            mc.Decrement(33);
            mc.Decrement(329);

            AssertEquals(mc, 8, 4);
        }
 // Constructor
 public CivicSimulatorSimple(int[] buildingSeats, int civicID = -1, string civicName = "unnamed_civic")
 {
     _buildingSeats   = buildingSeats;
     _buildingCounter = new ArrayCounter(_buildingSeats.Length);
     _seatCounter     = new MultiCounter(_buildingSeats.Length, 0);
     CivicID          = civicID;
     CivicName        = civicName;
     SeatsNeeded      = new int[_buildingSeats.Length];
     SeatsFilled      = new int[_buildingSeats.Length];
     SeatsLeft        = new int[_buildingSeats.Length];
 }