Пример #1
0
        public void Compare()
        {
            FungibleAssetValue foo100a = FungibleAssetValue.FromRawValue(FOO, 100);
            FungibleAssetValue foo100b = FungibleAssetValue.FromRawValue(FOO, 100);
            FungibleAssetValue foo200  = FungibleAssetValue.FromRawValue(FOO, 200);
            FungibleAssetValue bar100  = FungibleAssetValue.FromRawValue(BAR, 100);

            Assert.Equal(0, foo100a.CompareTo(foo100b));
            Assert.Equal(0, foo100a.CompareTo((object)foo100b));
            Assert.False(foo100a < foo100b);
            Assert.True(foo100a <= foo100b);
            Assert.False(foo100a > foo100b);
            Assert.True(foo100a >= foo100b);

            Assert.True(foo100a.CompareTo(foo200) < 0);
            Assert.True(foo100a.CompareTo((object)foo200) < 0);
            Assert.True(foo100a < foo200);
            Assert.True(foo100a <= foo200);
            Assert.False(foo100a > foo200);
            Assert.False(foo100a >= foo200);

            Assert.True(foo200.CompareTo(foo100b) > 0);
            Assert.True(foo200.CompareTo((object)foo100b) > 0);
            Assert.False(foo200 < foo100b);
            Assert.False(foo200 <= foo100b);
            Assert.True(foo200 > foo100b);
            Assert.True(foo200 >= foo100b);

            Assert.Throws <ArgumentException>(() => foo100a.CompareTo(bar100));
            Assert.Throws <ArgumentException>(() => foo100a.CompareTo((object)bar100));
            Assert.Throws <ArgumentException>(() => foo100a < bar100);
            Assert.Throws <ArgumentException>(() => foo100a <= bar100);
            Assert.Throws <ArgumentException>(() => foo100a > bar100);
            Assert.Throws <ArgumentException>(() => foo100a >= bar100);

            Assert.Throws <ArgumentException>(() => foo100a.CompareTo(100));
        }