// [TestCase(0, -1)]
        // [TestCase(-1, 0)]
        // [TestCase(-1, -1)]
        public void SkipOperator_SkipNNumberOfCalls(int skipNumber, int callTimes)
        {
            int index = 0;
            ObservableProperty <int> property = new ObservableProperty <int> {
                Value = -1
            };

            property.Skip(skipNumber).Subscribe(i => index++);

            for (int i = 0; i < callTimes; i++)
            {
                property.Value = i;
            }

            int expectedResult = callTimes - skipNumber + 1;

            // For negative numbers
            // if (skipNumber <= 0)
            // {
            //     expectedResult = callTimes + 1;
            // }
            //
            // if (callTimes <= 0)
            // {
            //     expectedResult = 0;
            //     if (skipNumber <= 0)
            //     {
            //         expectedResult = 1;
            //     }
            // }

            Assert.AreEqual(expectedResult, index);
        }
        public void OnceOperator_UsingSkipOperator_CalledOnce(int skipNumber)
        {
            int index = 0;
            ObservableProperty <int> property = new ObservableProperty <int>();

            property.Skip(skipNumber).Once().Subscribe(i => index++);

            for (int i = 0; i < skipNumber + 3; i++)
            {
                property.Value = i;
            }

            Assert.AreEqual(1, index);
        }