Ejemplo n.º 1
0
        public void RandomFactoryCreatesSameSequencOfGeneratorsForSameSeed()
        {
            int seed = 42;

            var f0 = new RandomFactory(seed, 10, 2, 1, 10, 1, 1, 1);
            IRandomCallGenerator r01 = f0.Create();
            IRandomCallGenerator r02 = f0.Create();

            var f1 = new RandomFactory(seed, 10, 2, 1, 10, 1, 1, 1);
            IRandomCallGenerator r11 = f1.Create();
            IRandomCallGenerator r12 = f1.Create();

            Assert.AreEqual(r11.GenerateRandomCall(0), r01.GenerateRandomCall(0));
            Assert.AreEqual(r11.GenerateRandomCall(50), r01.GenerateRandomCall(50));
            Assert.AreNotEqual(r11.GenerateRandomCall(1120), r01.GenerateRandomCall(2203));
            Assert.AreEqual(r11.GenerateRandomCall(55), r01.GenerateRandomCall(55));

            Assert.AreEqual(r02.GenerateRandomCall(0), r12.GenerateRandomCall(0));
            Assert.AreEqual(r02.GenerateRandomCall(10), r12.GenerateRandomCall(10));
            Assert.AreEqual(r02.GenerateRandomCall(0), r12.GenerateRandomCall(0));
            Assert.AreEqual(r02.GenerateRandomCall(10), r12.GenerateRandomCall(10));

            Assert.AreNotEqual(r11.GenerateRandomCall(0), r12.GenerateRandomCall(0));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds the call event.
        /// </summary>
        /// <param name="lastcallstarttime">The lastcallstarttime.</param>
        internal void AddCallEvent(uint lastcallstarttime)
        {
            CallData newcall = _generator.GenerateRandomCall(lastcallstarttime);

            // add the new call event
            AddEvent(
                newcall.StartTime,
                new CallEvent(
                    _stations.GetStationForPosition(newcall.StartPosition),
                    newcall,
                    _dataGatherer.SignalCallBlocked,
                    _dataGatherer.SignalCallStarted,
                    AddCallEvent,                     // callback for adding new call events
                    AddHangupEvent,                   // callback for adding hangup events
                    AddHandoverEvent,                 // callback for adding handover events
                    newcall.StartTime));
        }