public void KlasaDatum_PostinkrementUvećavaRezultatIPridruženuVarijablu()
        {
            KlasaDatum kd = new KlasaDatum(2016, 2, 29);

            KlasaDatum kd2 = kd++;

            Assert.AreEqual(new KlasaDatum(2016, 3, 1), kd);
            Assert.AreEqual(new KlasaDatum(2016, 3, 1), kd2);
        }
        public void KlasaDatum_PreinkrementUvećavaRezultatIPridruženuVarijablu()
        {
            KlasaDatum kd = new KlasaDatum(2016, 2, 28);

            KlasaDatum kd2 = ++kd;

            Assert.AreEqual(new KlasaDatum(2016, 2, 29), kd);
            Assert.AreEqual(new KlasaDatum(2016, 2, 29), kd2);
        }
        public void KlasaDatum_PostinkrementUvećavaRezultatIPridruženuVarijablu()
        {
            var staticMethods = typeof(KlasaDatum).GetMethods(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
            var opIncrement   = staticMethods.FirstOrDefault(mi => mi.Name == "op_Increment" && mi.ReturnType == typeof(KlasaDatum) && mi.GetParameters().Count() == 1 && mi.GetParameters().ElementAt(0).ParameterType == typeof(KlasaDatum));

            Assert.IsNotNull(opIncrement);
            KlasaDatum kd  = new KlasaDatum(2016, 2, 29);
            KlasaDatum kd2 = (KlasaDatum)opIncrement.Invoke(null, new object[] { kd });

            Assert.AreEqual(new KlasaDatum(2016, 2, 29), kd);
            Assert.AreEqual(new KlasaDatum(2016, 3, 1), kd2);
        }