public void Misc_TemporalRecursion4() { Tnum x = new Tnum(); x.AddState(Time.DawnOf, 10); x.AddState(new DateTime(2000,1,1), 1); Assert.AreEqual("{Dawn: 89; 1/1/2000: 1}", TemporalFibonacci(x).Out); }
public void Misc_TemporalRecursion4() { Tnum x = new Tnum(); x.AddState(Time.DawnOf, 10); x.AddState(new DateTime(2000, 1, 1), 1); Assert.AreEqual("{Dawn: 89; 1/1/2000: 1}", TemporalFibonacci(x).Out); }
public void HasUndefinedIntervals1() { Tnum r = new Tnum(new Hval(null,Hstate.Null)); r.AddState(Date(2000,1,1), new Hval(null,Hstate.Unstated)); r.AddState(Date(2001,1,1), 2); Assert.AreEqual(true, Util.HasUndefinedIntervals(r)); }
public void RunningSummedIntervals_1() { Tnum t = new Tnum(0); t.AddState(Date(2012, 1, 1), 1000); t.AddState(Date(2012, 3, 1), 0); Tnum r = t.RunningSummedIntervals(TheMonth); Assert.AreEqual("{Dawn: 0; 2/1/2012: 1000; 3/1/2012: 2000}", r.Out); }
private static Tnum tnv() { Tnum result = new Tnum(Hstate.Stub); result.AddState(Date(2001, 1, 1), Hstate.Uncertain); result.AddState(Date(2002, 1, 1), Hstate.Unstated); return(result); }
public void HasUndefinedIntervals3() { Tnum r = new Tnum(7); r.AddState(Date(2000, 1, 1), 6); r.AddState(Date(2001, 1, 1), 2); Assert.AreEqual(false, Util.HasUndefinedIntervals(r)); }
public void HasUndefinedIntervals2() { Tnum r = new Tnum(7); r.AddState(Date(2000, 1, 1), new Hval(null, Hstate.Unstated)); r.AddState(Date(2001, 1, 1), 2); Assert.AreEqual(false, Util.HasUndefinedIntervals(r)); }
private static Tnum Tn1() { Tnum tn = new Tnum(0); tn.AddState(Date(2010, 01, 01), 7000); tn.AddState(Date(2013, 01, 01), 6000); tn.AddState(Date(2015, 01, 01), 5090); tn.AddState(Date(2017, 01, 01), 4470); return(tn); }
public void FT_Shift_3() { Tnum t = new Tnum(0); t.AddState(Date(2010, 1, 1), 100); t.AddState(Date(2011, 1, 1), 200); Tnum actual = t.Shift(2, TheYear); Assert.AreEqual("{Dawn: 0; 1/1/2008: 100; 1/1/2009: 200}", actual.Out); }
public void MergeTvars2() // Merge unknown Tvar w/ mixed (known and unknown) Tvar { Hval unst = new Hval(null, Hstate.Null); Tnum tn1 = new Tnum(unst); Tnum tn2 = new Tnum(0); tn2.AddState(Date(2000, 1, 1), unst); tn2.AddState(Date(2001, 1, 1), 2); tn2.AddState(Date(2002, 1, 1), unst); Assert.AreEqual(tn2.Out, Util.MergeTvars <Tnum>(tn1, tn2).Out); }
public void FT_ToDecimal_3() { Tnum t = new Tnum(42.13); t.AddState(Date(1912, 5, 3), 43.13); Assert.AreEqual(null, t.ToDecimal); }
// Set up a new test private static void NewTest() { Tnum valA = new Tnum(1); Tnum valB = new Tnum(2); Tnum valC = new Tnum(3); valC.AddState(new DateTime(2011, 1, 14), 4); Tbool ownA = new Tbool(true); Tbool ownB = new Tbool(true); ownB.AddState(new DateTime(2008, 1, 1), false); Tbool ownC = new Tbool(false); ownC.AddState(new DateTime(2005, 1, 1), true); Facts.Clear(); Facts.Assert(A, "ValueOf", valA); Facts.Assert(B, "ValueOf", valB); Facts.Assert(C, "ValueOf", valC); Facts.Assert(M, "Owns", A, ownA); Facts.Assert(M, "Owns", B, ownB); Facts.Assert(M, "Owns", C, ownC); }
public void TemporalMath2() { Tnum x = new Tnum(10); x.AddState(new DateTime(2000, 1, 1), 1); Assert.AreEqual("{Dawn: 9; 1/1/2000: 0}", (x - 1).Out); }
public void FT_ToInt_3() { Tnum t = new Tnum(42); t.AddState(Date(1912, 5, 3), 43); Assert.AreEqual(null, t.ToInt); }
public void TemporalComparison1() { Tnum x = new Tnum(10); x.AddState(Date(2000, 1, 1), 1); Assert.AreEqual("{Dawn: false; 1/1/2000: true}", (x <= 1).Out); }
public void SlidingSummedIntervals_4() { Tnum t = new Tnum(1000); t.AddState(Date(2013, 1, 1), 2000); Tnum r = t.SlidingSummedIntervals(TheYear, 2); Assert.AreEqual("{Dawn: 2000; 1/1/2014: 3000; 1/1/2015: 4000}", r.Out); }
public void SlidingSummedIntervals_7() { Tnum t = new Tnum(Hstate.Unstated); t.AddState(Date(2013, 1, 1), 2000); Tnum r = t.SlidingSummedIntervals(TheYear, 2); Assert.AreEqual("Unstated", r.Out); }
public void TotalSummedIntervals_5() { Tnum t = new Tnum(1000); t.AddState(Date(2015, 6, 1), 2000); Tnum r = t.TotalSummedIntervals(TheMonth, Date(2015, 1, 1), Date(2016, 1, 1)); Assert.AreEqual(19000, r.Out); }
public void FT_AsOf_5() { Tnum t = new Tnum(4); t.AddState(Time.DawnOf.AddYears(5), 44); Tnum res = t.AsOf(Time.DawnOf.AddYears(12)); Assert.AreEqual(44, res.Out); }
public void Test39b() { Tnum t = new Tnum(0); t.AddState(new DateTime(2000, 1, 1), 7); Tnum res = t / 7; Assert.AreEqual("{Dawn: 0; 1/1/2000: 1}", res.Out); }
public void TnumSwitch11_lazy() { Tnum x = new Tnum(10); x.AddState(Date(2000, 1, 1), 1); Tnum result = Switch <Tnum>(() => x >= 5, () => new Tnum(1), () => 2); Assert.AreEqual("{Dawn: 1; 1/1/2000: 2}", result.Out); }
/// <summary> /// Asserts a given fact (of the proper Tvar type) /// </summary> private static void AssertFact(Factoid f) { // Instantiate relevant Things Thing t1 = f.Arg1.ToString() != "" ? Facts.AddThing(f.Arg1.ToString()) : null; Thing t2 = f.Arg2.ToString() != "" ? Facts.AddThing(f.Arg2.ToString()) : null; Thing t3 = f.Arg3.ToString() != "" ? Facts.AddThing(f.Arg3.ToString()) : null; // Sometimes I have my doubts about static typing... if (f.FactType == "Tbool") { Tbool val = new Tbool(); foreach (TemporalValue v in f.Timeline) { val.AddState(v.Date, new Hval(v.Value)); } Facts.Assert(t1, f.Relationship, t2, t3, val); } else if (f.FactType == "Tnum") { Tnum val = new Tnum(); foreach (TemporalValue v in f.Timeline) { val.AddState(v.Date, new Hval(v.Value)); } Facts.Assert(t1, f.Relationship, t2, t3, val); } else if (f.FactType == "Tstr") { Tstr val = new Tstr(); foreach (TemporalValue v in f.Timeline) { val.AddState(v.Date, new Hval(v.Value)); } Facts.Assert(t1, f.Relationship, t2, t3, val); } else if (f.FactType == "Tdate") { Tdate val = new Tdate(); foreach (TemporalValue v in f.Timeline) { val.AddState(v.Date, new Hval(v.Value)); } Facts.Assert(t1, f.Relationship, t2, t3, val); } else if (f.FactType == "Tset") { Tset val = new Tset(); foreach (TemporalValue v in f.Timeline) { val.AddState(v.Date, new Hval(v.Value)); } Facts.Assert(t1, f.Relationship, t2, t3, val); } }
public void MergeTvars1() { Hval unst = new Hval(null, Hstate.Null); Tnum tn1 = new Tnum(unst); tn1.AddState(Date(2000, 1, 1), 1); tn1.AddState(Date(2001, 1, 1), unst); tn1.AddState(Date(2002, 1, 1), 3); tn1.AddState(Date(2003, 1, 1), unst); Tnum tn2 = new Tnum(0); tn2.AddState(Date(2000, 1, 1), unst); tn2.AddState(Date(2001, 1, 1), 2); tn2.AddState(Date(2002, 1, 1), unst); tn2.AddState(Date(2003, 1, 1), unst); Tnum result = Util.MergeTvars <Tnum>(tn1, tn2); Assert.AreEqual("{Dawn: 0; 1/1/2000: 1; 1/1/2001: 2; 1/1/2002: 3; 1/1/2003: Null}", result.Out); }
/// <summary> /// Creates a Tnum from a string representing a time-varying value. /// </summary> /// <remarks> /// Sample input: {2012-01-01: 5; Time.DawnOf: $55,000.01} /// </remarks> private static Tnum TnumFromTemporalString(string val) { if (val.StartsWith("{")) { Tnum result = new Tnum(); foreach (string s in TimeValuePairs(val)) { string[] parts = s.Split(new char[] { ':' }); DateTime datePart = Convert.ToDateTime(parts[0].Trim().Replace("Dawn", "1800-01-01")); decimal valPart = Convert.ToDecimal(parts[1].Trim(' ', '$').Replace(",", "")); result.AddState(datePart, valPart); } return(result); } return(new Tnum(val)); }
public void TotalSummedIntervals_5() { Tnum t = new Tnum(1000); t.AddState(Date(2015, 6, 1), 2000); Tnum r = t.TotalSummedIntervals(TheMonth, Date(2015,1,1), Date(2016,1,1)); Assert.AreEqual(19000, r.Out); }
public void FT_Shift_3() { Tnum t = new Tnum(0); t.AddState(Date(2010,1,1), 100); t.AddState(Date(2011,1,1), 200); Tnum actual = t.Shift(2, TheYear); Assert.AreEqual("{Dawn: 0; 1/1/2008: 100; 1/1/2009: 200}", actual.Out); }
public void TemporalComparison1() { Tnum x = new Tnum(10); x.AddState(Date(2000,1,1), 1); Assert.AreEqual("{Dawn: false; 1/1/2000: true}", (x <= 1).Out ); }
public void FT_ToDecimal_3() { Tnum t = new Tnum(42.13); t.AddState(Date(1912,5,3), 43.13); Assert.AreEqual(null, t.ToDecimal); }
public void TnumSwitch11_lazy() { Tnum x = new Tnum(10); x.AddState(Date(2000,1,1), 1); Tnum result = Switch<Tnum>(()=> x >= 5, ()=> new Tnum(1), ()=> 2); Assert.AreEqual("{Dawn: 1; 1/1/2000: 2}", result.Out); }
public void FT_ToInt_3() { Tnum t = new Tnum(42); t.AddState(Date(1912,5,3), 43); Assert.AreEqual(null, t.ToInt); }
public void MergeTvars1() { Hval unst = new Hval(null,Hstate.Null); Tnum tn1 = new Tnum(unst); tn1.AddState(Date(2000,1,1), 1); tn1.AddState(Date(2001,1,1), unst); tn1.AddState(Date(2002,1,1), 3); tn1.AddState(Date(2003,1,1), unst); Tnum tn2 = new Tnum(0); tn2.AddState(Date(2000,1,1), unst); tn2.AddState(Date(2001,1,1), 2); tn2.AddState(Date(2002,1,1), unst); tn2.AddState(Date(2003,1,1), unst); Tnum result = Util.MergeTvars<Tnum>(tn1,tn2); Assert.AreEqual("{Dawn: 0; 1/1/2000: 1; 1/1/2001: 2; 1/1/2002: 3; 1/1/2003: Null}", result.Out); }
public void MergeTvars2() { Hval unst = new Hval(null,Hstate.Null); Tnum tn1 = new Tnum(unst); Tnum tn2 = new Tnum(0); tn2.AddState(Date(2000,1,1), unst); tn2.AddState(Date(2001,1,1), 2); tn2.AddState(Date(2002,1,1), unst); Assert.AreEqual(tn2.Out, Util.MergeTvars<Tnum>(tn1,tn2).Out); }
private static Tnum tnv() { Tnum result = new Tnum(Hstate.Stub); result.AddState(Date(2001,1,1), Hstate.Uncertain); result.AddState(Date(2002,1,1), Hstate.Unstated); return result; }
public void Test39b() { Tnum t = new Tnum(0); t.AddState(new DateTime(2000,1,1), 7); Tnum res = t / 7; Assert.AreEqual("{Dawn: 0; 1/1/2000: 1}", res.Out); }
public void TemporalMath2() { Tnum x = new Tnum(10); x.AddState(new DateTime(2000,1,1), 1); Assert.AreEqual("{Dawn: 9; 1/1/2000: 0}", (x-1).Out ); }
// Set up a new test private static void NewTest() { Tnum valA = new Tnum(1); Tnum valB = new Tnum(2); Tnum valC = new Tnum(3); valC.AddState(new DateTime(2011,1,14), 4); Tbool ownA = new Tbool(true); Tbool ownB = new Tbool(true); ownB.AddState(new DateTime(2008,1,1), false); Tbool ownC = new Tbool(false); ownC.AddState(new DateTime(2005,1,1), true); Facts.Clear(); Facts.Assert(A, "ValueOf", valA); Facts.Assert(B, "ValueOf", valB); Facts.Assert(C, "ValueOf", valC); Facts.Assert(M, "Owns", A, ownA); Facts.Assert(M, "Owns", B, ownB); Facts.Assert(M, "Owns", C, ownC); }
public void HasUndefinedIntervals3() { Tnum r = new Tnum(7); r.AddState(Date(2000,1,1), 6); r.AddState(Date(2001,1,1), 2); Assert.AreEqual(false, Util.HasUndefinedIntervals(r)); }
private static Tnum Tn1() { Tnum tn = new Tnum(0); tn.AddState(Date(2010, 01, 01), 7000); tn.AddState(Date(2013, 01, 01), 6000); tn.AddState(Date(2015, 01, 01), 5090); tn.AddState(Date(2017, 01, 01), 4470); return tn; }
/// <summary> /// Creates a Tnum from a string representing a time-varying value. /// </summary> /// <remarks> /// Sample input: {2012-01-01: 5; Time.DawnOf: $55,000.01} /// </remarks> private static Tnum TnumFromTemporalString(string val) { if (val.StartsWith("{")) { Tnum result = new Tnum(); foreach (string s in TimeValuePairs(val)) { string[] parts = s.Split(new char[] {':'}); DateTime datePart = Convert.ToDateTime(parts[0].Trim().Replace("Dawn","1800-01-01")); decimal valPart = Convert.ToDecimal(parts[1].Trim(' ','$').Replace(",","")); result.AddState(datePart, valPart); } return result; } return new Tnum(val); }