Esempio n. 1
0
        public void ShouldHaveDifferentHashCodesOnDifferentInstances()
        {
            var a = CustomKeypadEffect.Create();
            var b = CustomKeypadEffect.Create();

            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
Esempio n. 2
0
        public void ClonedStructShouldBeIdentical()
        {
            var original = new CustomKeypadEffect(Color.Red);
            var clone    = original.Clone();

            Assert.That(clone, Is.EqualTo(original));
        }
Esempio n. 3
0
        public void ShouldClearToBlack()
        {
            var grid = new CustomKeypadEffect(Color.Pink);

            grid.Clear();

            Assert.That(grid, Is.EqualTo(CustomKeypadEffect.Create()));
        }
Esempio n. 4
0
        public void ShouldSetWithIndexIndexer()
        {
            var grid = CustomKeypadEffect.Create();

            grid[5] = Color.Red;

            Assert.AreEqual(Color.Red, grid[5]);
        }
Esempio n. 5
0
        public void ShouldSetNewColors()
        {
            var grid = CustomKeypadEffect.Create();

            grid[0, 4] = Color.Red;

            Assert.That(grid[0, 4], Is.EqualTo(Color.Red));
        }
Esempio n. 6
0
        public static CustomKeypadEffect Combine(this CustomKeypadEffect keypad, Color c, double cPct = 0.5)
        {
            for (var i = 0; i < KeypadConstants.MaxKeys; i++)
            {
                keypad[i] = keypad[i].Combine(c, cPct);
            }

            return(keypad);
        }
Esempio n. 7
0
        public void ClonedStructShouldBeIndependent()
        {
            var original = new CustomKeypadEffect(Color.Red);
            var clone    = original.Clone();

            clone.Set(Color.Blue);

            Assert.That(clone, Is.Not.EqualTo(original));
        }
Esempio n. 8
0
        public static CustomKeypadEffect Max(this CustomKeypadEffect keypad, Color c)
        {
            for (var i = 0; i < KeypadConstants.MaxKeys; i++)
            {
                keypad[i] = keypad[i].Max(c);
            }

            return(keypad);
        }
Esempio n. 9
0
        public void ShouldNotEqualNull()
        {
            var grid = CustomKeypadEffect.Create();

            Assert.False(grid == null);
            Assert.True(grid != null);
            Assert.False(grid.Equals(null));
            Assert.AreNotEqual(grid, null);
        }
Esempio n. 10
0
        public void ShouldConstructProperMultiArray()
        {
            var effect = CustomKeypadEffect.Create();

            effect[2, 3] = Color.Red;
            var array = effect.ToMultiArray();

            Assert.AreEqual(Color.Red, array[2, 3]);
        }
Esempio n. 11
0
        public void ShouldNotEqualDifferentGrid()
        {
            var a = new CustomKeypadEffect(Color.Red);
            var b = new CustomKeypadEffect(Color.Pink);

            Assert.False(a == b);
            Assert.True(a != b);
            Assert.False(a.Equals(b));
            Assert.AreNotEqual(a, b);
        }
Esempio n. 12
0
        public void ShouldNotEqual1DArrayWithInvalidSize()
        {
            var grid = CustomKeypadEffect.Create();
            var arr  = new Color[2];

            Assert.False(grid == arr);
            Assert.True(grid != arr);
            Assert.False(grid.Equals(arr));
            Assert.AreNotEqual(grid, arr);
        }
Esempio n. 13
0
        public void ShouldNotEqualArbitraryObject()
        {
            var grid = CustomKeypadEffect.Create();
            var obj  = new object();

            Assert.False(grid == obj);
            Assert.True(grid != obj);
            Assert.False(grid.Equals(obj));
            Assert.AreNotEqual(grid, obj);
        }
Esempio n. 14
0
        public void ShouldEqualIdenticalGrid()
        {
            var a = new CustomKeypadEffect(Color.Red);
            var b = new CustomKeypadEffect(Color.Red);

            Assert.True(a == b);
            Assert.False(a != b);
            Assert.True(a.Equals(b));
            Assert.AreEqual(a, b);
        }
Esempio n. 15
0
        public void ShouldThrowWhenInvalid1DSize()
        {
            var arr = new Color[2];

            // ReSharper disable once NotAccessedVariable
            CustomKeypadEffect dummy;

            Assert.That(
                () => dummy = new CustomKeypadEffect(arr),
                Throws.ArgumentException.With.Property("ParamName").EqualTo("colors"));
        }
Esempio n. 16
0
        public void ShouldNotEqual2DArrayWithInvalidColumnCount()
        {
            var grid = CustomKeypadEffect.Create();
            var arr  = new Color[KeypadConstants.MaxRows][];

            arr[0] = new Color[2];

            Assert.False(grid == arr);
            Assert.True(grid != arr);
            Assert.False(grid.Equals(arr));
            Assert.AreNotEqual(grid, arr);
        }
Esempio n. 17
0
        public void ShouldSetToBlackWithCreate()
        {
            var grid = CustomKeypadEffect.Create();

            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                for (var column = 0; column < KeypadConstants.MaxColumns; column++)
                {
                    Assert.That(grid[row, column], Is.EqualTo(Color.Black));
                }
            }
        }
Esempio n. 18
0
        public void ShouldSetAllColorsWithColorCtor()
        {
            var grid = new CustomKeypadEffect(Color.Red);

            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                for (var column = 0; column < KeypadConstants.MaxColumns; column++)
                {
                    Assert.That(grid[row, column], Is.EqualTo(Color.Red));
                }
            }
        }
Esempio n. 19
0
        public void ShouldThrowWhenInvalid2DRowCount()
        {
            // We don't need to set up the columns as the code should throw before
            // it reaches the point of iterating rows
            var arr = new Color[2][];

            // ReSharper disable once NotAccessedVariable
            CustomKeypadEffect dummy;

            Assert.That(
                () => dummy = new CustomKeypadEffect(arr),
                Throws.ArgumentException.With.Property("ParamName").EqualTo("colors"));
        }
Esempio n. 20
0
        public void ShouldSetColorsProperly()
        {
            var grid = CustomKeypadEffect.Create();

            grid.Set(Color.Red);

            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                for (var column = 0; column < KeypadConstants.MaxColumns; column++)
                {
                    Assert.AreEqual(Color.Red, grid[row, column]);
                }
            }
        }
Esempio n. 21
0
        public void ShouldThrowWhenInvalid2DColumnCount()
        {
            var arr = new Color[KeypadConstants.MaxRows][];

            // We only need to populate one of the rows, as the
            // code shouldn't check further anyway.
            arr[0] = new Color[2];

            // ReSharper disable once NotAccessedVariable
            CustomKeypadEffect dummy;

            Assert.That(
                () => dummy = new CustomKeypadEffect(arr),
                Throws.ArgumentException.With.Property("ParamName").EqualTo("colors"));
        }
Esempio n. 22
0
        public void ShouldNotEqualDifferent1DArray()
        {
            var grid = new CustomKeypadEffect(Color.Pink);
            var arr  = new Color[KeypadConstants.MaxKeys];

            for (var index = 0; index < KeypadConstants.MaxKeys; index++)
            {
                arr[index] = Color.Red;
            }

            Assert.False(grid == arr);
            Assert.True(grid != arr);
            Assert.False(grid.Equals(arr));
            Assert.AreNotEqual(grid, arr);
        }
Esempio n. 23
0
        public void ShouldSetProperColorsWith1DCtor()
        {
            var arr = new Color[KeypadConstants.MaxKeys];

            arr[2] = Color.Pink;
            arr[4] = Color.Red;
            arr[8] = Color.Blue;

            var grid = new CustomKeypadEffect(arr);

            for (var index = 0; index < KeypadConstants.MaxKeys; index++)
            {
                Assert.That(grid[index], Is.EqualTo(arr[index]));
            }
        }
Esempio n. 24
0
        public void ShouldNotEqualDifferent2DArray()
        {
            var grid = new CustomKeypadEffect(Color.Pink);
            var arr  = new Color[KeypadConstants.MaxRows][];

            // Populate the 2D array
            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                arr[row] = new Color[KeypadConstants.MaxColumns];
                for (var col = 0; col < KeypadConstants.MaxColumns; col++)
                {
                    arr[row][col] = Color.Red;
                }
            }

            Assert.False(grid == arr);
            Assert.True(grid != arr);
            Assert.False(grid.Equals(arr));
            Assert.AreNotEqual(grid, arr);
        }
Esempio n. 25
0
        public void ShouldThrowWhenOutOfRange1DSet()
        {
            var grid = CustomKeypadEffect.Create();

            Assert.That(
                () => grid[-1] = Color.Red,
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("index")
                .And.Property("ActualValue")
                .EqualTo(-1));

            Assert.That(
                () => grid[KeypadConstants.MaxKeys] = Color.Red,
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("index")
                .And.Property("ActualValue")
                .EqualTo(KeypadConstants.MaxKeys));
        }
Esempio n. 26
0
        public void ShouldThrowWhenOutOfRange2DGet()
        {
            var grid = CustomKeypadEffect.Create();

            // ReSharper disable once NotAccessedVariable
            Color dummy;

            Assert.That(
                () => dummy = grid[-1, 0],
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("row")
                .And.Property("ActualValue")
                .EqualTo(-1));

            Assert.That(
                () => dummy = grid[KeypadConstants.MaxRows, 0],
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("row")
                .And.Property("ActualValue")
                .EqualTo(KeypadConstants.MaxRows));

            Assert.That(
                () => dummy = grid[0, -1],
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("column")
                .And.Property("ActualValue")
                .EqualTo(-1));

            Assert.That(
                () => dummy = grid[0, KeypadConstants.MaxColumns],
                Throws.InstanceOf <ArgumentOutOfRangeException>()
                .With.Property("ParamName")
                .EqualTo("column")
                .And.Property("ActualValue")
                .EqualTo(KeypadConstants.MaxColumns));
        }
Esempio n. 27
0
        public void ShouldSetProperColorsWith2DCtor()
        {
            var arr = new Color[KeypadConstants.MaxRows][];

            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                arr[row] = new Color[KeypadConstants.MaxColumns];
            }

            // Set some arbitrary colors to test
            arr[0][4] = Color.Purple;
            arr[2][3] = Color.Pink;
            arr[3][0] = Color.Blue;

            var grid = new CustomKeypadEffect(arr);

            for (var row = 0; row < KeypadConstants.MaxRows; row++)
            {
                for (var col = 0; col < KeypadConstants.MaxColumns; col++)
                {
                    Assert.That(grid[row, col], Is.EqualTo(arr[row][col]));
                }
            }
        }
Esempio n. 28
0
        public void ShouldGetWithIndexIndexer()
        {
            var grid = new CustomKeypadEffect(Color.Red);

            Assert.AreEqual(Color.Red, grid[3]);
        }
Esempio n. 29
0
 /// <inheritdoc />
 /// <summary>
 /// Initializes a new instance of the <see cref="KeypadImplementation" /> class.
 /// </summary>
 public KeypadImplementation(IChromaApi api)
     : base(api)
 {
     Log.Debug("Keypad is initializing");
     _custom = CustomKeypadEffect.Create();
 }
Esempio n. 30
0
        public void ShouldHaveZeroHashCodeOnDefaultInstance()
        {
            var effect = new CustomKeypadEffect();

            Assert.Zero(effect.GetHashCode());
        }