public void AutoTestCase_Value_TestForZero() { var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(new DateTime(1970, 1, 1)); // [DM] Here is a difference in behavior between time_t/date_t and .Net Value v4 = new Value(new Date(1970, 1, 1)); // Null time is presented as 1/1/1970 there that is non-zero value. Value v5 = new Value(2L); Value v6 = new Value(0UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("0")); Value v10 = new Value(new Mask("")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("", true); Assert.IsTrue(Value.IsNullOrEmpty(v1)); Assert.IsTrue(v2.IsNonZero); Assert.IsTrue(!v3.IsZero); Assert.IsTrue(v4.IsNonZero); Assert.IsTrue(v5.IsNonZero); Assert.IsTrue(v6.IsRealZero); Assert.IsTrue(v7.IsNonZero); Assert.IsTrue(v8.IsNonZero); Assert.IsTrue(v9.IsZero); Boost.CheckThrow <ValueError, bool>(() => v10.IsZero); Assert.IsTrue(v11.IsZero); Assert.IsTrue(v12.IsNonZero); Assert.IsTrue(v13.IsNonZero); Assert.IsTrue(v14.IsNonZero); Assert.IsTrue(v15.IsZero); v11.PushBack(v6); Assert.IsTrue(v11.IsNonZero); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); }
public void AutoTestCase_Value_TestNegation() { var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(new DateTime()); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/09")); Value v5 = new Value(2L); Value v6 = new Value(0UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("$-1"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Boost.CheckThrow <ValueError, Value>(() => v1.Negated()); Assert.AreEqual(v2.Negated(), new Value(false)); v5.InPlaceNegate(); Assert.AreEqual(v5, new Value(-2L)); v8.InPlaceNegate(); v9.InPlaceNegate(); Assert.AreEqual(v8, v9); Boost.CheckThrow <ValueError, Value>(() => v10.Negated()); Assert.AreEqual(-v12, v13); Boost.CheckThrow <ValueError, Value>(() => - v14); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); }
public void AutoTestCase_Balance_TestDivision() { Amount a0 = new Amount(); Amount a1 = new Amount("0.00"); Balance b0 = new Balance(); Balance b1 = new Balance(4.00); Balance b2 = new Balance(4UL); Balance b3 = new Balance("CAD -24"); Balance b4 = new Balance("EUR 4"); Balance b5 = new Balance("$2"); Balance b6 = new Balance(); Assert.AreEqual(b1 /= (Amount)2.00, (Balance) new Amount(2.00)); Assert.AreEqual(b2 /= (Amount)2L, (Balance) new Amount(2L)); Assert.AreEqual(b2 /= (Amount)2UL, (Balance) new Amount(1UL)); Assert.AreEqual(b3 /= new Amount("-3 CAD"), (Balance) new Amount("CAD 8")); Assert.AreEqual(b0 /= (Amount)2UL, b0); b6 += b3; b3 += b4; b3 += b5; b3 /= (Amount)2L; b6 /= (Amount)2L; b4 /= (Amount)2L; b5 /= (Amount)2L; b6 += b4; b6 += b5; Assert.AreEqual(b3, b6); Boost.CheckThrow <BalanceError, Balance>(() => b1 /= a0); Boost.CheckThrow <BalanceError, Balance>(() => b1 /= a1); Boost.CheckThrow <BalanceError, Balance>(() => b4 /= new Amount("1 CAD")); Boost.CheckThrow <BalanceError, Balance>(() => b3 /= new Amount("1 CAD")); Assert.IsTrue(b0.Valid()); Assert.IsTrue(b1.Valid()); Assert.IsTrue(b2.Valid()); Assert.IsTrue(b3.Valid()); Assert.IsTrue(b4.Valid()); Assert.IsTrue(b5.Valid()); Assert.IsTrue(b6.Valid()); }
public void AutoTestCase_Balance_TestMultiplication() { Amount a0 = new Amount(); Amount a1 = new Amount("0.00"); Balance b0 = new Balance(); Balance b1 = new Balance(1.00); Balance b2 = new Balance(2UL); Balance b3 = new Balance("CAD -3"); Balance b4 = new Balance("EUR 4.99999"); Balance b5 = new Balance("$1"); Balance b6 = new Balance(); Assert.AreEqual(b1 *= (Amount)2.00, (Balance) new Amount(2.00)); Assert.AreEqual(b2 *= (Amount)2L, (Balance) new Amount(4L)); Assert.AreEqual(b2 *= (Amount)2UL, (Balance) new Amount(8UL)); Assert.AreEqual(b3 *= new Amount("-8 CAD"), (Balance) new Amount("CAD 24")); Assert.AreEqual(b0 *= (Amount)2UL, b0); Assert.AreEqual(b0 *= a1, (Balance)a1); b6 += b3; b3 += b4; b3 += b5; b3 *= (Amount)2L; b6 *= (Amount)2L; b4 *= (Amount)2L; b5 *= (Amount)2L; b6 += b4; b6 += b5; Assert.AreEqual(b3, b6); Boost.CheckThrow <BalanceError, Balance>(() => b1 *= a0); Boost.CheckThrow <BalanceError, Balance>(() => b4 *= new Amount("1 CAD")); Boost.CheckThrow <BalanceError, Balance>(() => b3 *= new Amount("1 CAD")); Assert.IsTrue(b0.Valid()); Assert.IsTrue(b1.Valid()); Assert.IsTrue(b2.Valid()); Assert.IsTrue(b3.Valid()); Assert.IsTrue(b4.Valid()); Assert.IsTrue(b5.Valid()); Assert.IsTrue(b6.Valid()); }
public void AutoTestCase_Balance_TestEqaulity() { Amount a0 = new Amount(); Amount a1 = new Amount("$1"); Amount a2 = new Amount("2 EUR"); Amount a3 = new Amount("0.00 CAD"); Balance b0 = new Balance(); Balance b1 = new Balance(1.00); Balance b2 = new Balance(2UL); Balance b3 = new Balance(2L); Balance b4 = new Balance("EUR 2"); Balance b5 = new Balance("$-1"); Balance b6 = new Balance("0.00"); Balance b7 = new Balance("0.00"); Assert.IsTrue(b2 == b3); Assert.IsTrue(b4 == a2); Assert.IsTrue(b1 == (Amount)"1.00"); Assert.IsTrue(b5 == new Amount("-$1")); Assert.IsTrue(!(b6 == (Amount)"0")); Assert.IsTrue(!(b6 == a3)); Assert.IsTrue(!(b6 == (Amount)"0.00")); Assert.IsTrue(b6 == b7); b4 += b5; b5 += a2; Assert.IsTrue(b4 == b5); Boost.CheckThrow <BalanceError, bool>(() => b0 == (Balance)a0); Assert.IsTrue(b0.Valid()); Assert.IsTrue(b1.Valid()); Assert.IsTrue(b2.Valid()); Assert.IsTrue(b3.Valid()); Assert.IsTrue(b4.Valid()); Assert.IsTrue(b5.Valid()); Assert.IsTrue(b6.Valid()); Assert.IsTrue(b7.Valid()); }
public void AutoTestCase_Balance_TestSubtraction() { Amount a0 = new Amount(); Amount a1 = new Amount("$1"); Amount a2 = new Amount("2 EUR"); Amount a3 = new Amount("0.00 CAD"); Amount a4 = new Amount("$2"); Balance b0 = new Balance(); Balance b1 = new Balance(1.00); Balance b2 = new Balance(2UL); Balance b3 = new Balance(2L); Balance b4 = new Balance(); Balance b5 = new Balance(); b0 -= b1; b2 -= b3; b3 -= a1; b3 -= a2; b4 = b3; b5 -= a1; b5 -= a4; Assert.AreEqual(new Balance(-1.00), b0); Assert.AreEqual(b3 -= a3, b4); Assert.AreEqual(new Balance(), b2); Assert.AreEqual(b3 -= b2, b3); Assert.AreEqual(new Balance() - new Amount("$3"), b5); Boost.CheckThrow <BalanceError, Balance>(() => b3 -= a0); Assert.IsTrue(b0.Valid()); Assert.IsTrue(b1.Valid()); Assert.IsTrue(b2.Valid()); Assert.IsTrue(b3.Valid()); Assert.IsTrue(b4.Valid()); Assert.IsTrue(b5.Valid()); }
public void AutoTestCase_Commodity_TestPriceHistory() { DateTime jan17_05; DateTime jan17_06; DateTime jan17_07; DateTime feb27_07; DateTime feb28_07; DateTime feb28_07sbm; DateTime mar01_07; DateTime apr15_07; jan17_05 = TimesCommon.Current.ParseDateTime("2005/01/17 00:00:00"); jan17_06 = TimesCommon.Current.ParseDateTime("2006/01/17 00:00:00"); jan17_07 = TimesCommon.Current.ParseDateTime("2007/01/17 00:00:00"); feb27_07 = TimesCommon.Current.ParseDateTime("2007/02/27 18:00:00"); feb28_07 = TimesCommon.Current.ParseDateTime("2007/02/28 06:00:00"); feb28_07sbm = TimesCommon.Current.ParseDateTime("2007/02/28 11:59:59"); mar01_07 = TimesCommon.Current.ParseDateTime("2007/03/01 00:00:00"); apr15_07 = TimesCommon.Current.ParseDateTime("2007/04/15 13:00:00"); Amount x0 = new Amount(); Amount x1 = new Amount("100.10 AAPL"); Boost.CheckThrow <AmountError, Amount>(() => x0.Value()); Assert.IsTrue(!(bool)x1.Value()); // Commodities cannot be constructed by themselves, since a great deal // of their state depends on how they were seen to be used. Commodity aapl = x1.Commodity; aapl.AddPrice(jan17_07, new Amount("$10.20")); aapl.AddPrice(feb27_07, new Amount("$13.40")); aapl.AddPrice(feb28_07, new Amount("$18.33")); aapl.AddPrice(feb28_07sbm, new Amount("$18.30")); aapl.AddPrice(mar01_07, new Amount("$19.50")); aapl.AddPrice(apr15_07, new Amount("$21.22")); aapl.AddPrice(jan17_05, new Amount("EUR 23.00")); aapl.AddPrice(jan17_06, new Amount("CAD 25.00")); Amount one_euro = new Amount("EUR 1.00"); Commodity euro = one_euro.Commodity; euro.AddPrice(feb27_07, new Amount("CAD 1.40")); euro.AddPrice(jan17_05, new Amount("$0.78")); Amount one_cad = new Amount("CAD 1.00"); Commodity cad = one_cad.Commodity; cad.AddPrice(jan17_06, new Amount("$1.11")); Amount amt = x1.Value(feb28_07sbm); Assert.IsNotNull(amt); Assert.AreEqual(new Amount("$1831.83"), amt); amt = x1.Value(TimesCommon.Current.CurrentTime); Assert.IsNotNull(amt); Assert.AreEqual("$2124.12", amt.ToString()); Assert.AreEqual("$2124.122", amt.ToFullString()); amt = x1.Value(TimesCommon.Current.CurrentTime, euro); Assert.IsNotNull(amt); Assert.AreEqual("EUR 1787.50", amt.Rounded().ToString()); // Add a newer Euro pricing aapl.AddPrice(jan17_07, new Amount("EUR 23.00")); amt = x1.Value(TimesCommon.Current.CurrentTime, euro); Assert.IsNotNull(amt); Assert.AreEqual("EUR 2302.30", amt.ToString()); amt = x1.Value(TimesCommon.Current.CurrentTime, cad); Assert.IsNotNull(amt); Assert.AreEqual("CAD 3223.22", amt.ToString()); Assert.IsTrue(x1.Valid()); }
public void AutoTestCase_Value_TestDivision() { DateTime localtime = new DateTime(2010, 2, 10, 0, 0, 4); var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(localtime); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/14")); Value v5 = new Value(8L); Value v6 = new Value((long)2UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("regex")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Value v16 = new Value(new Amount("8")); v5 /= new Value(2L); Assert.AreEqual(v5, new Value(4L)); v5 /= new Value(new Amount("8")); Assert.AreEqual(v5, new Value(new Amount("2"))); v16 /= new Value(2L); v16 /= new Value(new Amount("2")); Assert.AreEqual(v5, v16); v8 /= v9; v8 /= new Value(new Balance(2L)); Assert.AreEqual(v8, new Value("0.5 GBP")); Value v17 = new Value(v9); v9 /= new Value(2L); Assert.AreEqual(v9, new Value("2 GBP")); v17 /= new Value("2 GBP"); v17 /= new Value("2"); Assert.AreEqual(v17, new Value(new Balance("1 GBP"))); Boost.CheckThrow <ValueError, Value>(() => v10 /= v8); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); Assert.IsTrue(v16.IsValid); Assert.IsTrue(v17.IsValid); }
public void AutoTestCase_Value_TestMultiplication() { DateTime localtime = new DateTime(2010, 2, 10, 0, 0, 4); var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(localtime); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/14")); Value v5 = new Value(2L); Value v6 = new Value((long)2UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("regex")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Value v16 = new Value(new Amount("2")); v14 *= new Value(2L); Assert.AreEqual(v14, new Value("commentcomment", true)); v5 *= new Value(2L); Assert.AreEqual(v5, new Value(4L)); v5 *= new Value(new Amount("2")); Assert.AreEqual(v5, new Value(new Amount("8"))); v16 *= new Value(2L); v16 *= new Value(new Amount("2")); Assert.AreEqual(v5, v16); v8 *= v9; Assert.AreEqual(v8, new Value("16 GBP")); Value v17 = new Value(v9); v9 *= new Value(2L); Assert.AreEqual(v9, new Value("8 GBP")); v17 += new Value(2L); v17 *= new Value(2L); Value v18 = new Value("8 GBP"); v18 += new Value(4L); Assert.AreEqual(v17, v18); Value v20 = new Value(s1); v11.PushBack(new Value(2L)); v11.PushBack(new Value("2 GBP")); v20.PushBack(new Value(4L)); v20.PushBack(new Value("4 GBP")); v11 *= new Value(2L); Assert.AreEqual(v11, v20); Boost.CheckThrow <ValueError, Value>(() => v10 *= v8); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); Assert.IsTrue(v16.IsValid); Assert.IsTrue(v17.IsValid); Assert.IsTrue(v18.IsValid); }
public void AutoTestCase_Value_TestSubtraction() { DateTime localtime = new DateTime(2010, 2, 10, 0, 0, 4); var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(localtime); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/18")); Value v5 = new Value(6L); Value v6 = new Value((long)6UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("regex")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Value v16 = new Value(new Amount("6")); v3 -= new Value(2L); Assert.AreEqual(v3, new Value(new DateTime(2010, 2, 10, 0, 0, 2))); v3 -= new Value(new Amount("2")); Assert.AreEqual(v3, new Value(new DateTime(2010, 2, 10, 0, 0, 0))); v4 -= new Value(2L); Assert.AreEqual(v4, new Value(TimesCommon.Current.ParseDate("2014/08/16"))); v4 -= new Value(new Amount("2")); Assert.AreEqual(v4, new Value(TimesCommon.Current.ParseDate("2014/08/14"))); v5 -= new Value(2L); Assert.AreEqual(v5, new Value(4L)); v5 -= new Value(new Amount("2")); Assert.AreEqual(v5, new Value(new Amount("2"))); v5 -= v8; v16 -= new Value(2L); v16 -= new Value(new Amount("2")); v16 -= v8; Assert.AreEqual(v5, v16); v8 -= new Value("2"); Assert.AreEqual(-v8, v16); Value v18 = new Value(6L); v18 -= v9; Value v19 = new Value(new Amount("6")); v19 -= v9; Assert.AreEqual(v18, v19); v9 -= new Value(-2L); v9 -= new Value(new Amount("-10")); v9 -= new Value(new Amount("12 GBP")); v9 -= v19; Assert.AreEqual(v9, v18); v18 -= v19; Assert.AreEqual(v18, new Value("0")); Value v20 = new Value(s1); Value v21 = new Value(2L); Value v22 = new Value("4 GBP"); v11.PushBack(v21); v11.PushBack(v22); Boost.CheckThrow <ValueError, Value>(() => v11 -= v20); Boost.CheckThrow <ValueError, Value>(() => v10 -= v8); v20.PushBack(v21); v20.PushBack(v22); v11 -= v20; Value v23 = new Value(s1); v23.PushBack(new Value(0L)); v23.PushBack(new Value("0")); Assert.AreEqual(v11, v23); v20 -= v21; v20 -= v22; Assert.AreEqual(v20, new Value(s1)); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); Assert.IsTrue(v16.IsValid); Assert.IsTrue(v18.IsValid); Assert.IsTrue(v19.IsValid); Assert.IsTrue(v20.IsValid); }
public void AutoTestCase_Value_TestAddition() { DateTime localtime = new DateTime(2010, 2, 10); var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(localtime); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/14")); Value v5 = new Value(2L); Value v6 = new Value((long)2UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("regex")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Value v16 = new Value(new Amount("2")); v14 += v15; Assert.AreEqual(v14, new Value("commentcomment", true)); v14 += v12; Assert.AreEqual(v14, new Value("commentcomment$1.00", true)); Assert.AreEqual(v3, new Value(new DateTime(2010, 2, 10, 0, 0, 0))); v3 += new Value(2L); Assert.AreEqual(v3, new Value(new DateTime(2010, 2, 10, 0, 0, 2))); v3 += new Value(new Amount("2")); Assert.AreEqual(v3, new Value(new DateTime(2010, 2, 10, 0, 0, 4))); v4 += new Value(2L); Assert.AreEqual(v4, new Value(TimesCommon.Current.ParseDate("2014/08/16"))); v4 += new Value(new Amount("2")); Assert.AreEqual(v4, new Value(TimesCommon.Current.ParseDate("2014/08/18"))); v5 += new Value(2L); Assert.AreEqual(v5, new Value(4L)); v5 += new Value(new Amount("2")); Assert.AreEqual(v5, new Value(new Amount("6"))); v5 += v8; v16 += new Value(2L); v16 += new Value(new Amount("2")); v16 += v8; Assert.AreEqual(v5, v16); v8 += new Value("6"); Assert.AreEqual(v8, v16); Value v17 = new Value(6L); v17 += new Value(new Amount("4 GBP")); Assert.AreEqual(v8, v17); Value v18 = new Value(6L); v18 += v9; Value v19 = new Value(new Amount("6")); v19 += v9; Assert.AreEqual(v18, v19); v9 += new Value(2L); v9 += new Value(new Amount("4")); v9 += v19; v18 += v19; Assert.AreEqual(v9, v18); Value v20 = new Value(s1); v11 += new Value(2L); v11 += new Value("4 GBP"); Boost.CheckThrow <ValueError, Value>(() => v11 += v20); Boost.CheckThrow <ValueError, Value>(() => v10 += v8); v20 += new Value(2L); v20 += new Value("4 GBP"); Assert.AreEqual(v11, v20); v11 += v20; v20 += v20; Assert.AreEqual(v11, v20); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); Assert.IsTrue(v16.IsValid); Assert.IsTrue(v17.IsValid); Assert.IsTrue(v18.IsValid); Assert.IsTrue(v19.IsValid); Assert.IsTrue(v20.IsValid); }
public void AutoTestCase_Value_TestEquality() { DateTime localtime = new DateTime(2010, 2, 10); var s1 = new List <Value>(); Value v1 = new Value(); Value v2 = new Value(true); Value v3 = new Value(localtime); Value v4 = new Value(TimesCommon.Current.ParseDate("2014/08/14")); Value v5 = new Value(2L); Value v6 = new Value((long)2UL); Value v7 = new Value(1.00); Value v8 = new Value(new Amount("4 GBP")); Value v9 = new Value(new Balance("4 GBP")); Value v10 = new Value(new Mask("regex")); Value v11 = new Value(s1); Value v12 = new Value("$1"); Value v13 = new Value("2 CAD"); Value v14 = new Value("comment", true); Value v15 = new Value("comment", true); Assert.AreEqual(v1, new Value()); Assert.AreEqual(v2, new Value(true)); Assert.AreEqual(v3, new Value(localtime)); Assert.IsTrue(!(v4 == new Value(TimesCommon.Current.ParseDate("2014/08/15")))); Value v19 = new Value(new Amount("2")); Value v20 = new Value(new Balance("2")); Assert.AreEqual(v5, v6); Assert.AreEqual(v5, v19); Assert.AreEqual(v5, v20); Assert.IsTrue(v19 == v5); Assert.IsTrue(v19 == v20); Assert.IsTrue(v19 == new Value(new Amount("2"))); Assert.IsTrue(v20 == v5); Assert.IsTrue(v20 == v19); Assert.IsTrue(v20 == new Value(new Balance(2L))); Assert.IsTrue(v14 == v15); Assert.IsTrue(v10 == new Value(new Mask("regex"))); Assert.IsTrue(v11 == new Value(s1)); Boost.CheckThrow <ValueError, bool>(() => v8 == v10); Assert.IsTrue(v1.IsValid); Assert.IsTrue(v2.IsValid); Assert.IsTrue(v3.IsValid); Assert.IsTrue(v4.IsValid); Assert.IsTrue(v5.IsValid); Assert.IsTrue(v6.IsValid); Assert.IsTrue(v7.IsValid); Assert.IsTrue(v8.IsValid); Assert.IsTrue(v9.IsValid); Assert.IsTrue(v10.IsValid); Assert.IsTrue(v11.IsValid); Assert.IsTrue(v12.IsValid); Assert.IsTrue(v13.IsValid); Assert.IsTrue(v14.IsValid); Assert.IsTrue(v15.IsValid); Assert.IsTrue(v19.IsValid); Assert.IsTrue(v20.IsValid); }