|
/*
* Created by: Steinar Dragsnes
* Created: 12-apr-2009
*/
using System;
using DateTimeZone;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TEST.DateTimeZone
{
[TestClass]
public class DayFractionTest
{
private double df1double;
private double df2double;
private TimeSpan oneDayAndAHalfTimeSpan;
private double df1Plus1double;
private double df1Minus1double;
/// <summary>
/// Sets up testvalues
/// </summary>
[TestInitialize]
public void SetUp()
{
df1double = 2.5;
df2double = 1.5;
oneDayAndAHalfTimeSpan = new TimeSpan(1, 12, 0, 0);
df1Plus1double = 3.5;
df1Minus1double = 1.5;
}
/// <summary>
/// Tests creation from a double value
/// </summary>
[TestMethod]
public void TestCreateDFFromDouble()
{
DayFraction fraction = new DayFraction(df1double);
Assert.AreEqual(fraction.Days, df1double);
}
/// <summary>
/// tests comparison using Nunit Asserts
/// </summary>
[TestMethod]
public void TestComparison()
{
DayFraction fraction1 = new DayFraction(df1double);
DayFraction fraction1Copy = fraction1;
DayFraction fraction2 = new DayFraction(df2double);
Assert.IsTrue(2 > 1);
Assert.IsTrue(fraction1 > fraction2);
Assert.IsTrue(1 < 2);
Assert.IsTrue(fraction2 < fraction1);
Assert.AreNotSame(fraction1, fraction2);
Assert.AreEqual(fraction1, fraction1Copy);
}
/// <summary>
/// Tests comparison using operators
/// </summary>
[TestMethod]
public void TestComparisonOperators()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Copy = df1;
DayFraction df2 = new DayFraction(df2double);
Assert.IsTrue(df1 >= df2);
Assert.IsTrue(df1 > df2);
Assert.IsTrue(df1Copy >= df1);
Assert.IsTrue(df2 < df1);
Assert.IsTrue(df2 <= df1);
Assert.IsTrue(df1Copy <= df1);
Assert.IsTrue(df2 != df1);
}
/// <summary>
/// Tests addition operator
/// </summary>
[TestMethod]
public void TestPlus1WithinDayFractionAndDouble()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Plus1 = new DayFraction(df1Plus1double);
Assert.AreEqual(df1Plus1, df1 + 1);
}
/// <summary>
/// Tests addition operator
/// </summary>
[TestMethod]
public void TestPlus1WithinDayFractions()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Plus1 = new DayFraction(df1Plus1double);
Assert.AreEqual(df1Plus1, df1 + new DayFraction(1));
}
/// <summary>
/// Tests addition operator
/// </summary>
[TestMethod]
public void TestPlus1WithinDoubleAndDayFraction()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Plus1 = new DayFraction(df1Plus1double);
Assert.AreEqual(3.5, 1 + df1);
}
/// <summary>
/// Tests subtraction operator
/// </summary>
[TestMethod]
public void TestMinus1WithinDayFractions()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Minus1 = new DayFraction(df1Minus1double);
Assert.AreEqual(df1 - df1Minus1, new DayFraction(1));
}
/// <summary>
/// Tests subtraction operator
/// </summary>
[TestMethod]
public void TestMinus1WithinDayFractionAndDouble()
{
DayFraction df1 = new DayFraction(df1double);
Assert.AreEqual(df1 - 1.5, new DayFraction(1));
}
/// <summary>
/// Tests subtraction operator
/// </summary>
[TestMethod]
public void TestMinus1WithinDoubleAndDayFraction()
{
DayFraction df1Minus1 = new DayFraction(df1Minus1double);
Assert.AreEqual(2.5 - df1Minus1, 1);
}
/// <summary>
/// Tests average calculation
/// </summary>
[TestMethod]
public void TestDivision()
{
DayFraction df2 = new DayFraction(df2double);
DayFraction df1Minus1 = new DayFraction(df1Minus1double);
Assert.AreEqual(df1Minus1 / df2, new DayFraction(1));
Assert.AreEqual(df1Minus1 / 1.5, new DayFraction(1));
Assert.AreEqual(1.5 / df2, new DayFraction(1));
}
/// <summary>
/// Test the hashcode of 2 instances
/// </summary>
[TestMethod]
public void TestIdentity()
{
DayFraction df1 = new DayFraction(df1double);
DayFraction df1Copy = df1;
Assert.AreEqual(df1.GetHashCode(), df1Copy.GetHashCode());
}
[TestMethod]
public void TestGetTimeSpan()
{
DayFraction df2 = new DayFraction(df2double);
Assert.AreEqual(df2.GetTimeSpan(), oneDayAndAHalfTimeSpan);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.