public void USDtoCADTest() { ExcoCalendar calendar = new ExcoCalendar(12, 1, false, 1); // short year Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 2; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 3; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 4; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 5; Assert.AreEqual(1.03, ExcoExRate.USDtoCAD(calendar)); calendar.month = 6; Assert.AreEqual(1.02, ExcoExRate.USDtoCAD(calendar)); calendar.month = 7; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 8; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 9; Assert.AreEqual(0.98, ExcoExRate.USDtoCAD(calendar)); calendar.month = 10; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 11; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 12; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.year = 13; calendar.month = 1; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 2; Assert.AreEqual(1.03, ExcoExRate.USDtoCAD(calendar)); calendar.month = 3; Assert.AreEqual(1.02, ExcoExRate.USDtoCAD(calendar)); calendar.month = 4; Assert.AreEqual(1.01, ExcoExRate.USDtoCAD(calendar)); calendar.month = 5; Assert.AreEqual(1.04, ExcoExRate.USDtoCAD(calendar)); calendar.month = 6; Assert.AreEqual(1.01, ExcoExRate.USDtoCAD(calendar)); calendar.month = 7; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 8; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 9; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 10; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 11; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 12; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); // long year calendar.year = 2012; calendar.month = 1; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 2; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 3; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 4; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 5; Assert.AreEqual(1.03, ExcoExRate.USDtoCAD(calendar)); calendar.month = 6; Assert.AreEqual(1.02, ExcoExRate.USDtoCAD(calendar)); calendar.month = 7; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 8; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 9; Assert.AreEqual(0.98, ExcoExRate.USDtoCAD(calendar)); calendar.month = 10; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 11; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.month = 12; Assert.AreEqual(0.99, ExcoExRate.USDtoCAD(calendar)); calendar.year = 2013; calendar.month = 1; Assert.AreEqual(1.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 2; Assert.AreEqual(1.03, ExcoExRate.USDtoCAD(calendar)); calendar.month = 3; Assert.AreEqual(1.02, ExcoExRate.USDtoCAD(calendar)); calendar.month = 4; Assert.AreEqual(1.01, ExcoExRate.USDtoCAD(calendar)); calendar.month = 5; Assert.AreEqual(1.04, ExcoExRate.USDtoCAD(calendar)); calendar.month = 6; Assert.AreEqual(1.01, ExcoExRate.USDtoCAD(calendar)); calendar.month = 7; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 8; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 9; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 10; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 11; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); calendar.month = 12; Assert.AreEqual(0.0, ExcoExRate.USDtoCAD(calendar)); // exception try { calendar.year = 11; ExcoExRate.USDtoCAD(calendar); } catch (Exception e) { Assert.AreEqual("Invalid year 11", e.Message); } try { calendar.year = 12; calendar.month = 33; ExcoExRate.USDtoCAD(calendar); } catch (Exception e) { Assert.AreEqual("Invalid month 33", e.Message); } }