public void BlackBoardReadFloat()
        {
            var bb = new BlackBoard();

            bb.SetValue("foo", 10f);
            Assert.That(() => bb.ReadValue <float>("foo"), Throws.Nothing);
            Assert.That(bb.ReadValue <float>("foo"), Is.EqualTo(10f).Within(float.Epsilon));
        }
        public void BlackBoardReadTypeObjectNoEx()
        {
            var bb = new BlackBoard();

            bb.SetValue("foo", 10f);
            Assert.That(() => bb.ReadValue <object>("foo"), Throws.Nothing);
        }
        public void BlackBoardReadUnexistingKeyEx()
        {
            var bb = new BlackBoard();

            bb.SetValue("foo", 10f);
            Assert.That(() => bb.ReadValue <float>("bar"), Throws.Exception.TypeOf <KeyNotFoundException>());
        }
        public void BlackBoardReadFloatIntoIntEx()
        {
            var bb = new BlackBoard();

            bb.SetValue("foo", -50f);
            Assert.That(() => bb.ReadValue <int>("foo"), Throws.Exception.TypeOf <InvalidCastException>());
        }
        public void BlackBoardReadWrongTypeWithoutImplicitCastEx()
        {
            var bb = new BlackBoard();

            bb.SetValue("pos", true);
            Assert.That(() => bb.ReadValue <Node>("pos"), Throws.Exception);
        }
        public void BlackBoardReadTypeObject()
        {
            var bb = new BlackBoard();

            bb.SetValue("foo", 1);
            Assert.That(bb.ReadValue <object>("foo"), Is.EqualTo(1));    //not sure about this
        }
        public void BlackBoardAddSameValMultipleTimesNoEx_Red()
        {
            var bb = new BlackBoard();

            bb.SetValue("pos", 5);
            Assert.That(() => bb.SetValue("pos", 20), Throws.Nothing);
            Assert.That(bb.ReadValue <int>("pos"), Is.Not.EqualTo(5));
        }