Browse Source

Added test cases for operators on nullable values

pull/205/head
Pent Ploompuu 15 years ago
parent
commit
1e34ba6b1a
  1. 1
      ICSharpCode.Decompiler/Tests/ICSharpCode.Decompiler.Tests.csproj
  2. 530
      ICSharpCode.Decompiler/Tests/NullableOperators.cs
  3. 6
      ICSharpCode.Decompiler/Tests/TestRunner.cs

1
ICSharpCode.Decompiler/Tests/ICSharpCode.Decompiler.Tests.csproj

@ -64,6 +64,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="CallOverloadedMethod.cs" /> <Compile Include="CallOverloadedMethod.cs" />
<Compile Include="CheckedUnchecked.cs" /> <Compile Include="CheckedUnchecked.cs" />
<Compile Include="NullableOperators.cs" />
<Compile Include="CustomShortCircuitOperators.cs" /> <Compile Include="CustomShortCircuitOperators.cs" />
<Compile Include="Helpers\CodeAssert.cs" /> <Compile Include="Helpers\CodeAssert.cs" />
<Compile Include="IncrementDecrement.cs" /> <Compile Include="IncrementDecrement.cs" />

530
ICSharpCode.Decompiler/Tests/NullableOperators.cs

@ -0,0 +1,530 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
public static class NullableOperators
{
public static void BoolBasic(bool? a, bool? b)
{
if (a == b)
{
Console.WriteLine();
}
if (a != b)
{
Console.WriteLine();
}
if (!(a == b))
{
Console.WriteLine();
}
if (!(a != b))
{
Console.WriteLine();
}
}
public static void BoolComplex(bool? a, bool x)
{
if (a == x)
{
Console.WriteLine();
}
if (a != x)
{
Console.WriteLine();
}
if (x == a)
{
Console.WriteLine();
}
if (x != a)
{
Console.WriteLine();
}
if (!(a == x))
{
Console.WriteLine();
}
if (!(a != x))
{
Console.WriteLine();
}
if (!(x == a))
{
Console.WriteLine();
}
if (!(x != a))
{
Console.WriteLine();
}
}
public static void BoolValueBasic(bool? a, bool? b)
{
Console.WriteLine(a == b);
Console.WriteLine(a != b);
Console.WriteLine(!(a == b));
Console.WriteLine(!(a != b));
}
public static void BoolValueComplex(bool? a, bool x)
{
Console.WriteLine(a == x);
Console.WriteLine(a != x);
Console.WriteLine(x == a);
Console.WriteLine(x != a);
Console.WriteLine(!(a == x));
Console.WriteLine(!(a != x));
Console.WriteLine(!(x == a));
Console.WriteLine(!(x != a));
}
public static void IntBasic(int? a, int? b)
{
if (a == b)
{
Console.WriteLine();
}
if (a != b)
{
Console.WriteLine();
}
if (a > b)
{
Console.WriteLine();
}
if (a < b)
{
Console.WriteLine();
}
if (a >= b)
{
Console.WriteLine();
}
if (a <= b)
{
Console.WriteLine();
}
if (!(a == b))
{
Console.WriteLine();
}
if (!(a != b))
{
Console.WriteLine();
}
if (!(a > b))
{
Console.WriteLine();
}
}
public static void IntComplex(int? a, int x)
{
if (a == x)
{
Console.WriteLine();
}
if (a != x)
{
Console.WriteLine();
}
if (a > x)
{
Console.WriteLine();
}
if (a < x)
{
Console.WriteLine();
}
if (a >= x)
{
Console.WriteLine();
}
if (a <= x)
{
Console.WriteLine();
}
if (x == a)
{
Console.WriteLine();
}
if (x != a)
{
Console.WriteLine();
}
if (x > a)
{
Console.WriteLine();
}
if (x < a)
{
Console.WriteLine();
}
if (x >= a)
{
Console.WriteLine();
}
if (x <= a)
{
Console.WriteLine();
}
if (!(a == x))
{
Console.WriteLine();
}
if (!(a != x))
{
Console.WriteLine();
}
if (!(a > x))
{
Console.WriteLine();
}
}
public static void IntValueBasic(int? a, int? b)
{
Console.WriteLine(a == b);
Console.WriteLine(a != b);
Console.WriteLine(a > b);
Console.WriteLine(a < b);
Console.WriteLine(a >= b);
Console.WriteLine(a <= b);
Console.WriteLine(!(a == b));
Console.WriteLine(!(a != b));
Console.WriteLine(!(a > b));
}
public static void IntValueComplex(int? a, int x)
{
Console.WriteLine(a == x);
Console.WriteLine(a != x);
Console.WriteLine(a > x);
Console.WriteLine(a < x);
Console.WriteLine(a >= x);
Console.WriteLine(a <= x);
Console.WriteLine(x == a);
Console.WriteLine(x != a);
Console.WriteLine(x > a);
Console.WriteLine(x < a);
Console.WriteLine(x >= a);
Console.WriteLine(x <= a);
Console.WriteLine(!(a == x));
Console.WriteLine(!(a != x));
Console.WriteLine(!(a > x));
}
public static void NumberBasic(decimal? a, decimal? b)
{
if (a == b)
{
Console.WriteLine();
}
if (a != b)
{
Console.WriteLine();
}
if (a > b)
{
Console.WriteLine();
}
if (a < b)
{
Console.WriteLine();
}
if (a >= b)
{
Console.WriteLine();
}
if (a <= b)
{
Console.WriteLine();
}
if (!(a == b))
{
Console.WriteLine();
}
if (!(a != b))
{
Console.WriteLine();
}
if (!(a > b))
{
Console.WriteLine();
}
}
public static void NumberComplex(decimal? a, decimal x)
{
if (a == x)
{
Console.WriteLine();
}
if (a != x)
{
Console.WriteLine();
}
if (a > x)
{
Console.WriteLine();
}
if (a < x)
{
Console.WriteLine();
}
if (a >= x)
{
Console.WriteLine();
}
if (a <= x)
{
Console.WriteLine();
}
if (x == a)
{
Console.WriteLine();
}
if (x != a)
{
Console.WriteLine();
}
if (x > a)
{
Console.WriteLine();
}
if (x < a)
{
Console.WriteLine();
}
if (x >= a)
{
Console.WriteLine();
}
if (x <= a)
{
Console.WriteLine();
}
if (!(a == x))
{
Console.WriteLine();
}
if (!(a != x))
{
Console.WriteLine();
}
if (!(a > x))
{
Console.WriteLine();
}
}
public static void NumberValueBasic(decimal? a, decimal? b)
{
Console.WriteLine(a == b);
Console.WriteLine(a != b);
Console.WriteLine(a > b);
Console.WriteLine(a < b);
Console.WriteLine(a >= b);
Console.WriteLine(a <= b);
Console.WriteLine(!(a == b));
Console.WriteLine(!(a != b));
Console.WriteLine(!(a > b));
}
public static void NumberValueComplex(decimal? a, decimal x)
{
Console.WriteLine(a == x);
Console.WriteLine(a != x);
Console.WriteLine(a > x);
Console.WriteLine(a < x);
Console.WriteLine(a >= x);
Console.WriteLine(a <= x);
Console.WriteLine(x == a);
Console.WriteLine(x != a);
Console.WriteLine(x > a);
Console.WriteLine(x < a);
Console.WriteLine(x >= a);
Console.WriteLine(x <= a);
Console.WriteLine(!(a == x));
Console.WriteLine(!(a != x));
Console.WriteLine(!(a > x));
}
public static void StructBasic(DateTime? a, DateTime? b)
{
if (a == b)
{
Console.WriteLine();
}
if (a != b)
{
Console.WriteLine();
}
if (a > b)
{
Console.WriteLine();
}
if (a < b)
{
Console.WriteLine();
}
if (a >= b)
{
Console.WriteLine();
}
if (a <= b)
{
Console.WriteLine();
}
if (!(a == b))
{
Console.WriteLine();
}
if (!(a != b))
{
Console.WriteLine();
}
if (!(a > b))
{
Console.WriteLine();
}
}
public static void StructComplex(DateTime? a, DateTime x)
{
if (a == x)
{
Console.WriteLine();
}
if (a != x)
{
Console.WriteLine();
}
if (a > x)
{
Console.WriteLine();
}
if (a < x)
{
Console.WriteLine();
}
if (a >= x)
{
Console.WriteLine();
}
if (a <= x)
{
Console.WriteLine();
}
if (x == a)
{
Console.WriteLine();
}
if (x != a)
{
Console.WriteLine();
}
if (x > a)
{
Console.WriteLine();
}
if (x < a)
{
Console.WriteLine();
}
if (x >= a)
{
Console.WriteLine();
}
if (x <= a)
{
Console.WriteLine();
}
if (!(a == x))
{
Console.WriteLine();
}
if (!(a != x))
{
Console.WriteLine();
}
if (!(a > x))
{
Console.WriteLine();
}
}
public static void StructValueBasic(DateTime? a, DateTime? b)
{
Console.WriteLine(a == b);
Console.WriteLine(a != b);
Console.WriteLine(a > b);
Console.WriteLine(a < b);
Console.WriteLine(a >= b);
Console.WriteLine(a <= b);
Console.WriteLine(!(a == b));
Console.WriteLine(!(a != b));
Console.WriteLine(!(a > b));
}
public static void StructValueComplex(DateTime? a, DateTime x)
{
Console.WriteLine(a == x);
Console.WriteLine(a != x);
Console.WriteLine(a > x);
Console.WriteLine(a < x);
Console.WriteLine(a >= x);
Console.WriteLine(a <= x);
Console.WriteLine(x == a);
Console.WriteLine(x != a);
Console.WriteLine(x > a);
Console.WriteLine(x < a);
Console.WriteLine(x >= a);
Console.WriteLine(x <= a);
Console.WriteLine(!(a == x));
Console.WriteLine(!(a != x));
Console.WriteLine(!(a > x));
}
}

6
ICSharpCode.Decompiler/Tests/TestRunner.cs

@ -93,6 +93,12 @@ namespace ICSharpCode.Decompiler.Tests
{ {
TestFile(@"..\..\Tests\MultidimensionalArray.cs"); TestFile(@"..\..\Tests\MultidimensionalArray.cs");
} }
[Test]
public void NullableOperators()
{
TestFile(@"..\..\Tests\NullableOperators.cs");
}
[Test] [Test]
public void PInvoke() public void PInvoke()

Loading…
Cancel
Save