예제 #1
0
        public void TestIntConstructor()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(3); // 1100

            Assert.IsTrue(field.AreOn(BitEnum.B0, BitEnum.B1), "Integer constructor does not initialize bits correctly");
            Assert.IsTrue(field.AreOff(BitEnum.B2, BitEnum.B3), "Integer constructor does not initialize bits correctly");
        }
예제 #2
0
        public void TestAdditionOperator()
        {
            EnumBitField <BitEnum> a = new EnumBitField <BitEnum>(2);
            EnumBitField <BitEnum> b = new EnumBitField <BitEnum>(3);

            Assert.AreEqual(5, (a + b).Value, "Bit field addition does not work correctly");
        }
예제 #3
0
        public void TestEmptyConstructor()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>();

            Assert.AreEqual(0, field.Value);
            Assert.AreEqual(15, field.Max, "Max is not calculated correctly");
        }
예제 #4
0
        public void TestSubtractionOperator()
        {
            EnumBitField <BitEnum> a = new EnumBitField <BitEnum>(3);
            EnumBitField <BitEnum> b = new EnumBitField <BitEnum>(2);

            Assert.AreEqual(1, (a - b).Value, "Bit field subtraction does not work correctly");
        }
예제 #5
0
        public void TestSet()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(2); // 0100

            field.Set(BitEnum.B0);
            Assert.IsTrue(field.IsOn(BitEnum.B0), "Set function does not enable the correct bits");
            Assert.IsTrue(field.IsOff(BitEnum.B1), "Set function does not disable the correct bits");
        }
예제 #6
0
        public void TestEnumConstructor()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(BitEnum.B2, BitEnum.B1); // 0110

            Assert.AreEqual(6, field.Value);
            Assert.IsTrue(field.AreOn(BitEnum.B1, BitEnum.B2), "Enum constructor does not initialize bits correctly");
            Assert.IsTrue(field.AreOff(BitEnum.B0, BitEnum.B3), "Enum constructor does not initialize bits correctly");
        }
예제 #7
0
    public EnumBitField <T> Copy()
    {
        EnumBitField <T> c = new EnumBitField <T>();

        c.Max   = Max;
        c.Value = Value;
        return(c);
    }
예제 #8
0
        public void TestOnOff()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(6); // 0110

            Assert.IsTrue(field.AreOn(BitEnum.B1, BitEnum.B2));
            Assert.IsTrue(field.AreOff(BitEnum.B0, BitEnum.B3));
            Assert.IsTrue(field.IsOn(BitEnum.B1) && field.IsOn(BitEnum.B2));
            Assert.IsTrue(field.IsOff(BitEnum.B0) && field.IsOff(BitEnum.B3));
        }
예제 #9
0
        public void TestEquality()
        {
            EnumBitField <BitEnum> field1 = new EnumBitField <BitEnum>(6); // 0110
            EnumBitField <BitEnum> field2 = new EnumBitField <BitEnum>(6); // 0110
            EnumBitField <BitEnum> field3 = new EnumBitField <BitEnum>(7); // 1110

            Assert.AreEqual(field1, field2, "Bit fields with the same value are not evaluated as equal");
            Assert.AreNotEqual(field1, field3, "Bit fields with different values are evaluated as equal");
            Assert.IsTrue(field1 == field2, "Bit fields with the same value are not evaluated as equal");
            Assert.IsTrue(field1 != field3, "Bit fields with different values are evaluated as equal");
        }
예제 #10
0
        public void TestAll()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(1); // 1000

            field.All();
            Assert.AreEqual(field.Max, field.Value);
            Assert.IsTrue(field.AreOn(
                              BitEnum.B0,
                              BitEnum.B1,
                              BitEnum.B2,
                              BitEnum.B3
                              ));
        }
예제 #11
0
    public override bool Equals(object obj)
    {
        if (ReferenceEquals(null, obj))
        {
            return(false);
        }
        if (ReferenceEquals(this, obj))
        {
            return(true);
        }

        EnumBitField <T> other = (EnumBitField <T>)obj;

        return(Value == other.Value);
    }
예제 #12
0
        public void TestInConstructorMinValue()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(-1);

            Assert.AreEqual(0, field.Value, "Integer constructor does not clamp with min value");
        }
예제 #13
0
        public void TestIntConstructorMaxValue()
        {
            EnumBitField <BitEnum> field = new EnumBitField <BitEnum>(16); // 10000

            Assert.AreEqual(15, field.Value, "Integer constructor does not clamp with max value");
        }
예제 #14
0
 public StrafeMovement(Player player, MovementSettings settings, InputBindings bindings) : base(settings, bindings)
 {
     this.player        = player;
     allowedForMovement = new EnumBitField <Player.States>(Player.States.Hooking);
 }