public void CanSerializeToBson()
            {
                var events = new EventCollection(new[] { new FakeEvent("My Property") });
                var bson = WriteBson(events);

                Validate(bson, "pAAAAAMwAJwAAAACJHR5cGUAcgAAAFRlc3QuU3BhcmsuU2VyaWFsaXphdGlvbi5Db252ZXJ0ZXJzLlVzaW5nRXZlbnRDb2xsZWN0aW9uQ29udmVydGVyLkZha2VFdmVudCwgU3BhcmsuU2VyaWFsaXphdGlvbi5OZXd0b25zb2Z0LlRlc3RzAAJQcm9wZXJ0eQAMAAAATXkgUHJvcGVydHkAAAA=");
            }
 /// <summary>
 /// Primary Constructor
 /// </summary>
 /// <param name="cluster">An EventCollection representing a cluster</param>
 /// <param name="clusterid">The ID of the cluster</param>
 public ClusterAnalysis(EventCollection cluster, int clusterid)
 {
     Cluster = cluster;
       ClusterID = clusterid;
       DropAnalysis = new DropAnalysis(Cluster);
       FailAnalysis = new FailAnalysis(Cluster);
 }
Example #3
0
		protected void ExpectEvents (int count, Atk.Role role, string evType)
		{
			if (events == null)
				events = EventMonitor.Pause ();
			EventCollection evs = events.FindByRole (role).FindByType (evType);
			string eventsInXml = String.Format (" events in XML: {0}", Environment.NewLine + events.OriginalGrossXml);
			Assert.AreEqual (count, evs.Count, "bad number of " + evType + " events: " + eventsInXml);
		}
        /// <summary>
        /// Initializes a new instance of <see cref="CommitData"/>
        /// </summary>
        /// <param name="headers">The headers associated with this commit.</param>
        /// <param name="events">The events associated with this commit.</param>
        public CommitData(HeaderCollection headers, EventCollection events)
        {
            Verify.NotNull(headers, nameof(headers));
            Verify.NotNull(events, nameof(events));

            Headers = headers;
            Events = events;
        }
            public void CanMutateUnderlyingCollection()
            {
                var list = new List<Event>();
                var events = new EventCollection(list);

                list.Add(new FakeEvent());

                Assert.Equal(1, events.Count);
            }
            public void CanSerializeToJson()
            {
                var events = new EventCollection(new[] { new FakeEvent("My Property") });
                var json = WriteJson(events);

                Validate(json, @"
                [
                  {
                ""$type"": ""Test.Spark.Serialization.Converters.UsingEventCollectionConverter.FakeEvent, Spark.Serialization.Newtonsoft.Tests"",
                ""Property"": ""My Property""
                  }
                ]");
            }
Example #7
0
 /// <summary>
 /// Generates a crowd with the given arguments.
 /// </summary>
 /// <param name="criteria">The crowd's criteria</param>
 /// <param name="isStatic">Are the crowd's members static?</param>
 /// <param name="collection">The crowd's event scheduler.</param>
 public SmartCrowd GenerateCrowd(ISmartCrowdCriteria criteria, bool isStatic, EventCollection collection)
 {
     SmartCrowd instance = new GameObject(NamePrefix + currentCrowdIndex).AddComponent<SmartCrowd>();
     instance.tag = "Smart Object";
     if (Parent != null)
     {
         instance.transform.parent = Parent.transform;
     }
     instance.Initialize(criteria, isStatic, collection);
     instance.Portrait = GetPortrait(currentCrowdIndex);
     currentCrowdIndex++;
     return instance;
 }
Example #8
0
        /// <summary>
        /// Initializes a new instance of <see cref="Commit"/>.
        /// </summary>
        /// <param name="id">The unique commit id.</param>
        /// <param name="timestamp">The <see cref="DateTime"/> when the snapshot was persisted.</param>
        /// <param name="correlationId">The correlation id.</param>
        /// <param name="streamId">The event stream id.</param>
        /// <param name="version">The event stream revision.</param>
        /// <param name="headers">The optional set of headers associated with this commit.</param>
        /// <param name="events">The optional set of events associated with this commit.</param>
        internal Commit(Int64? id, DateTime timestamp, Guid correlationId, Guid streamId, Int32 version, HeaderCollection headers, EventCollection events)
        {
            Verify.NotEqual(Guid.Empty, correlationId, nameof(correlationId));
            Verify.NotEqual(Guid.Empty, streamId, nameof(streamId));
            Verify.GreaterThan(0, version, nameof(version));

            Id = id;
            Timestamp = timestamp;
            CorrelationId = correlationId;
            StreamId = streamId;
            Version = version;
            Events = events ?? EventCollection.Empty;
            Headers = headers ?? HeaderCollection.Empty;
        }
 public void Initalise()
 {
     // Read in a Sample KML File
       KMLReader reader = new KMLReader(ROOT_DIR + "data\\L_wk32_drops.kml");
       // Obtain all the events
       EventCollection collection = reader.GetCallLogs();
       // Cluster the Events
       DBSCAN scan = new DBSCAN(collection);
       scan.Analyse();
       // Get a copy of the Clustered Events
       Clusters = scan.Clusters;
       // Get a copy of the Noise Events
       Noise = scan.Noise;
       // Make a new TEMP dir
       Directory.CreateDirectory(OUTPUT_DIR);
 }
 private EventCollection GenerateCluster(double latlower, double latupper, double longlower, double longupper, int size)
 {
     // Initalise a new EventCollection
       EventCollection collection = new EventCollection();
       // Initalise a new Random number generator
       Random random = new Random();
       // Create size number of Coordinates
       for (int i = 0; i < size; i++)
       {
     // Generate a Longitude
     double longitude = random.NextDouble() * (longupper - longlower) + longlower;
     // Generate a Latitude
     double latitude = random.NextDouble() * (latupper - latlower) + latlower;
     // Setup a Test Event - it doesn't matter if its a drop, failure or success
     Drop evt = new Drop();
     evt.Coordinate = new Coordinate(longitude, latitude);
     // Add to the collection
     collection.Add(evt);
       }
       // return the collection of events
       return collection;
 }
        public void Initalise()
        {
            // Initialise an EventCollection
              collection = new EventCollection();

              // Add four Events in the shape of a square
              Drop drop1 = new Drop();
              drop1.Coordinate = new Coordinate(10, 10, 0);
              collection.Add(drop1);

              Drop drop2 = new Drop();
              drop2.Coordinate = new Coordinate(10, 20, 0);
              collection.Add(drop2);

              Fail fail1 = new Fail();
              fail1.Coordinate = new Coordinate(20, 10, 0);
              collection.Add(fail1);

              Fail fail2 = new Fail();
              fail2.Coordinate = new Coordinate(20, 20, 0);
              collection.Add(fail2);
        }
        public void AnalyseTest()
        {
            // Setup a new Event Collection
              EventCollection collection = new EventCollection();

              // Add 4 Clusters
              collection.AddRange(GenerateCluster(51.0, 51.1, -21.0, -21.1, 10));
              collection.AddRange(GenerateCluster(41.0, 41.1, -11.0, -11.1, 10));
              collection.AddRange(GenerateCluster(31.0, 31.1, -1.0, -1.1, 10));
              collection.AddRange(GenerateCluster(21.0, 21.1, 1.0, 1.1, 10));

              // Cluster the data
              DBSCAN scan = new DBSCAN(collection, 5);
              scan.Analyse();

              // Ensure that there are 4 clusters
              Assert.AreEqual(4, scan.Clusters.Count);

              // Esnure that there are 10 objects within each cluster
              Assert.AreEqual(10, scan.Clusters[0].Count);
              Assert.AreEqual(10, scan.Clusters[1].Count);
              Assert.AreEqual(10, scan.Clusters[2].Count);
              Assert.AreEqual(10, scan.Clusters[3].Count);
        }
Example #13
0
        public Hiding(Process process, EventCollection alphabets)
        {
            if (process is Hiding)
            {
                Process = (process as Hiding).Process;
                List<Event> events = new List<Event>((process as Hiding).HidingAlphabets);

                foreach (Event item in alphabets)
                {
                    if (!events.Contains(item))
                    {
                        events.Add(item);
                    }
                }

                HidingAlphabets = new EventCollection(events);
            }
            else {
                Process = process;
                HidingAlphabets = alphabets;
            }

            ProcessID = DataStore.DataManager.InitializeProcessID(Constants.HIDING + Process.ProcessID + Constants.SEPARATOR + HidingAlphabets.ProcessID);
        }
Example #14
0
		protected void StartEventMonitor ()
		{
			events = null;
			EventMonitor.Start ();
		}
Example #15
0
        public void TestInterfacedEvents()
        {
            EventCollection     events       = EventCollectionFactory.GetSetFiveInterfaces();
            CaseList            testCaseList = new CaseList();
            EventExpressionCase testCase     = null;

            testCase = new EventExpressionCase("c=" + INTERFACE_C);
            testCase.Add("e1", "c", events.GetEvent("e1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("baseab=" + INTERFACE_BASE_AB);
            testCase.Add("e2", "baseab", events.GetEvent("e2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_A);
            testCase.Add("e2", "a", events.GetEvent("e2"));
            testCase.Add("e3", "a", events.GetEvent("e3"));
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCase.Add("e13", "a", events.GetEvent("e13"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_B);
            testCase.Add("e2", "a", events.GetEvent("e2"));
            testCase.Add("e4", "a", events.GetEvent("e4"));
            testCase.Add("e6", "a", events.GetEvent("e6"));
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_B + "(B='B1')");
            testCase.Add("e2", "a", events.GetEvent("e2"));
            testCase.Add("e4", "a", events.GetEvent("e4"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_A + "(A='A3')");
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_C + "(C='C2')");
            testCase.Add("e6", "a", events.GetEvent("e6"));
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_C + "(C='C1')");
            testCase.Add("e1", "a", events.GetEvent("e1"));
            testCase.Add("e2", "a", events.GetEvent("e2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_D + "(D='D1')");
            testCase.Add("e5", "a", events.GetEvent("e5"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_BASE_D + "(BaseD='BaseD')");
            testCase.Add("e5", "a", events.GetEvent("e5"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_BASE_D_BASE + "(BaseDBase='BaseDBase')");
            testCase.Add("e5", "a", events.GetEvent("e5"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_D + "(D='D1', BaseD='BaseD', BaseDBase='BaseDBase')");
            testCase.Add("e5", "a", events.GetEvent("e5"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + INTERFACE_BASE_D + "(BaseD='BaseD', BaseDBase='BaseDBase')");
            testCase.Add("e5", "a", events.GetEvent("e5"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + SUPER_G);
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCase.Add("e13", "a", events.GetEvent("e13"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + SUPER_G + "(G='G1')");
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + SUPER_G + "(BaseAB='BaseAB5')");
            testCase.Add("e13", "a", events.GetEvent("e13"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + SUPER_G + "(BaseAB='BaseAB4', G='G1', A='A3')");
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + SUPER_G_IMPL + "(BaseAB='BaseAB4', G='G1', A='A3', B='B4', C='C2')");
            testCase.Add("e12", "a", events.GetEvent("e12"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_BASE);
            testCase.Add("e8", "a", events.GetEvent("e8"));
            testCase.Add("e9", "a", events.GetEvent("e9"));
            testCase.Add("e10", "a", events.GetEvent("e10"));
            testCase.Add("e11", "a", events.GetEvent("e11"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_ONE);
            testCase.Add("e8", "a", events.GetEvent("e8"));
            testCase.Add("e9", "a", events.GetEvent("e9"));
            testCase.Add("e10", "a", events.GetEvent("e10"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_ONEA);
            testCase.Add("e8", "a", events.GetEvent("e8"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_ONEB);
            testCase.Add("e9", "a", events.GetEvent("e9"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_BASE + "(Val='OB1')");
            testCase.Add("e9", "a", events.GetEvent("e9"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_BASE + "(Val='O3')");
            testCase.Add("e10", "a", events.GetEvent("e10"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_BASE + "(Val='OBase')");
            testCase.Add("e11", "a", events.GetEvent("e11"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_BASE + "(Val='O2')");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_ONE + "(Val='OA1')");
            testCase.Add("e8", "a", events.GetEvent("e8"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + OVERRIDE_ONE + "(Val='O3')");
            testCase.Add("e10", "a", events.GetEvent("e10"));
            testCaseList.AddTest(testCase);

            PatternTestHarness util = new PatternTestHarness(events, testCaseList, GetType(), GetType().FullName);

            util.RunTest();
        }
 /// <summary>
 /// Primary Constructor
 /// </summary>
 /// <param name="cluster">EventCollection of dropped events</param>
 public DropAnalysis(EventCollection cluster)
 {
     Cluster = new EventCollection(cluster.GetEvents("Drop"));
 }
        /// <summary>
        /// This method will return an event collection of events from the given KML 
        /// file in the constructor of this object.
        /// </summary>
        /// <returns>A collection of events</returns>
        public EventCollection GetCallLogs()
        {
            EventCollection calls = new EventCollection();
              while (reader.Read())
              {
            // Get the Coordinate
            Coordinate coordinate = ReadCoordinate();

            // Move to the ExtendedData Space
            reader.ReadToNextSibling("ExtendedData");

            //Get the additional data elements
            String device = GetSimpleData("device");
            String pin = GetSimpleData("pin");
            String timestamp = GetSimpleData("timestamp");
            String reference = GetSimpleData("reference");
            String type = GetSimpleData("type");
            String start_rat = GetSimpleData("start_rat");
            String end_rat = GetSimpleData("end_rat");
            String start_mix_band = GetSimpleData("start_mix_band");
            String end_mix_band = GetSimpleData("end_mix_band");
            String start_rrc_state = GetSimpleData("start_rrc_state");

            // Create a new Call Log Object
            Event callLog = null;

            // Force the call log to be a type
            switch (type)
            {
              case "Call Drop":
            callLog = new Drop();
            break;

              case "Setup Failure":
            callLog = new Fail();
            break;

              case "Call Success":
            callLog = new Success();
            break;

              default:
            break;
            }

            // Add additional attributes & add to the list
            if (callLog != null)
            {
              callLog.Device = device;
              callLog.Pin = pin;
              callLog.Timestamp = DateTime.Parse(timestamp);
              callLog.Reference = Boolean.Parse(reference);
              callLog.StartRat = start_rat;
              callLog.EndRat = end_rat;
              callLog.StartMixBand = start_mix_band;
              callLog.EndMixBand = end_mix_band;
              callLog.StartRRCState = start_rrc_state;
              callLog.Coordinate = coordinate;

              calls.Add(callLog);
            }
              }

              return calls;
        }
 //A method which adds a new Event to the list of events.
 public void AddEvent(Event eventevent)
 {
     EventCollection.Add(eventevent);
 }
Example #19
0
        public void TestOp()
        {
            EventCollection     events       = EventCollectionFactory.GetEventSetOne(0, 1000);
            CaseList            testCaseList = new CaseList();
            EventExpressionCase testCase;

            testCase = new EventExpressionCase("a=A(id='A2') until D");
            testCase.Add("D1", "a[0]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("a=A until D");
            testCase.Add("D1", "a[0]", events.GetEvent("A1"), "a[1]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=B until a=A");
            testCase.Add("A1", "b[0]", null, "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=B until D(id='D3')");
            testCase.Add("D3", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(a=A or b=B) until d=D(id='D3')");
            testCase.Add("D3", new Object[][] {
                new Object[] { "a[0]", events.GetEvent("A1") },
                new Object[] { "a[1]", events.GetEvent("A2") },
                new Object[] { "b[0]", events.GetEvent("B1") },
                new Object[] { "b[1]", events.GetEvent("B2") },
                new Object[] { "b[2]", events.GetEvent("B3") },
                new Object[] { "d", events.GetEvent("D3") }
            });
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(a=A or b=B) until (g=G or d=D)");
            testCase.Add("D1", new Object[][] {
                new Object[] { "a[0]", events.GetEvent("A1") },
                new Object[] { "a[1]", events.GetEvent("A2") },
                new Object[] { "b[0]", events.GetEvent("B1") },
                new Object[] { "b[1]", events.GetEvent("B2") },
                new Object[] { "d", events.GetEvent("D1") }
            });
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(d=D) until a=A(id='A1')");
            testCase.Add("A1");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("a=A until G(id='GX')");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2] a=A");
            testCase.Add("A2", "a[0]", events.GetEvent("A1"), "a[1]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2:2] a=A");
            testCase.Add("A2", "a[0]", events.GetEvent("A1"), "a[1]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1] a=A");
            testCase.Add("A1", "a[0]", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:1] a=A");
            testCase.Add("A1", "a[0]", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[3] a=A");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[3] b=B");
            testCase.Add("B3", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[4] (a=A or b=B)");
            testCase.Add("A2", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "a[0]", events.GetEvent("A1"), "a[1]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            // the until ends the matching returning permanently false
            testCase = new EventExpressionCase("[2] b=B until a=A(id='A1')");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2] b=B until c=C");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2:2] b=B until g=G(id='G1')");
            testCase.Add("B2", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[:4] b=B until g=G(id='G1')");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"), "g", events.GetEvent("G1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[:3] b=B until g=G(id='G1')");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"), "g", events.GetEvent("G1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[:2] b=B until g=G(id='G1')");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "g", events.GetEvent("G1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[:1] b=B until g=G(id='G1')");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "g", events.GetEvent("G1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[:1] b=B until a=A(id='A1')");
            testCase.Add("A1", "b[0]", null, "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:] b=B until g=G(id='G1')");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"), "g", events.GetEvent("G1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:] b=B until a=A");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2:] b=B until a=A(id='A2')");
            testCase.Add("A2", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2:] b=B until c=C");
            testCaseList.AddTest(testCase);

            // same event triggering both clauses, until always wins, match does not count
            testCase = new EventExpressionCase("[2:] b=B until e=B(id='B2')");
            testCaseList.AddTest(testCase);

            // same event triggering both clauses, until always wins, match does not count
            testCase = new EventExpressionCase("[1:] b=B until e=B(id='B1')");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:2] b=B until a=A(id='A2')");
            testCase.Add("A2", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", null, "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:3] b=B until G");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"), "b[3]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:2] b=B until G");
            testCase.Add("G1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:10] b=B until F");
            testCase.Add("F1", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[1:10] b=B until C");
            testCase.Add("C1", "b[0]", events.GetEvent("B1"), "b[1]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[0:1] b=B until C");
            testCase.Add("C1", "b[0]", events.GetEvent("B1"), "b[1]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("c=C -> [2] b=B -> d=D");
            testCase.Add("D3", "c", events.GetEvent("C1"), "b[0]", events.GetEvent("B2"), "b[1]", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[3] d=D or [3] b=B");
            testCase.Add("B3", "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"), "b[2]", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[3] d=D or [4] b=B");
            testCase.Add("D3", "d[0]", events.GetEvent("D1"), "d[1]", events.GetEvent("D2"), "d[2]", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2] d=D and [2] b=B");
            testCase.Add("D2", "d[0]", events.GetEvent("D1"), "d[1]", events.GetEvent("D2"), "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("d=D until timer:interval(7 sec)");
            testCase.Add("E1", "d[0]", events.GetEvent("D1"), "d[1]", null, "d[2]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every (d=D until b=B)");
            testCase.Add("B1", "d[0]", null, "b", events.GetEvent("B1"));
            testCase.Add("B2", "d[0]", null, "b", events.GetEvent("B2"));
            testCase.Add("B3", "d[0]", events.GetEvent("D1"), "d[1]", events.GetEvent("D2"), "d[2]", null, "b", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            // note precendence: every is higher then until
            testCase = new EventExpressionCase("every d=D until b=B");
            testCase.Add("B1", "d[0]", null, "b", events.GetEvent("B1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(every d=D) until b=B");
            testCase.Add("B1", "d[0]", null, "b", events.GetEvent("B1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("a=A until (every (timer:interval(6 sec) and not A))");
            testCase.Add("G1", "a[0]", events.GetEvent("A1"), "a[1]", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("A until (every (timer:interval(7 sec) and not A))");
            testCase.Add("D3");
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[2] (a=A or b=B)");
            testCase.Add("B1", "a[0]", events.GetEvent("A1"), "b[0]", events.GetEvent("B1"), "b[1]", null);
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every [2] a=A");
            testCase.Add("A2", new Object[][] {
                new Object[] { "a[0]", events.GetEvent("A1") },
                new Object[] { "a[1]", events.GetEvent("A2") },
            });
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every [2] a=A until d=D");  // every has Precedence; ESPER-339
            testCase.Add("D1", new Object[][] {
                new Object[] { "a[0]", events.GetEvent("A1") },
                new Object[] { "a[1]", events.GetEvent("A2") },
                new Object[] { "d", events.GetEvent("D1") },
            });
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("[3] (a=A or b=B)");
            testCase.Add("B2", "a[0]", events.GetEvent("A1"), "b[0]", events.GetEvent("B1"), "b[1]", events.GetEvent("B2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(a=A until b=B) until c=C");
            testCase.Add("C1", "a[0]", events.GetEvent("A1"), "b[0]", events.GetEvent("B1"), "c", events.GetEvent("C1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(a=A until b=B) until g=G");
            testCase.Add("G1", new Object[][] { new Object[] { "a[0]", events.GetEvent("A1") }, new Object[] { "b[0]", events.GetEvent("B1") },
                                                new Object[] { "a[1]", events.GetEvent("A2") }, new Object[] { "b[1]", events.GetEvent("B2") },
                                                new Object[] { "b[2]", events.GetEvent("B3") },
                                                new Object[] { "g", events.GetEvent("G1") } });
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("B until not B");
            testCaseList.AddTest(testCase);

            PatternTestHarness util = new PatternTestHarness(events, testCaseList, GetType(), GetType().FullName);

            util.RunTest();
        }
Example #20
0
        public void TestOp()
        {
            EventCollection events       = EventCollectionFactory.GetEventSetOne(0, 1000);
            var             testCaseList = new CaseList();

            var testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " -> (d=" + EVENT_D_CLASS + " or not d=" + EVENT_D_CLASS + ")");

            testCase.Add("B1", "b", events.GetEvent("B1"), "d", null);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("b=" + EVENT_B_CLASS + " -[1000]> (d=" + EVENT_D_CLASS + " or not d=" +
                                        EVENT_D_CLASS + ")");
            testCase.Add("B1", "b", events.GetEvent("B1"), "d", null);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " -> every d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " -> d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " -> not d=" + EVENT_D_CLASS);
            testCase.Add("B1", "b", events.GetEvent("B1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " -[1000]> not d=" + EVENT_D_CLASS);
            testCase.Add("B1", "b", events.GetEvent("B1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every b=" + EVENT_B_CLASS + " -> every d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D2", "b", events.GetEvent("B2"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B2"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every b=" + EVENT_B_CLASS + " -> d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every b=" + EVENT_B_CLASS + " -[10]> d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every (b=" + EVENT_B_CLASS + " -> every d=" + EVENT_D_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("every (a_1=" + EVENT_A_CLASS + "() -> b=" + EVENT_B_CLASS + " -> a_2=" +
                                        EVENT_A_CLASS + ")");
            testCase.Add("A2", "a_1", events.GetEvent("A1"), "b", events.GetEvent("B1"), "a_2", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("c=" + EVENT_C_CLASS + "() -> d=" + EVENT_D_CLASS + " -> a=" + EVENT_A_CLASS);
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("every (a_1=" + EVENT_A_CLASS + "() -> b=" + EVENT_B_CLASS + "() -> a_2=" +
                                        EVENT_A_CLASS + "())");
            testCase.Add("A2", "a_1", events.GetEvent("A1"), "b", events.GetEvent("B1"), "a_2", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("every (a_1=" + EVENT_A_CLASS + "() -[10]> b=" + EVENT_B_CLASS +
                                        "() -[10]> a_2=" + EVENT_A_CLASS + "())");
            testCase.Add("A2", "a_1", events.GetEvent("A1"), "b", events.GetEvent("B1"), "a_2", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every ( every a=" + EVENT_A_CLASS + " -> every b=" + EVENT_B_CLASS + ")");
            testCase.Add("B1", "a", events.GetEvent("A1"), "b", events.GetEvent("B1"));
            testCase.Add("B2", "a", events.GetEvent("A1"), "b", events.GetEvent("B2"));
            testCase.Add("B3", "a", events.GetEvent("A1"), "b", events.GetEvent("B3"));
            testCase.Add("B3", "a", events.GetEvent("A2"), "b", events.GetEvent("B3"));
            testCase.Add("B3", "a", events.GetEvent("A2"), "b", events.GetEvent("B3"));
            testCase.Add("B3", "a", events.GetEvent("A2"), "b", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every (a=" + EVENT_A_CLASS + "() -> every b=" + EVENT_B_CLASS + "())");
            testCase.Add("B1", "a", events.GetEvent("A1"), "b", events.GetEvent("B1"));
            testCase.Add("B2", "a", events.GetEvent("A1"), "b", events.GetEvent("B2"));
            testCase.Add("B3", "a", events.GetEvent("A1"), "b", events.GetEvent("B3"));
            testCase.Add("B3", "a", events.GetEvent("A2"), "b", events.GetEvent("B3"));
            testCase.Add("B3", "a", events.GetEvent("A2"), "b", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            var util = new PatternTestHarness(events, testCaseList, GetType(), GetType().FullName);

            util.RunTest();
        }
 /// <summary>
 /// Primary Constructor
 /// </summary>
 public MultiAnalysis()
 {
     Events = new EventCollection();
 }
Example #22
0
 /// <summary>
 /// This method will return all coordinates within C's eps-neighbourhood.
 /// </summary>
 /// <param name="c">The centroid coordinate</param>
 /// <returns>A list of neighbouring coordinates</returns>
 private EventCollection GetRegion(Event evt)
 {
     // Collection of neighbouring coordinates
       EventCollection neighbours = new EventCollection();
       // Square the Epsilon (radius) to get the diameter of the neighbourhood
       double eps = Epsilon * Epsilon;
       // Loop over all coordinates
       foreach (Event neighbour in Calls)
       {
     // Calculate the distance of the two coordinates
     double distance = Distance.haversine(evt.Coordinate, neighbour.Coordinate);
     // Class as a neighbour if it falls in the 'catchment area'
     if (eps >= distance)
     {
       neighbours.Add(neighbour);
     }
       }
       return neighbours;
 }
Example #23
0
        public String GetHtmlContent(string searchText, String data, String sense, Object source, Dictionary <String, String> uniqueLinks)
        {
            searchText = HttpUtility.UrlDecode(searchText);

            if (source == null)
            {
                source = this.GetSource(searchText, data);
            }

            if (source == null)
            {
                throw new ArgumentNullException("Source is NULL");
            }

            this.collection = source as EventCollection;
            if (this.collection == null)
            {
                throw new InvalidCastException("Source is not of correct type");
            }

            bool   hasData = false;
            String html    = String.Empty;

            if (this.collection.Events.Count > 0)
            {
                hasData = true;
                html   += "<td id=\"tdEventful\" style=\"width: 100%;vertical-align: top\">";
                html   += "   <table style=\"width: 100%\" cellpadding=\"0\" cellspacing=\"0\">";
                html   += "       <tr>";
                html   += "           <td style=\"border-bottom: dotted 1px Silver; width: 100%; color: Black; font-family: Calibri;font-size: 16px;\">";
                html   += "               <b>E</b>vent(s)&nbsp;<a target=\"_blank\" href=\"http://eventful.com\" style=\"font-size:small;color:green;text-decoration:none;font-family:Calibri\">";
                html   += "                   source: eventful";
                html   += "               </a>";
                html   += "           </td>";
                html   += "       </tr>";
                html   += "       <tr>";
                html   += "           <td align=\"left\">";
                html   += "               <table align=\"left\" style=\"width: 100%;height:50px;font-family:Calibri\" cellpadding=\"0\" cellspacing=\"0\">";

                foreach (EEvent evnt in this.collection.Events)
                {
                    DateTime start = DateTime.MaxValue;
                    String   title = String.IsNullOrEmpty(evnt.Title) ? evnt.Description : evnt.Title;
                    if (DateTime.TryParse(evnt.StartTime, out start))
                    {
                        title += "<span style=\"font-size:smallest\"><b>&nbsp;&nbsp;(" + start.ToString("d MMM, HH:mm") + ")</b></span>";
                    }
                    html += "               <tr>";
                    html += "                   <td style=\"width: 41px;height:41px;;vertical-align:top;\" align=\"center\">";
                    html += "                       <a href=\"" + evnt.UrlLink + "\" style=\"text-decoration:none\"";
                    html += "                           <img style=\"border:none;width: 40px;height:40px;\" src=\"" + evnt.ImageThumb + "\" alt=\"event\" />";
                    html += "                       </a>";
                    html += "                   </td>";
                    html += "                   <td style=\"width: 5px;\">&nbsp;</td>";
                    html += "                   <td style=\"vertical-align:top;font-family:Calibri;font-size:14px;\" align=\"left\">";
                    html += title;
                    html += "                   </td>";
                    html += "               </tr><tr><td colspan=\"3\" style=\"height:3px;border-top:dotted 1px Silver;\"></td></tr>";
                }

                html += "               </table>";
                html += "            </td>";
                html += "       </tr>";
                html += "       <tr><td align=\"right\"><a href=\"http://eventful.com/" + searchText + "\" style=\"font-size:12px;;font-family:Calibri\">more events</a></td></tr>";
                html += "       <tr><td style=\"height:2px;\"></td></tr>";
                html += "   </table>";
                html += "</td>";
            }
            return(hasData ? html : String.Empty);
        }
 /// <summary>
 /// Primary Constructor
 /// </summary>
 /// <param name="cluster">EventCollection of failed events</param>
 public FailAnalysis(EventCollection cluster)
 {
     Cluster = new EventCollection(cluster.GetEvents("Fail"));
 }
 /// <summary>
 /// Creates an EventCollection from the given input. If saveCollection is true, it also
 /// makes sure to save the returned EventCollection for later use.
 /// </summary>
 public EventCollection ToEventCollection(bool saveCollection)
 {
     this.AdaptProbabilities();
     SchedulableEvent[] events = new SchedulableEvent[allEvents.Where((SchedulerEventArguments arg) => arg.IsSelected).Count()];
     int index = 0;
     foreach (SchedulerEventArguments arg in allEvents)
     {
         if (arg.IsSelected)
         {
             events[index] = new SchedulableEvent(arg.Signature, arg.GetProbability());
             index++;
         }
     }
     float timeBetweenUpdates = 0.0f;
     float.TryParse(this.timeBetweenUpdates, out timeBetweenUpdates);
     EventCollection result = new EventCollection(name, timeBetweenUpdates, events);
     if (saveCollection)
     {
         EventCollectionManager.Instance.AddEventCollection(result);
     }
     return result;
 }
 /// <summary>
 /// Sets the schedulable events to the ones specified by the given EventCollection.
 /// </summary>
 public void Set(EventCollection collection)
 {
     allEvents.Clear();
     IEnumerable<EventSignature> allSignatures = EventLibrary.Instance.GetSignatures().
         Where((EventSignature sig) => !sig.AffectsWorldState());
     //For each signature, check if it is used in the scheduler and set the values according to this.
     foreach(EventSignature signature in allSignatures)
     {
         if (collection.Any((SchedulableEvent evnt) => evnt.Signature == signature))
         {
             SchedulableEvent evnt = collection.First((SchedulableEvent e) => e.Signature == signature);
             allEvents.Add(new SchedulerEventArguments(signature, evnt.Probability, true));
         }
         else
         {
             allEvents.Add(new SchedulerEventArguments(signature, 0.0f, false));
         }
     }
     this.timeBetweenUpdates = collection.TimeBetweenUpdates.ToString();
     this.name = collection.Name;
 }
Example #27
0
		protected void ExpectEvents (int min, int max, Atk.Role role, string evType)
		{
			GlibSync ();
			if (events == null)
				events = EventMonitor.Pause ();
			EventCollection evs = events.FindByRole (role).FindByType (evType);
			string eventsInXml = String.Format (" events in XML: {0}", Environment.NewLine + events.OriginalGrossXml);
			Assert.IsTrue (evs.Count >= min && evs.Count <= max, "Expected " + min +"-" + max +" " + evType + " events but got " + evs.Count +": " + eventsInXml);
		}
Example #28
0
        /// <summary>
        /// This method will return an event collection of events from the given KML
        /// file in the constructor of this object.
        /// </summary>
        /// <returns>A collection of events</returns>
        public EventCollection GetCallLogs()
        {
            EventCollection calls = new EventCollection();

            while (reader.Read())
            {
                // Get the Coordinate
                Coordinate coordinate = ReadCoordinate();

                // Move to the ExtendedData Space
                reader.ReadToNextSibling("ExtendedData");

                //Get the additional data elements
                String device          = GetSimpleData("device");
                String pin             = GetSimpleData("pin");
                String timestamp       = GetSimpleData("timestamp");
                String reference       = GetSimpleData("reference");
                String type            = GetSimpleData("type");
                String start_rat       = GetSimpleData("start_rat");
                String end_rat         = GetSimpleData("end_rat");
                String start_mix_band  = GetSimpleData("start_mix_band");
                String end_mix_band    = GetSimpleData("end_mix_band");
                String start_rrc_state = GetSimpleData("start_rrc_state");

                // Create a new Call Log Object
                Event callLog = null;

                // Force the call log to be a type
                switch (type)
                {
                case "Call Drop":
                    callLog = new Drop();
                    break;

                case "Setup Failure":
                    callLog = new Fail();
                    break;

                case "Call Success":
                    callLog = new Success();
                    break;

                default:
                    break;
                }

                // Add additional attributes & add to the list
                if (callLog != null)
                {
                    callLog.Device        = device;
                    callLog.Pin           = pin;
                    callLog.Timestamp     = DateTime.Parse(timestamp);
                    callLog.Reference     = Boolean.Parse(reference);
                    callLog.StartRat      = start_rat;
                    callLog.EndRat        = end_rat;
                    callLog.StartMixBand  = start_mix_band;
                    callLog.EndMixBand    = end_mix_band;
                    callLog.StartRRCState = start_rrc_state;
                    callLog.Coordinate    = coordinate;

                    calls.Add(callLog);
                }
            }

            return(calls);
        }
Example #29
0
 public EventSet(string apiKey)
 {
     ApiKey = apiKey;
     Events = new EventCollection();
 }
        public AdvancedPageViewModel() : base()
        {
            Culture = CultureInfo.CreateSpecificCulture("en-GB");
            // testing all kinds of adding events
            // when initializing collection
            Events = new EventCollection
            {
                [DateTime.Now.AddDays(-3)] = new List <AdvancedEventModel>(GenerateEvents(10, "Cool")),
                [DateTime.Now.AddDays(-6)] = new DayEventCollection <AdvancedEventModel>(Color.Purple, Color.Purple)
                {
                    new AdvancedEventModel {
                        Name = "Cool event1", Description = "This is Cool event1's description!", Starting = new DateTime()
                    },
                    new AdvancedEventModel {
                        Name = "Cool event2", Description = "This is Cool event2's description!", Starting = new DateTime()
                    }
                }
            };

            //Adding a day with a different dot color
            Events.Add(DateTime.Now.AddDays(-2), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Blue, EventIndicatorSelectedColor = Color.Blue
            });
            Events.Add(DateTime.Now.AddDays(-4), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Green, EventIndicatorSelectedColor = Color.White
            });
            Events.Add(DateTime.Now.AddDays(-5), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Orange, EventIndicatorSelectedColor = Color.Orange
            });

            // with add method
            Events.Add(DateTime.Now.AddDays(-1), new List <AdvancedEventModel>(GenerateEvents(5, "Cool")));

            // with indexer
            Events[DateTime.Now] = new List <AdvancedEventModel>(GenerateEvents(2, "Boring"));

            MonthYear = MonthYear.AddMonths(1);

            Task.Delay(5000).ContinueWith(_ =>
            {
                // indexer - update later
                Events[DateTime.Now] = new ObservableCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"));

                // add later
                Events.Add(DateTime.Now.AddDays(3), new List <AdvancedEventModel>(GenerateEvents(5, "Cool")));

                // indexer later
                Events[DateTime.Now.AddDays(10)] = new List <AdvancedEventModel>(GenerateEvents(10, "Boring"));

                // add later
                Events.Add(DateTime.Now.AddDays(15), new List <AdvancedEventModel>(GenerateEvents(10, "Cool")));


                Task.Delay(3000).ContinueWith(t =>
                {
                    MonthYear = MonthYear.AddMonths(-2);

                    // get observable collection later
                    var todayEvents = Events[DateTime.Now] as ObservableCollection <AdvancedEventModel>;

                    // insert/add items to observable collection
                    todayEvents.Insert(0, new AdvancedEventModel {
                        Name = "Cool event insert", Description = "This is Cool event's description!", Starting = new DateTime()
                    });
                    todayEvents.Add(new AdvancedEventModel {
                        Name = "Cool event add", Description = "This is Cool event's description!", Starting = new DateTime()
                    });
                }, TaskScheduler.FromCurrentSynchronizationContext());
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
 /// <summary>
 /// This method will add an exisitng EventCollection to the EventCollection 
 /// object within this class. Any previous clustering information will be 
 /// removed.
 /// </summary>
 /// <param name="collection">The EventCollection to be added</param>
 public void AddRange(EventCollection collection)
 {
     // Remove any previous clustering data
       collection.ClearAllClusterData();
       // Add the events to the EventCollection
       Events.AddRange(collection);
 }
Example #32
0
        public void TestOp()
        {
            EventCollection     events       = EventCollectionFactory.GetEventSetOne(0, 1000);
            var                 testCaseList = new CaseList();
            EventExpressionCase testCase;

            testCase = new EventExpressionCase("(b=" + EVENT_B_CLASS + " -> d=" + EVENT_D_CLASS + ") " +
                                               " and " +
                                               "(a=" + EVENT_A_CLASS + " -> e=" + EVENT_E_CLASS + ")"
                                               );
            testCase.Add("E1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"), "e",
                         events.GetEvent("E1"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("b=" + EVENT_B_CLASS + " -> (d=" + EVENT_D_CLASS + "() or a=" + EVENT_A_CLASS +
                                        ")");
            testCase.Add("A2", "b", events.GetEvent("B1"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            var model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.CreateWildcard();
            PatternExpr pattern = Patterns.FollowedBy(
                Patterns.Filter(EVENT_B_CLASS, "b"),
                Patterns.Or(Patterns.Filter(EVENT_D_CLASS, "d"), Patterns.Filter(EVENT_A_CLASS, "a")));

            model.FromClause = FromClause.Create(PatternStream.Create(pattern));
            model            = (EPStatementObjectModel)SerializableObjectCopier.Copy(model);
            String text = "select * from pattern [b=" + EVENT_B_CLASS + " -> d=" + EVENT_D_CLASS + " or a=" +
                          EVENT_A_CLASS + "]";

            Assert.AreEqual(text, model.ToEPL());
            testCase = new EventExpressionCase(model);
            testCase.Add("A2", "b", events.GetEvent("B1"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + "() -> (" +
                                               "(d=" + EVENT_D_CLASS + "() -> a=" + EVENT_A_CLASS + "())" +
                                               " or " +
                                               "(a=" + EVENT_A_CLASS + "() -> e=" + EVENT_E_CLASS + "()))"
                                               );
            testCase.Add("E1", "b", events.GetEvent("B1"), "a", events.GetEvent("A2"), "e", events.GetEvent("E1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + "() and d=" +
                                               EVENT_D_CLASS + "() or a=" +
                                               EVENT_A_CLASS);
            testCase.Add("A1", "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase =
                new EventExpressionCase("(b=" + EVENT_B_CLASS + "() -> d=" + EVENT_D_CLASS + "()) or a=" + EVENT_A_CLASS);
            testCase.Add("A1", "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("(b=" + EVENT_B_CLASS + "() and " +
                                               "d=" + EVENT_D_CLASS + "()) or " +
                                               "a=" + EVENT_A_CLASS);
            testCase.Add("A1", "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            var util = new PatternTestHarness(events, testCaseList, GetType(), GetType().FullName);

            util.RunTest();
        }
Example #33
0
        /// <summary>
        /// Gets the app events from the DTO objects. Returns an empty collection if no events.
        /// </summary>
        /// <param name="eventDtos">An enumerable object containing the app event data transfer objects.</param>
        /// <returns>Returns an <see cref="IEventCollection" />.</returns>
        private static IEventCollection GetEventsFromDtos(IEnumerable<EventDto> eventDtos)
        {
            var events = new EventCollection();

            try
            {
                foreach (var ev in eventDtos)
                {
                    events.Add(new Event(ev.EventId,
                        ev.EventType,
                        ev.FKGalleryId,
                        ev.TimeStampUtc,
                        ev.ExType,
                        ev.Message,
                        Deserialize(ev.EventData),
                        ev.ExSource,
                        ev.ExTargetSite,
                        ev.ExStackTrace,
                        ev.InnerExType,
                        ev.InnerExMessage,
                        ev.InnerExSource,
                        ev.InnerExTargetSite,
                        ev.InnerExStackTrace,
                        Deserialize(ev.InnerExData),
                        ev.Url,
                        Deserialize(ev.FormVariables), Deserialize(ev.Cookies), Deserialize(ev.SessionVariables), Deserialize(ev.ServerVariables)));
                }
            }
            catch (InvalidOperationException ex)
            {
                if (ex.Source.Equals("System.Data.SqlServerCe"))
                {
                    // We hit the SQL CE bug described here: http://connect.microsoft.com/SQLServer/feedback/details/606152
                    // Clear the table.
                    var sqlCeController = new SqlCeController(GetConnectionStringSettings().ConnectionString);

                    sqlCeController.ClearEventLog();

                    events.Clear();
                }
                else throw;
            }

            return events;
        }
Example #34
0
        public void TestOp()
        {
            EventCollection     events       = EventCollectionFactory.GetEventSetOne(0, 1000);
            CaseList            testCaseList = new CaseList();
            EventExpressionCase testCase;

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " and every d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every b=" + EVENT_B_CLASS + " and d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " and d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every(b=" + EVENT_B_CLASS + " and d=" + EVENT_D_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCaseList.AddTest(testCase);

            EPStatementObjectModel model = new EPStatementObjectModel();

            model.SelectClause = SelectClause.CreateWildcard();
            PatternExpr pattern = Patterns.Every(Patterns.And(Patterns.Filter(EVENT_B_CLASS, "b"), Patterns.Filter(EVENT_D_CLASS, "d")));

            model.FromClause = FromClause.Create(PatternStream.Create(pattern));
            model            = (EPStatementObjectModel)SerializableObjectCopier.Copy(model);
            Assert.AreEqual("select * from pattern [every (b=" + EVENT_B_CLASS + " and d=" + EVENT_D_CLASS + ")]", model.ToEPL());
            testCase = new EventExpressionCase(model);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every( b=" + EVENT_B_CLASS + " and every d=" + EVENT_D_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every b=" + EVENT_B_CLASS + " and every d=" + EVENT_D_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D2", "b", events.GetEvent("B2"), "d", events.GetEvent("D2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B2"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every( every b=" + EVENT_B_CLASS + " and d=" + EVENT_D_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + EVENT_A_CLASS + " and d=" + EVENT_D_CLASS + " and b=" + EVENT_B_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every( every b=" + EVENT_B_CLASS + " and every d=" + EVENT_D_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"));
            testCase.Add("D2", "b", events.GetEvent("B2"), "d", events.GetEvent("D2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"));
            for (int i = 0; i < 3; i++)
            {
                testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"));
            }
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"));
            testCase.Add("D3", "b", events.GetEvent("B2"), "d", events.GetEvent("D3"));
            for (int i = 0; i < 5; i++)
            {
                testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"));
            }
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("a=" + EVENT_A_CLASS + " and d=" + EVENT_D_CLASS + " and b=" + EVENT_B_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + EVENT_A_CLASS + " and every d=" + EVENT_D_CLASS + " and b=" + EVENT_B_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A2"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"), "a", events.GetEvent("A1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"), "a", events.GetEvent("A2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"), "a", events.GetEvent("A1"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("b=" + EVENT_B_CLASS + " and b=" + EVENT_B_CLASS);
            testCase.Add("B1", "b", events.GetEvent("B1"), "b", events.GetEvent("B1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every a=" + EVENT_A_CLASS + " and every d=" + EVENT_D_CLASS + " and every b=" + EVENT_B_CLASS);
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A2"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("D1", "b", events.GetEvent("B2"), "d", events.GetEvent("D1"), "a", events.GetEvent("A2"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"), "a", events.GetEvent("A1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"), "a", events.GetEvent("A2"));
            testCase.Add("D2", "b", events.GetEvent("B2"), "d", events.GetEvent("D2"), "a", events.GetEvent("A1"));
            testCase.Add("D2", "b", events.GetEvent("B2"), "d", events.GetEvent("D2"), "a", events.GetEvent("A2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D1"), "a", events.GetEvent("A2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"), "a", events.GetEvent("A1"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "d", events.GetEvent("D2"), "a", events.GetEvent("A2"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"), "a", events.GetEvent("A1"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"), "a", events.GetEvent("A2"));
            testCase.Add("D3", "b", events.GetEvent("B2"), "d", events.GetEvent("D3"), "a", events.GetEvent("A1"));
            testCase.Add("D3", "b", events.GetEvent("B2"), "d", events.GetEvent("D3"), "a", events.GetEvent("A2"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"), "a", events.GetEvent("A1"));
            testCase.Add("D3", "b", events.GetEvent("B3"), "d", events.GetEvent("D3"), "a", events.GetEvent("A2"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every (a=" + EVENT_A_CLASS + " and every d=" + EVENT_D_CLASS + " and b=" + EVENT_B_CLASS + ")");
            testCase.Add("D1", "b", events.GetEvent("B1"), "d", events.GetEvent("D1"), "a", events.GetEvent("A1"));
            testCase.Add("D2", "b", events.GetEvent("B1"), "d", events.GetEvent("D2"), "a", events.GetEvent("A1"));
            testCase.Add("D3", "b", events.GetEvent("B1"), "d", events.GetEvent("D3"), "a", events.GetEvent("A1"));
            testCaseList.AddTest(testCase);

            testCase = new EventExpressionCase("every (b=" + EVENT_B_CLASS + " and b=" + EVENT_B_CLASS + ")");
            testCase.Add("B1", "b", events.GetEvent("B1"), "b", events.GetEvent("B1"));
            testCase.Add("B2", "b", events.GetEvent("B2"), "b", events.GetEvent("B2"));
            testCase.Add("B3", "b", events.GetEvent("B3"), "b", events.GetEvent("B3"));
            testCaseList.AddTest(testCase);

            PatternTestHarness util = new PatternTestHarness(events, testCaseList, GetType(), GetType().FullName);

            util.RunTest();
        }
Example #35
0
        /// <summary>
        /// This method is the main entry point for initalising the DBSCAN algorithm. The results of 
        /// the analysis are put into the Clusters List found as a member variable within this class. 
        /// Any coordinates that are deduced as noise, are added into the Noise Coordinate Collection, 
        /// found as a member variable within this class.
        /// The method will initially for N number of times, where N is the number of coordinates within 
        /// the Coordinates Collection. The N value does not take visiting neighbouring coordinates into 
        /// consideration, so the number of passes will be larger.
        /// </summary>
        public void Analyse()
        {
            // Setup the final data stores
              Clusters = new List<EventCollection>();
              Noise = new EventCollection();
              Noise.Name = "Noisy Clusters";
              Noise.Noise = true;

              // Place each coordinate into a cluster or deduce it as noise
              int clusterId = 1;
              foreach (Event evt in Calls)
              {
            if (!evt.Coordinate.Classified && ExpandCluster(evt, clusterId))
            {
              clusterId++;
            }
              }

              // Group all of the coordinates as either Noise or as part of it's respected cluster
              foreach (Event evt in Calls)
              {
            if (evt.Coordinate.Noise)
            {
              Noise.Add(evt);
            }
            else if (evt.Coordinate.Classified)
            {
              // Decrement the Cluster ID by 1 to make use of index 0 of the final list
              int index = evt.Coordinate.ClusterId - 1;

              // Setup the Cluster if it doesn't already exist (any any previous to this)
              InitaliseClusters(index);

              Clusters[index].Add(evt);
            }
              }

              // Remove any unrequired (empty) clusters
              CleanClusters();
        }
 /// <summary>
 /// Adds the given EventCollection.
 /// </summary>
 public void AddEventCollection(EventCollection collection)
 {
     collections[collection.Name] = collection;
 }
Example #37
0
 /// <summary>
 /// Primary Constructor
 /// </summary>
 /// <param name="coordinates">A Collection of coordinates</param>
 /// <param name="eps">The epsilon value</param>
 /// <param name="min">The minimum number of coordinates per cluster</param>
 public DBSCAN(EventCollection calls, double eps = 1.5, int min = 3)
 {
     Calls = calls;
       Epsilon = eps;
       MinPoints = min;
 }
        /// <summary>
        /// Migrates the commit <paramref name="headers"/> and <paramref name="events"/> for the specified <paramref name="id"/>.
        /// </summary>
        /// <param name="id">The unique commit identifier.</param>
        /// <param name="headers">The new commit headers.</param>
        /// <param name="events">The new commit events.</param>
        public void Migrate(Int64 id, HeaderCollection headers, EventCollection events)
        {
            Verify.NotDisposed(this, disposed);
            Verify.NotNull(headers, nameof(headers));
            Verify.NotNull(events, nameof(events));

            var data = serializer.Serialize(new CommitData(headers, events));
            using (var command = dialect.CreateCommand(dialect.UpdateCommit))
            {
                Log.Trace("Updating commit {0}", id);

                command.Parameters.Add(dialect.CreateIdParameter(id));
                command.Parameters.Add(dialect.CreateDataParameter(data));

                dialect.ExecuteNonQuery(command);
            }
        }
            public void CanDeserializeValidBson()
            {
                var bson = default(Byte[]);
                var events = new EventCollection(new[] { new FakeEvent("My Property") });
                var document = new Dictionary<String, EventCollection> { { "events", events } };

                using (var memoryStream = new MemoryStream())
                {
                    NewtonsoftBsonSerializer.Default.Serialize(memoryStream, document);

                    bson = memoryStream.ToArray();
                }

                using (var memoryStream = new MemoryStream(bson, writable: false))
                {
                    document = NewtonsoftBsonSerializer.Default.Deserialize<Dictionary<String, EventCollection>>(memoryStream);
                }

                Assert.Equal("My Property", document["events"].OfType<FakeEvent>().Single().Property);
            }
 /// <summary>
 /// Primary Constructor
 /// </summary>
 /// <param name="cluster">EventCollection of dropped events</param>
 public DropAnalysis(EventCollection cluster)
 {
     Cluster = new EventCollection(cluster.GetEvents("Drop"));
 }
        public void Initialise()
        {
            // Create a new KML Reader
              KMLReader reader = new KMLReader(ROOT_DIR + "data\\L_wk32_drops.kml");

              // Read in all call logs
              EventCollection collection = reader.GetCallLogs();

              // Cluster the call logs
              DBSCAN scan = new DBSCAN(collection);
              scan.Analyse();

              // Initialise the cluster
              Cluster = new EventCollection(scan.Clusters.OrderBy(col => col.Count).Last());

              // Initialise the Cluster analysis
              Analysis = new DropAnalysis(Cluster);
        }