/// <inheritdoc />
        protected override Task HandleSubMessage(IPeerMessageContext <PSOBBGamePacketPayloadClient> context, TPositionChangeCommandType command)
        {
            int entityGuid = EntityGuid.ComputeEntityGuid(EntityType.Player, command.Identifier);

            //TODO: is this the best approach, just ignoring/ditching the position of players
            //if they aren't in our zone?
            if (!MovementManagerMappable.ContainsKey(entityGuid))
            {
                return(Task.CompletedTask);
            }

            //We can safely assume they have a known world transform or they can't have been spawned.

            Vector2 position = Scaler.ScaleYasZ(command.Position);

            MovementManagerMappable[entityGuid].RegisterState(CreateMovementGenerator(position, command));

            //New position commands should be direcly updating the entity's position. Even though "MovementGenerators" handle true movement by learping them.
            //They aren't the source of Truth since they aren't deterministic/authorative like is REAL MMOs. So, the true source of truth is the WorldTransform.
            Vector3 positionIn3dSpace = new Vector3(position.x, WorldTransformMappable[entityGuid].Position.y, position.y);

            WorldTransformMappable[entityGuid] = new WorldTransform(positionIn3dSpace, WorldTransformMappable[entityGuid].Rotation);

            return(Task.CompletedTask);
        }
예제 #2
0
    private void Awake()
    {
        var gameHandler = this.gameObject.GetComponent <GameHandler>();

        gameHandler.WaveStarts += StartSpawningWave;
        this.scaler             = gameHandler.Scaler;
    }
예제 #3
0
        /// <inheritdoc cref="Series{TModel, TVisual, TLabel, TDrawingContext}.SoftDeletePoint(ChartPoint, Scaler, Scaler)"/>
        protected override void SoftDeletePoint(ChartPoint point, Scaler primaryScale, Scaler secondaryScale)
        {
            var visual = (TVisual?)point.Context.Visual;

            if (visual == null)
            {
                return;
            }

            var chartView = (ICartesianChartView <TDrawingContext>)point.Context.Chart;

            if (chartView.Core.IsZoomingOrPanning)
            {
                visual.CompleteAllTransitions();
                visual.RemoveOnCompleted = true;
                return;
            }

            var p         = primaryScale.ToPixels(pivot);
            var secondary = secondaryScale.ToPixels(point.SecondaryValue);

            visual.X                 = secondary;
            visual.Y                 = p;
            visual.Height            = 0;
            visual.RemoveOnCompleted = true;

            if (dataProvider == null)
            {
                throw new Exception("Data provider not found");
            }
            dataProvider.DisposePoint(point);
        }
예제 #4
0
 private void Start()
 {
     handler = GetComponent <AnimatedUIHandler>();
     game    = FindObjectOfType <Game>();
     game.BestScore.AddListener(BestScore);
     scaler = FindObjectOfType <Scaler>();
 }
예제 #5
0
        private void PerformZoom()
        {
            if (Config.Zoom == 100)
            {
                ShipLabel.Name.BaseFont  = Form.Font;
                ShipLabel.Name.LatinFont = LatinFont();
                return;
            }
            var prev = Form.CurrentAutoScaleDimensions;

            foreach (var control in new Control[]
            {
                Form, _c.fleetPanel.Guide, _c.hqPanel.Login,
                _contextMenuMain
            }.Concat(_main.Controls))
            {
                control.Font = ZoomFont(control.Font);
            }
            _listFormGroup.Font = ZoomFont(_listFormGroup.Font);
            foreach (var toolTip in new[] { _toolTip, _tooltipCopy })
            {
                toolTip.Font = ZoomFont(toolTip.Font);
            }
            ShipLabel.Name.BaseFont  = Form.Font;
            ShipLabel.Name.LatinFont = LatinFont();
            var cur = Form.CurrentAutoScaleDimensions;

            Scaler.Factor = Scaler.Scale(cur.Width / prev.Width, cur.Height / prev.Height);
        }
예제 #6
0
        /// <summary>
        /// Softs the delete point.
        /// </summary>
        /// <param name="point">The point.</param>
        /// <param name="primaryScale">The primary scale.</param>
        /// <param name="secondaryScale">The secondary scale.</param>
        protected override void SoftDeletePoint(ChartPoint point, Scaler primaryScale, Scaler secondaryScale)
        {
            var visual = (TVisual?)point.Context.Visual;

            if (visual is null)
            {
                return;
            }

            var p = primaryScale.ToPixels(pivot);

            var secondary = secondaryScale.ToPixels(point.SecondaryValue);

            visual.X                 = secondary;
            visual.Y                 = p;
            visual.Height            = 0;
            visual.RemoveOnCompleted = true;

            if (dataProvider is null)
            {
                throw new Exception("Data provider not found");
            }
            dataProvider.DisposePoint(point);
            var label = (TLabel?)point.Context.Label;

            if (label is null)
            {
                return;
            }

            label.TextSize          = 1;
            label.RemoveOnCompleted = true;
        }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VideoStream"/> class.
 /// </summary>
 /// <param name="video">The video stream.</param>
 /// <param name="options">The decoder settings.</param>
 internal VideoStream(InputStream <VideoFrame> video, MediaOptions options)
 {
     stream       = video;
     mediaOptions = options;
     frame        = VideoFrame.CreateEmpty();
     scaler       = new Scaler();
 }
예제 #8
0
        public void IsFirstRun()
        {
            var s      = new Scaler <object>();
            var result = s.IsFirstRun(1);

            Assert.IsTrue(result);
        }
예제 #9
0
        public void Resize(int i, int width)
        {
            var labels = _labelList[i];

            labels.BackPanel.Width = width;
            labels.Name.AdjustWidth(Scaler.DownWidth(width) - ListForm.PanelWidth);
        }
예제 #10
0
        /// <summary>
        /// Set autoscale of input.
        /// </summary>
        /// <param name="input">Input signal to autoscale</param>
        public void AutoScale(double input)
        {
            int newScaler = (int)scaler;

            if (newScaler > 26)
            {
                newScaler = 26;
            }
            else if (newScaler < 0)
            {
                newScaler = 0;
            }

            if (input > 5.500001 && newScaler < 27)
            {
                newScaler++;
                Send(newScaler);
            }
            else if (input < 0.0100001 && newScaler > 0)
            {
                newScaler--;
                Send(newScaler);
            }

            if (newScaler > 26)
            {
                newScaler = 26;
            }
            else if (newScaler < 1)
            {
                newScaler = 1;
            }

            _scaler = (Scaler)newScaler;
        }
예제 #11
0
 public BodyPart(GameObject bodyPart, string sensor)
 {
     this.bodyPart  = bodyPart;
     targetRotation = bodyPart.transform.rotation;
     this.sensor    = sensor;
     this.scaler    = bodyPart.GetComponentInChildren <Scaler>();
 }
예제 #12
0
        public void ScaleUpFactoryNull()
        {
            var s = new Scaler<object>();
            s.ScaleUp(null, new object(), Guid.NewGuid().ToString());

            Assert.AreEqual(1, s.CurrentUnits);
        }
예제 #13
0
        /// <summary>
        /// Performs a zoom operation on a bitmap and then scale the zoomed in bitmap to a specific size.
        /// The zoom and scale operations are combined so that the pixels are only interpolated once.
        /// </summary>
        /// <param name="bmp">Source bitmap.</param>
        /// <param name="zoomPercent">Percentage that the bitmap should be zoomed in by.</param>
        /// <param name="interpolationMode">Intepolation method used when scaling combined zoom/scale operation.</param>
        /// <param name="outSize">Size to scale the zoomed in bitmap to.</param>
        /// <param name="dispose">Whether or not to dispose of the source bitmap.</param>
        /// <returns>Zoomed in bitmap.</returns>
        public static Bitmap ZoomAndScale(Bitmap bmp, float zoomPercent, Scaler.InterpolationMode interpolationMode, Size outSize, bool dispose)
        {
            if (zoomPercent < 0)
            {
                throw new Exception("Can't zoom a negative percent.");
            }
            if (outSize.Width <= 0 || outSize.Height <= 0)
            {
                throw new Exception("Scaled size is non-positive. Both the width and height of the scaled size must be positive.");
            }

            Bitmap    outBmp;
            Point     centerPoint       = new Point((int)(bmp.Width / 2f), (int)(bmp.Height / 2f));
            float     zoomFactor        = 1 + (zoomPercent / 100f);
            float     inverseZoomFactor = 1 / zoomFactor;
            int       x          = centerPoint.X - (int)((bmp.Width * inverseZoomFactor) / 2f);
            int       y          = centerPoint.Y - (int)((bmp.Height * inverseZoomFactor) / 2f);
            int       width      = (int)(bmp.Width * inverseZoomFactor);
            int       height     = (int)(bmp.Height * inverseZoomFactor);
            Rectangle rectangle  = new Rectangle(x, y, width, height);
            Bitmap    croppedBmp = (Bitmap)bmp.Clone(rectangle, bmp.PixelFormat);

            outBmp = Scaler.Scale(croppedBmp, outSize, interpolationMode);

            croppedBmp.Dispose();
            if (dispose)
            {
                bmp.Dispose();
            }

            return(outBmp);
        }
예제 #14
0
        public void ScaleUpServiceNameNull()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.ScaleUp(factory, new object(), null);
        }
예제 #15
0
        public void ShouldScale()
        {
            var s      = new Scaler <object>();
            var result = s.ShouldScale();

            Assert.AreEqual(null, result);
        }
예제 #16
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
예제 #17
0
        private void SetRecord(int i)
        {
            var e      = _data[i];
            var labels = _labelList[i];

            labels.Fleet.Text = e.Fleet;
            labels.Fleet.Tag  = "";
            labels.Name.SetName(e.Ship);
            if (e.Ship2 != "")
            {
                ToolTip.SetToolTip(labels.Name, e.Ship2);
            }
            labels.Equip.Text           = e.Equip.ToString(Scaler.DownWidth(labels.BackPanel.Width) - ListForm.PanelWidth);
            labels.EquipColor.Visible   = e.Equip.ToString() != "";
            labels.EquipColor.BackColor = e.Color;
            labels.Spec.Text            = e.Spec;
            if (e.Fleet != "" && e.Fleet2 != "")
            {
                ToolTip.SetToolTip(labels.Fleet, e.Fleet2);
                labels.Fleet.Tag = e.Fleet2;
            }
            ToolTip.SetToolTip(labels.Equip, e.AircraftSpec != "" ? e.AircraftSpec : "");
            ToolTip.SetToolTip(labels.Spec, e.Spec2 != "" ? e.Spec2 : "");
            labels.BackPanel.Visible = true;
        }
예제 #18
0
 void Awake()
 {
     prefabsManager = GameObject.FindGameObjectWithTag(Tags.PREFABS_MANAGER).GetComponent <PrefabsManager>();
     observable     = new FCObservable();
     movers         = new List <Mover> ();
     scaler         = GetComponent <Scaler> ();
     scaler.AddListener(this, FCEvent.END);
 }
예제 #19
0
        private int CalcEnemyNameLeft(int hpWidth)
        {
            var nameSpace = _adjust / 2;
            var hpAdjust  = Scaler.ScaleWidth(12);
            var wideHp    = hpWidth > Scaler.ScaleWidth(47);

            return(Scaler.ScaleWidth(EnemyNameLeft) + _adjust + (wideHp && nameSpace < hpAdjust ? hpAdjust : nameSpace));
        }
예제 #20
0
        public void ScaleUpServiceNameNull()
        {
            var factory = Substitute.For <ITaskFactory <object> >();

            var s = new Scaler <object>();

            Assert.That(() => s.ScaleUp(factory, new object(), null), Throws.TypeOf <ArgumentException>());
        }
예제 #21
0
        public void IsFirstRunMinimumZero()
        {
            var factory = Substitute.For <ITaskFactory <object> >();

            var s = new Scaler <object>();

            s.IsFirstRun(0);
        }
예제 #22
0
        public void InitializeMinimumZero()
        {
            var factory = Substitute.For <ITaskFactory <object> >();

            var s = new Scaler <object>();

            Assert.That(() => s.Initialize(0, factory, new object(), Guid.NewGuid().ToString()), Throws.TypeOf <ArgumentException>());
        }
예제 #23
0
        /// <summary>
        /// Generates points trained points from learning.
        /// </summary>
        private async Task <double[][]> ComputeTrainedPoints(double[][] correctPoints)
        {
            return(await Task.Run(() =>
            {
                lock (_threadLocker)
                {
                    try
                    {
                        _network = (ActivationNetwork)Network.Load(ConfigurationPath());
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                    Scaler scaler = new Scaler(correctPoints);
                    var inputScaledData = correctPoints.Select(a => a.ToArray()).ToArray();
                    scaler.Scale(ref inputScaledData);
                    var solution = inputScaledData.Select(a => a.ToArray()).ToArray();
                    var networkInput = new double[2 * _inputPoints];

                    for (int j = _inputPoints; j < solution.GetLength(0); j++)
                    {
                        for (int k = _inputPoints, l = 0; k > 0; k--, l = l + 2)
                        {
                            networkInput[l] = solution[j - k][0];
                            networkInput[l + 1] = solution[j - k][1];
                        }

                        try
                        {
                            var result = _network.Compute(networkInput);
                            solution[j][0] = result[0];
                            solution[j][1] = result[1];
                        }
                        catch
                        {
                            solution[j][0] = double.NaN;
                            solution[j][1] = double.NaN;
                        }
                    }
                    for (int i = 0; i < solution.GetLength(0); i++)
                    {
                        if (double.IsNaN(solution[i][0]) || double.IsNaN(solution[i][1]))
                        {
                            continue;
                        }
                        solution[i][0] = scaler.Rescale(solution[i][0], XYEnum.X);
                        solution[i][1] = scaler.Rescale(solution[i][1], XYEnum.Y);
                    }

                    _network.Save(ConfigurationPath());
                    _network = null;

                    return solution;
                }
            }));
        }
예제 #24
0
 public void CopyFrameData(uint[] nextFrame)
 {
     for (int i = 0; i < nextFrame.Length; i++)
     {
         backBuffer[i] = nextFrame[i];
     }
     Scaler.ScaleImage(backBuffer, frontBuffer, baseWidth, baseHeight, baseScale);
     Dispatcher.BeginInvoke(new BlitDelegate(Blit));
 }
예제 #25
0
 /// <summary>
 /// This is called when the game should draw itself.
 /// </summary>
 /// <param name="gameTime">Provides a snapshot of timing values.</param>
 protected override void Draw(GameTime gameTime)
 {
     if (IsActive)
     {
         Scaler.SetRenderTarget();
         _screen.Draw(gameTime);
         Scaler.Draw();
     }
 }
예제 #26
0
        public void ScaleUp()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());

            Assert.AreEqual(1, s.CurrentUnits);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="VideoOutputStream"/> class.
        /// </summary>
        /// <param name="stream">The video stream.</param>
        /// <param name="config">The stream setting.</param>
        internal VideoOutputStream(OutputStream <VideoFrame> stream, VideoEncoderSettings config)
        {
            this.stream   = stream;
            Configuration = config;
            scaler        = new Scaler();

            var(size, format) = GetStreamLayout(stream);
            encodedFrame      = VideoFrame.Create(size, format);
        }
예제 #28
0
        public void Scale_CheckRightCenterPoint()
        {
            var scaler = new Scaler(0, 100, TEST_MIN_SIZE);

            scaler.Scale(1, true);

            var actual = scaler.GetCurrentScaleInfo();

            actual.CurrentStop.Should().Be(100);
        }
예제 #29
0
        void OnEnable()
        {
            _completeActionRaised = false;

            Vector2 targetScale = _scaleToScreenSize.Simulate(false);

            var data = new ScaleData(transform, targetScale, scaleSpeed);

            _scaler = new ScalerFactory().Make(scaleType, data);
        }
예제 #30
0
        public void ScaleUp()
        {
            var factory = Substitute.For <ITaskFactory <object> >();

            var s = new Scaler <object>();

            s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());

            Assert.AreEqual(1, s.CurrentUnits);
        }
예제 #31
0
        public void InitializeMulitple()
        {
            var factory = Substitute.For <ITaskFactory <object> >();

            var s = new Scaler <object>();

            s.Initialize(5, factory, new object(), Guid.NewGuid().ToString());

            Assert.AreEqual(5, s.CurrentUnits);
        }
예제 #32
0
        void OnEnable()
        {
            _currentIndex = -1;

            _numToSpawn = (int)Random.Range(numToSpawnMinMax.x, numToSpawnMinMax.y);
            _angleToAdd = 360 / _numToSpawn;

            _scale.onScaleComplete += SpawnObject;
            _scaleDown              = null;
        }
예제 #33
0
파일: LensFlare.cs 프로젝트: Aggror/Stride
        protected override void DrawCore(RenderDrawContext contextParameters)
        {
            var input  = GetInput(0);
            var output = GetOutput(0) ?? input;

            if (input == null)
            {
                return;
            }

            // Downscale to 1/2
            var halfSize             = input.Size.Down2();
            var halfSizeRenderTarget = NewScopedRenderTarget2D(halfSize.Width, halfSize.Height, input.Format);

            Scaler.SetInput(input);
            Scaler.SetOutput(halfSizeRenderTarget);
            Scaler.Draw(contextParameters, "Downsize to 0.5");

            // Work on a blurred bright map
            var blurredBright = NewScopedRenderTarget2D(halfSizeRenderTarget.Description);

            blur.Radius = 8;
            blur.SetInput(halfSizeRenderTarget);
            blur.SetOutput(blurredBright);
            ((RendererBase)blur).Draw(contextParameters);

            // Draws a few artifacts
            var flareRenderTargetInitial = NewScopedRenderTarget2D(halfSizeRenderTarget.Description);
            var flareRenderTarget        = NewScopedRenderTarget2D(halfSizeRenderTarget.Description);

            flareArtifactEffect.Parameters.Set(FlareArtifactKeys.Count, ZoomOffsetsDistortions.Length);
            flareArtifactEffect.Parameters.Set(FlareArtifactShaderKeys.ZoomOffsetsDistortions, ZoomOffsetsDistortions);
            flareArtifactEffect.Parameters.Set(FlareArtifactShaderKeys.AberrationStrength, ColorAberrationStrength);
            flareArtifactEffect.Parameters.Set(FlareArtifactShaderKeys.ColorAberrations, ColorAberrations);
            flareArtifactEffect.Parameters.Set(FlareArtifactShaderKeys.Amount, Amount * 0.0005f);
            flareArtifactEffect.SetInput(0, blurredBright);
            flareArtifactEffect.SetOutput(flareRenderTargetInitial);
            ((RendererBase)flareArtifactEffect).Draw(contextParameters);

            // Replicates the artifacts around
            flareReplicateEffect.Parameters.Set(FlareReplicateKeys.Amount, Amount * 0.0005f);
            flareReplicateEffect.Parameters.Set(FlareReplicateKeys.HaloFactor, Amount * 0.0005f * HaloFactor);
            flareReplicateEffect.SetInput(0, flareRenderTargetInitial);
            flareReplicateEffect.SetInput(1, blurredBright);
            flareReplicateEffect.SetOutput(flareRenderTarget);
            ((RendererBase)flareReplicateEffect).Draw(contextParameters);

            // Adds the result to the scene
            Scaler.BlendState = BlendStates.Additive;
            Scaler.SetInput(flareRenderTarget);
            Scaler.SetOutput(output);
            ((RendererBase)Scaler).Draw(contextParameters);
            Scaler.BlendState = BlendStates.Default;
        }
예제 #34
0
        public void DisposeMany()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            using (var s = new Scaler<object>())
            {
                s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());
                s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());
                s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());
            }
        }
예제 #35
0
        public override void Run()
        {            
            if (OutputDevice.InstalledDevices.Count == 0)
            {
                Console.WriteLine("Can't do anything with no output device.");
                return;
            }

            float beatsPerMinute = 180;
            Clock clock = new Clock(beatsPerMinute);

            OutputDevice outputDevice = OutputDevice.InstalledDevices[0];
            outputDevice.Open();

            Drummer drummer = new Drummer(clock, outputDevice, 4);

            InputDevice inputDevice = null;
            if (InputDevice.InstalledDevices.Count > 0)
            {
                // Just pick the first input device.  This will throw an exception if there isn't
                // one.
                inputDevice = InputDevice.InstalledDevices[0];
                inputDevice.Open();
            }
            Scaler scaler = new Scaler(clock, inputDevice, outputDevice);

            clock.Start();
            if (inputDevice != null)
            {
                inputDevice.StartReceiving(clock);
            }

            bool done = false;

            while (!done)
            {
                Console.Clear();
                Console.WriteLine("BPM = {0}, Playing = {1}, Scale = {2}", clock.BeatsPerMinute,
                    clock.IsRunning, scaler.GetScaletoUse());
                Console.WriteLine("Escape : Quit");
                Console.WriteLine("Down : Slower");
                Console.WriteLine("Up: Faster");
                Console.WriteLine("Left: Previous Scale");
                Console.WriteLine("Right: Next Scale");
                Console.WriteLine("Space = Toggle Play");
                ConsoleKey key = Console.ReadKey(true).Key;
                Note note;
                if (key == ConsoleKey.Escape)
                {
                    done = true;
                }
                else if (key == ConsoleKey.DownArrow)
                {
                    clock.BeatsPerMinute -= 2;
                }
                else if (key == ConsoleKey.UpArrow)
                {
                    clock.BeatsPerMinute += 2;
                }
                else if (key == ConsoleKey.RightArrow)
                {
                    scaler.NextScale();
                }
                else if (key == ConsoleKey.LeftArrow)
                {
                    scaler.PreviousScale();
                }
                else if (key == ConsoleKey.Spacebar)
                {
                    if (clock.IsRunning)
                    {
                        clock.Stop();
                        if (inputDevice != null)
                        {
                            inputDevice.StopReceiving();
                        }
                        outputDevice.SilenceAllNotes();
                    }
                    else
                    {
                        clock.Start();
                        if (inputDevice != null)
                        {
                            inputDevice.StartReceiving(clock);
                        }
                    }
                }
                else if (key == ConsoleKey.D1)
                {
                    NoteOnMessage msg = new NoteOnMessage(outputDevice, Channel.Channel1, Note.C4,
                        80, clock.BeatTime);
                    NoteOffMessage msg2 = new NoteOffMessage(outputDevice, Channel.Channel1,
                        Note.C4, 80, clock.BeatTime+0.99f);
                    clock.Schedule(msg);
                    clock.Schedule(msg2);
                    scaler.NoteOn(msg);
                }
                else if (ExampleUtil.IsMockNote(key, out note))
                {
                    NoteOnMessage noteOn = new NoteOnMessage(outputDevice, 0, note, 100,
                        clock.BeatTime);
                    NoteOffMessage noteOff = new NoteOffMessage(outputDevice, 0, note, 100,
                        clock.BeatTime + 1);
                    clock.Schedule(noteOn);
                    clock.Schedule(noteOff);
                    scaler.NoteOn(noteOn);
                }

            }

            if (clock.IsRunning)
            {
                clock.Stop();
                if (inputDevice != null)
                {
                    inputDevice.StopReceiving();
                }
                outputDevice.SilenceAllNotes();
            }

            outputDevice.Close();
            if (inputDevice != null)
            {
                inputDevice.Close();
            }
        }
예제 #36
0
        public void InitializeMinimumZero()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.Initialize(0, factory, new object(), Guid.NewGuid().ToString());
        }
예제 #37
0
        public void ScaleDown()
        {
            var factory = Substitute.For<ITaskFactory<object>>();
            var task = Substitute.For<IRoleTaskManager<object>>();
            task.OnStop();
            task.Dispose();
            
            var s = new Scaler<object>();
            s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());
            s.ScaleDown(Guid.NewGuid().ToString());

            Assert.AreEqual(0, s.CurrentUnits);

            task.Received().OnStop();
            task.Received().Dispose();
        }
예제 #38
0
        public void IsFirstRunMinimumZero()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.IsFirstRun(0);
        }
예제 #39
0
        public void InitializeServiceNameNull()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.Initialize(1, factory, new object(), null);
        }
예제 #40
0
 public void ShouldScale()
 {
     var s = new Scaler<object>();
     var result = s.ShouldScale();
     Assert.AreEqual(null, result);
 }
예제 #41
0
        public void IsNotFirstRun()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.ScaleUp(factory, new object(), Guid.NewGuid().ToString());

            var result = s.IsFirstRun(1);

            Assert.IsFalse(result);
        }
예제 #42
0
        public void IsFirstRun()
        {
            var s = new Scaler<object>();
            var result = s.IsFirstRun(1);

            Assert.IsTrue(result);
        }
예제 #43
0
 public void ScaleDownServiceNameNull()
 {
     var s = new Scaler<object>();
     s.ScaleDown(null);
 }
예제 #44
0
 public void InitializeFactoryNull()
 {
     var s = new Scaler<object>();
     s.Initialize(1, null, new object(), Guid.NewGuid().ToString());
 }
예제 #45
0
        public void ShouldScaleDown()
        {
            var task = Substitute.For<IScalable>();
            task.Scale.Returns(false);
            var manager = Substitute.For<IRoleTaskManager<object>>();
            manager.Tasks.Returns(new[] { task });
            var stack = new ConcurrentStack<IRoleTaskManager<object>>();
            stack.Push(manager);

            var s = new Scaler<object>(stack);
            var result = s.ShouldScale();

            Assert.AreEqual(false, result);
        }
예제 #46
0
        public void InitializeMulitple()
        {
            var factory = Substitute.For<ITaskFactory<object>>();

            var s = new Scaler<object>();
            s.Initialize(5, factory, new object(), Guid.NewGuid().ToString());

            Assert.AreEqual(5, s.CurrentUnits);
        }