Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        /// <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);
            }
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        /// <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 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 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 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 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);
 }
Esempio n. 33
0
        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);
 }
Esempio n. 35
0
        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);
        }
Esempio n. 36
0
        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);
        }
Esempio n. 37
0
 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;
 }
Esempio n. 38
0
        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);
        }
Esempio n. 39
0
 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);
        }
Esempio n. 41
0
        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));
        }
Esempio n. 42
0
 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;
 }
Esempio n. 43
0
        /// <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);
        }