示例#1
0
        void TestR3()//addition and deletion of key/value pairs
        {
            "Demonstrating Requirement #3".title();
            WriteLine();

            Write("\n --- Test addition of key/value pairs Start---");
            WriteLine();
            DBElement <int, string> elem1 = new DBElement <int, string>();

            elem1.name      = "element#1";//add a new key/value pairs
            elem1.descr     = "test element#1";
            elem1.timeStamp = DateTime.Now;
            elem1.children.AddRange(new List <int> {
                6, 8
            });
            elem1.payload = "elem#1's payload";
            elem1.showElement();
            db.insert(2, elem1);
            Write("\n\n Show key/value pairs in data base:\n");
            db.showDB();
            WriteLine();
            Write("\n --- Test addition of key/value pairs End---");
            WriteLine();

            Write("\n --- Test deletion of key/value pairs Start---");
            WriteLine();
            db.delete(1);//delete an existing key/value pairs
            Write("\n\n Show key/value pairs in data base:\n");
            db.showDB();
            WriteLine();
            db.delete(100);//try to delete a key/value pairs that doesn't exist
            Write("\n --- Test deletion of key/value pairs End---");
            WriteLine();
        }
示例#2
0
        static void Main(string[] args)
        {
            "Testing DBElement Package".title('=');
            WriteLine();

            Write("\n --- Test DBElement<int,string> ---");
            WriteLine();

            DBElement <int, string> elem1 = new DBElement <int, string>();

            Write(elem1.showElement <int, string>());
            WriteLine();

            DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord");

            elem2.payload = "The Empire strikes back!";
            Write(elem2.showElement <int, string>());
            WriteLine();

            var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot");

            elem3.children = new List <int> {
                1, 2, 7
            };
            elem3.payload = "X-Wing fighter in swamp - Oh oh!";
            Write(elem3.showElement <int, string>());
            WriteLine();

            Write("\n --- Test DBElement<string,List<string>> ---");
            WriteLine();

            DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >();

            newelem1.name    = "newelem1";
            newelem1.descr   = "test new type";
            newelem1.payload = new List <string> {
                "one", "two", "three"
            };
            Write(newelem1.showElement <string, List <string>, string>());
            WriteLine();

            DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >();

            newerelem1.name  = "newerelem1";
            newerelem1.descr = "same stuff";
            newerelem1.children.Add("first_key");
            newerelem1.children.Add("second_key");
            newerelem1.payload = new List <string> {
                "alpha", "beta", "gamma"
            };
            newerelem1.payload.AddRange(new[] { "delta", "epsilon" });
            Write(newerelem1.showElement <string, List <string>, string>());
            WriteLine();

            Write("\n\n");
        }
示例#3
0
 /*
  * show DB factory data.
  */
 public void showDBFactory()
 {
     foreach (Key key in dbStore.Keys)
     {
         Value value = dbStore[key];
         DBElement<int, ListOfStrings> elem = value as DBElement<int, ListOfStrings>;
         Write("\n\n  -- key = {0} --", key);
         elem.showElement();
     }
 }
示例#4
0
        //----< write simple db elements out to Console >------------------

        public static void show <Key, Value, Data>(this DBEngine <Key, Value> db)
        {
            foreach (Key key in db.Keys())
            {
                Value value;
                db.getValue(key, out value);
                DBElement <Key, Data> elem = value as DBElement <Key, Data>;
                Write("\n\n  -- key = {0} --", key);
                Write(elem.showElement());
            }
        }
        //----< write simple db elements out to Console >------------------

        public static void showDictionaryData <Key, Value, Data>(this Dictionary <Key, Value> db)
        {
            foreach (Key key in db.Keys)
            {
                Value value;
                value = db[key];
                DBElement <int, List <string> > elem = value as DBElement <int, List <string> >;
                Write("\n\n  -- key = {0} --", key);
                Write(elem.showElement());
            }
        }
 //----< write enumerable db elements out to Console >--------------
 public static void show <Key, Value, Data, T>(this DBFactory <Key, Value> db)
     where Data : IEnumerable <T>
 {
     foreach (Key key in db.Keys())
     {
         Value value;
         db.getValue(key, out value);
         DBElement <Key, Data> elem = value as DBElement <Key, Data>;
         Write("\n\n  -- key = {0} --", key);
         Write(elem.showElement <Key, Data, T>());
     }
 }
示例#7
0
        void testR2()
        {
            "Demonstrating Requirement #2".title();
            DBElement <int, String> elem = new DBElement <int, string>();

            elem.name      = "text element";
            elem.descr     = "descr";
            elem.timeStamp = DateTime.Now;
            elem.payload   = "elem's payload";
            elem.children.AddRange(new [] { 1, 2, 3 });
            elem.showElement();
            db.insert(1, elem);
            db.showDB();
            WriteLine();
        }
示例#8
0
        //private DBEngine<int, DBElement<int, string>> db2 = new DBEngine<int, DBElement<int, string>>();

        void TestR2()
        {
            "Demonstrating Requirement #2".title();
            DBElement <int, string> elem = new DBElement <int, string>();

            elem.name      = "element";
            elem.descr     = "test element";
            elem.timeStamp = DateTime.Now;
            elem.children.AddRange(new List <int> {
                1, 2, 3
            });
            elem.payload = "elem's payload";
            elem.showElement();
            db.insert(1, elem);
            Write("\n\n Show key/value pairs in data base:\n");
            db.showDB();
            WriteLine();
        }
示例#9
0
        void TestR4() //support editing of value including the addition and/or deletion of relationships,
                      //editing text metadata and replacing an existing value's instance with a new instance

        {
            "Demonstrating Requirement #4".title();

            DBElement <int, string>  temp = new DBElement <int, string>();
            ItemEditor <int, string> editItem;

            if (db.containsKey(2))
            {
                db.getValue(2, out temp);
                Write("\n\n --- value before modified---\n");
                temp.showElement();
                editItem = new ItemEditor <int, string>(temp);
                editItem.nameEdit("newName!!");          //edit the name of the value with key 2
                editItem.descrEdit("new description!!"); //edit description
                editItem.dateTimeEdit();                 //update timeStamp
                editItem.addRelationship(18);            //add relationship
                editItem.deleteRelationship(6);          //delete relationship
                editItem.payloadEdit("new payload!!");   //modify payload

                DBElement <int, string> elemNew = new DBElement <int, string>();
                editItem.replaceWithInstance(out elemNew);        // replace an existing value's instance with a new instance
                temp = null;
                Write("\n\n --- value after modified---\n");
                elemNew.showElement();
                editItem = null;
            }

            else
            {
                Write("Value not found!");
            }

            //Write("\n\n Show key/value pairs in data base:\n");
            //db.showDB();
            WriteLine();
            WriteLine();
        }
示例#10
0
        void TestR2()
        {
            DBElement <int, string> elem = new DBElement <int, string>();

            elem.name      = "India";
            elem.descr     = "Country";
            elem.timeStamp = DateTime.Now;
            elem.children.AddRange(new List <int> {
                2, 3
            });
            elem.payload = "Famous cricket player";
            WriteLine();

            "1) The element is as shown below".title();
            elem.showElement();
            db.insert(1, elem);
            WriteLine();

            "2) The key Value pair is shown below".title();
            db.showDB();
            WriteLine();
        }
        void TestR4()
        {
            " Demonstrating Requirement #4 ".title('=');
            WriteLine();
            "Before edit of Key=2 and Key=4 values.".title('-');
            DBElement <int, ListOfStrings> oldElement = db1.Dictionary[2];

            oldElement.showElement();
            ItemEditor <int, ListOfStrings> itemEditor = new ItemEditor <int, ListOfStrings>();

            // Creates a DateTime for the local time.
            itemEditor.editByName(ref db1, 2, "edited name for key=2");
            itemEditor.editByChild(ref db1, 2, new List <int> {
                205, 206, 207, 208, 209, 210
            });
            itemEditor.editByDescr(ref db1, 2, "edited descr for key=2");
            DBElement <int, ListOfStrings> newElement123d = db1.Dictionary[2];

            newElement123d.showElement();
            itemEditor.editPayloadByListOfString(ref db1, 2, new List <string> {
                "CSE681_2_New", "SMA_2_New", "C#.net_2_New", "AI_2_New"
            });
            DateTime newTime = new DateTime(1990, 6, 15, 0, 0, 0);

            itemEditor.editByTime(ref db1, 4, newTime);
            DateTime newTime2 = new DateTime(1990, 6, 16, 0, 0, 0);

            itemEditor.editByTime(ref db1, 2, newTime2);
            "After edit of Key = 2 and Key = 4 values.".title('-');
            WriteLine();
            WriteLine("You can see in updated element, Name,description,children,time and payload attributes are changed.");
            DBElement <int, ListOfStrings> newElement1 = db1.Dictionary[2];
            DBElement <int, ListOfStrings> newElement2 = db1.Dictionary[4];

            newElement1.showElement();
            newElement2.showElement();
            WriteLine();
        }
示例#12
0
        static void Main(string[] args)
        {
            "Testing DBExtensions Package".title('=');
            WriteLine();

            Write("\n --- Test DBElement<int,string> ---");
            DBElement <int, string> elem1 = new DBElement <int, string>();

            elem1.payload = "a payload";
            Write(elem1.showElement <int, string>());

            DBEngine <int, DBElement <int, string> > dbs = new DBEngine <int, DBElement <int, string> >();

            dbs.insert(1, elem1);
            dbs.show <int, DBElement <int, string>, string>();
            WriteLine();

            Write("\n --- Test DBElement<string,List<string>> ---");
            DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >();

            newelem1.name     = "newelem1";
            newelem1.descr    = "test new type";
            newelem1.children = new List <string> {
                "Key1", "Key2"
            };
            newelem1.payload = new List <string> {
                "one", "two", "three"
            };
            Write(newelem1.showElement <string, List <string>, string>());

            DBEngine <string, DBElement <string, List <string> > > dbe = new DBEngine <string, DBElement <string, List <string> > >();

            dbe.insert("key1", newelem1);
            dbe.show <string, DBElement <string, List <string> >, List <string>, string>();

            Write("\n\n");
        }
示例#13
0
 public static void showEnumerableElement(this DBElement <string, List <string> > enumElement)
 {
     Console.Write(enumElement.showElement <string, List <string>, string>());
 }
        static void Main(string[] args)
        {
            "Testing Payload Wrapper".title('=');
            WriteLine();

            ListOfStrings los = new ListOfStrings();

            los.theWrappedData.AddRange(new List <string> {
                "one", "two", "three"
            });

            "showing List of strings:".title();
            foreach (string item in los.theWrappedData)
            {
                Write("\n  {0}", item);
            }
            WriteLine();

            "Output from PayloadWrapper.ToString()".title();
            Write("\n{0}", los.ToString());
            //WriteLine();

            "output from PayloadWrapper.ToXml()".title();
            Write("\n{0}", los.ToXml());
            WriteLine();

            "output from elem.showElement<string, ListOfStrings>()".title();
            DBElement <string, ListOfStrings> elem = new DBElement <string, ListOfStrings>();

            elem.name    = "test element";
            elem.descr   = "created to test PayloadWrapper";
            elem.payload = new ListOfStrings();
            elem.payload.theWrappedData = new List <string> {
                "alpha", "beta", "gamma", "delta", "epsilon"
            };
            Write(elem.showElement <string, ListOfStrings>());

            /////////////////////////////////////////////////////////////////////
            // The sequence of statements below should be turned into an
            // extension method: static public void clone(this List<string>)
            //
            "test cloning elem".title('=');
            WriteLine();
            DBElement <string, ListOfStrings> cloned = new DBElement <string, ListOfStrings>();

            cloned.name      = String.Copy(elem.name);
            cloned.descr     = String.Copy(elem.descr);
            cloned.timeStamp = DateTime.Parse(elem.timeStamp.ToString());
            cloned.children  = new List <string>();
            cloned.children.AddRange(elem.children);
            cloned.payload = elem.payload.clone() as ListOfStrings;
            "output from elem.showElement<string, ListOfStrings>()".title();
            Write(elem.showElement <string, ListOfStrings>());
            "output from cloned.showElement<string, ListOfStrings>()".title();
            Write(cloned.showElement <string, ListOfStrings>());

            //"Hashcodes are not reliable object identifiers".title();
            //Write(string.Format("\n  hashcode of elem           = {0}", elem.GetHashCode()));
            //Write(string.Format("\n  hashcode of elem.name      = {0}", elem.name.GetHashCode()));
            //Write(string.Format("\n  hashcode of elem.descr     = {0}", elem.descr.GetHashCode()));
            //Write(string.Format("\n  hashcode of elem.payload   = {0}", elem.payload.GetHashCode()));
            //WriteLine();

            //Write(string.Format("\n  hashcode of cloned         = {0}", cloned.GetHashCode()));
            //Write(string.Format("\n  hashcode of cloned.name    = {0}", cloned.name.GetHashCode()));
            //Write(string.Format("\n  hashcode of cloned.descr   = {0}", cloned.descr.GetHashCode()));
            //Write(string.Format("\n  hashcode of cloned.payload = {0}", cloned.payload.GetHashCode()));
            //WriteLine();

            "testing for equality immediately after cloning".title();
            showEquality(cloned.name, elem.name, "cloned.name vs. elem.name");
            showEquality(cloned.descr, elem.descr, "cloned.descr vs. elem.descr");
            showDateTimeEquality(cloned.timeStamp, elem.timeStamp, "cloned.timeStamp vs. elem.timeStamp");
            showListEquality(cloned.children, elem.children, "cloned.children vs. elem.children");
            showListEquality <string>(cloned.payload.theWrappedData, elem.payload.theWrappedData, "cloned.payload vs. elem.payload");
            WriteLine();

            "modifying clone's properties".title();
            WriteLine();
            cloned.name      = cloned.name + " modified";
            cloned.descr     = cloned.descr + " modified";
            cloned.timeStamp = DateTime.Today;
            cloned.children.AddRange(new List <string> {
                "key11", "key13"
            });
            cloned.payload.theWrappedData.AddRange(new List <string> {
                "zeta", "eta"
            });
            "output from elem.showElement<string, ListOfStrings>()".title();
            Write(elem.showElement <string, ListOfStrings>());
            "output from cloned.showElement<string, ListOfStrings>()".title();
            Write(cloned.showElement <string, ListOfStrings>());

            "Testing equality after modifying clone's values".title();
            showEquality(cloned.name, elem.name, "cloned.name vs. elem.name");
            showEquality(cloned.descr, elem.descr, "cloned.descr vs. elem.descr");
            showDateTimeEquality(cloned.timeStamp, elem.timeStamp, "cloned.timeStamp vs. elem.timeStamp");
            showListEquality(cloned.children, elem.children, "cloned.children vs. elem.children");
            showListEquality <string>(cloned.payload.theWrappedData, elem.payload.theWrappedData, "cloned.payload vs. elem.payload");

            Write("\n\n");
        }
 /// <summary>
 /// show element which has key as integer and element as ListOfString.
 /// </summary>
 /// <param name="element"></param>
 public static void showElement(this DBElement <int, ListOfStrings> element)
 {
     Console.Write(element.showElement <int, ListOfStrings>());
 }
示例#16
0
 public static void showElement(this DBElement <int, string> element)
 {
     Console.Write(element.showElement <int, string>());
 }
示例#17
0
        static void Main(string[] args)
        {
            "Testing DBEngine Package".title('=');;
            WriteLine();

            "Test db of scalar elements".title();
            WriteLine();

            DBElement <int, string> elem1 = new DBElement <int, string>();

            elem1.payload = "a payload";

            DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord");

            elem2.payload = "The Empire strikes back!";

            var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot");

            elem3.payload = "X-Wing fighter in swamp - Oh oh!";

            if (verbose)
            {
                Write("\n --- Test DBElement<int,string> ---");
                WriteLine();
                elem1.showElement();
                WriteLine();
                elem2.showElement();
                WriteLine();
                elem3.showElement();
                WriteLine();

                /* ElementFormatter is not ready for prime time yet */
                //Write(ElementFormatter.formatElement(elem1.showElement<int, string>(), false));
            }

            Write("\n --- Test DBEngine<int,DBElement<int,string>> ---");
            WriteLine();

            int        key    = 0;
            Func <int> keyGen = () => { ++key; return(key); };

            DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >();
            bool p1 = db.insert(keyGen(), elem1);
            bool p2 = db.insert(keyGen(), elem2);
            bool p3 = db.insert(keyGen(), elem3);

            if (p1 && p2 && p3)
            {
                Write("\n  all inserts succeeded");
            }
            else
            {
                Write("\n  at least one insert failed");
            }
            db.showDB();
            WriteLine();

            "Test db of enumerable elements".title();
            WriteLine();

            DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >();

            newelem1.name    = "newelem1";
            newelem1.descr   = "test new type";
            newelem1.payload = new List <string> {
                "one", "two", "three"
            };

            DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >();

            newerelem1.name    = "newerelem1";
            newerelem1.descr   = "better formatting";
            newerelem1.payload = new List <string> {
                "alpha", "beta", "gamma"
            };
            newerelem1.payload.Add("delta");
            newerelem1.payload.Add("epsilon");

            DBElement <string, List <string> > newerelem2 = new DBElement <string, List <string> >();

            newerelem2.name  = "newerelem2";
            newerelem2.descr = "better formatting";
            newerelem2.children.AddRange(new List <string> {
                "first", "second"
            });
            newerelem2.payload = new List <string> {
                "a", "b", "c"
            };
            newerelem2.payload.Add("d");
            newerelem2.payload.Add("e");

            if (verbose)
            {
                Write("\n --- Test DBElement<string,List<string>> ---");
                WriteLine();
                newelem1.showEnumerableElement();
                WriteLine();
                newerelem1.showEnumerableElement();
                WriteLine();
                newerelem2.showEnumerableElement();
                WriteLine();
            }

            Write("\n --- Test DBEngine<string,DBElement<string,List<string>>> ---");

            int           seed    = 0;
            string        skey    = seed.ToString();
            Func <string> skeyGen = () => {
                ++seed;
                skey = "string" + seed.ToString();
                skey = skey.GetHashCode().ToString();
                return(skey);
            };

            DBEngine <string, DBElement <string, List <string> > > newdb =
                new DBEngine <string, DBElement <string, List <string> > >();

            newdb.insert(skeyGen(), newelem1);
            newdb.insert(skeyGen(), newerelem1);
            newdb.insert(skeyGen(), newerelem2);
            newdb.showEnumerableDB();
            Write("\n\n");
        }
示例#18
0
        static void Main(string[] args)
        {
            "Testing DBEngine Package".title('=');
            WriteLine();

            Write("\n --- Test DBElement<int,string> ---");
            DBElement <int, string> elem1 = new DBElement <int, string>();

            elem1.payload = "a payload";
            Write(elem1.showElement <int, string>());
            WriteLine();

            DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord");

            elem2.payload = "The Empire strikes back!";
            Write(elem2.showElement <int, string>());
            WriteLine();

            var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot");

            elem3.children.AddRange(new List <int> {
                1, 5, 23
            });
            elem3.payload = "X-Wing fighter in swamp - Oh oh!";
            Write(elem3.showElement <int, string>());
            WriteLine();

            Write("\n --- Test DBEngine<int,DBElement<int,string>> ---");

            int        key    = 0;
            Func <int> keyGen = () => { ++key; return(key); };  // anonymous function to generate keys

            DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >();
            bool p1 = db.insert(keyGen(), elem1);
            bool p2 = db.insert(keyGen(), elem2);
            bool p3 = db.insert(keyGen(), elem3);

            if (p1 && p2 && p3)
            {
                Write("\n  all inserts succeeded");
            }
            else
            {
                Write("\n  at least one insert failed");
            }
            db.show <int, DBElement <int, string>, string>();
            WriteLine();

            Write("\n --- Test DBElement<string,List<string>> ---");
            DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >();

            newelem1.name    = "newelem1";
            newelem1.descr   = "test new type";
            newelem1.payload = new List <string> {
                "one", "two", "three"
            };
            Write(newelem1.showElement <string, List <string> >());
            WriteLine();

            Write("\n --- Test DBElement<string,List<string>> ---");
            DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >();

            newerelem1.name    = "newerelem1";
            newerelem1.descr   = "better formatting";
            newerelem1.payload = new List <string> {
                "alpha", "beta", "gamma"
            };
            newerelem1.payload.Add("delta");
            newerelem1.payload.Add("epsilon");
            Write(newerelem1.showElement <string, List <string>, string>());
            WriteLine();

            DBElement <string, List <string> > newerelem2 = new DBElement <string, List <string> >();

            newerelem2.name  = "newerelem2";
            newerelem2.descr = "better formatting";
            newerelem1.children.AddRange(new[] { "first", "second" });
            newerelem2.payload = new List <string> {
                "a", "b", "c"
            };
            newerelem2.payload.Add("d");
            newerelem2.payload.Add("e");
            Write(newerelem2.showElement <string, List <string>, string>());
            WriteLine();

            Write("\n --- Test DBEngine<string,DBElement<string,List<string>>> ---");

            int           seed    = 0;
            string        skey    = seed.ToString();
            Func <string> skeyGen = () =>
            {
                ++seed;
                skey = "string" + seed.ToString();
                skey = skey.GetHashCode().ToString();
                return(skey);
            };

            DBEngine <string, DBElement <string, List <string> > > newdb =
                new DBEngine <string, DBElement <string, List <string> > >();

            newdb.insert(skeyGen(), newerelem1);
            newdb.insert(skeyGen(), newerelem2);
            newdb.show <string, DBElement <string, List <string> >, List <string>, string>();
            WriteLine();

            "testing edits".title();
            db.show <int, DBElement <int, string>, string>();
            DBElement <int, string> editElement = new DBElement <int, string>();

            db.getValue(1, out editElement);
            editElement.showElement <int, string>();
            editElement.name  = "editedName";
            editElement.descr = "editedDescription";
            db.show <int, DBElement <int, string>, string>();
            Write("\n\n");
        }