remove generics related tests, renumbered

--- Assets/MixedRealityToolkit-Tests/InteractionDefinitionTests.cs
+++ Assets/MixedRealityToolkit-Tests/InteractionDefinitionTests.cs
@@ -73,107 +73,12 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test03_TestObjectGenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Raw, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = (object)1f;
-        //    var testValue2 = (object)false;
-
-        //    var initialValue = inputDef.GetValue<object>();
-
-        //    Assert.IsNull(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<object>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<object>();
-
-        //    Assert.IsNotNull(setValue1);
-        //    Assert.AreEqual(setValue1, testValue1);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<object>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<object>();
-
-        //    Assert.IsNotNull(setValue2);
-        //    Assert.AreEqual(setValue2, testValue2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test04_TestObjectGenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Raw, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = (object)1f;
-
-        //    var initialValue = inputDef.GetValue<object>();
-
-        //    Assert.IsNull(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<object>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<object>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        //[Test]
-        //public void Test05_TestObjectDirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Raw, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = (object)1f;
-        //    var testValue2 = (object)false;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<object>(testValue);
-        //        inputDef.GetValue<object>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetRaw();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Object Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
         #endregion objects

         #region bools

         [Test]
-        public void Test06_TestBoolChanged()
+        public void Test03_TestBoolChanged()
         {
             var inputDef = new InteractionMapping(1, AxisType.Digital, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = true;
@@ -206,7 +111,7 @@
         }

         [Test]
-        public void Test07_TestBoolNoChange()
+        public void Test04_TestBoolNoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.Digital, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = true;
@@ -228,108 +133,12 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test08_TestBoolGenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Digital, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = true;
-        //    var testValue2 = false;
-
-        //    var initialValue = inputDef.GetValue<bool>();
-
-        //    Assert.IsFalse(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<bool>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<bool>();
-
-        //    Assert.IsTrue(setValue1);
-        //    Assert.True(setValue1 == testValue1);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<bool>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<bool>();
-
-        //    Assert.IsFalse(setValue2);
-        //    Assert.True(setValue2 == testValue2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test09_TestBoolGenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Digital, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = true;
-
-        //    var initialValue = inputDef.GetValue<bool>();
-
-        //    Assert.IsFalse(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<bool>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<bool>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test10_TestBoolDirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.Digital, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = true;
-        //    var testValue2 = false;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<bool>(testValue);
-        //        inputDef.GetValue<bool>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetBool();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Bool Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
         #endregion bools

         #region float

         [Test]
-        public void Test11_TestFloatChanged()
+        public void Test05_TestFloatChanged()
         {
             var inputDef = new InteractionMapping(1, AxisType.SingleAxis, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = 1f;
@@ -360,7 +169,7 @@
         }

         [Test]
-        public void Test12_TestFloatNoChange()
+        public void Test06_TestFloatNoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.SingleAxis, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = 1f;
@@ -382,106 +191,12 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test13_TestFloatGenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SingleAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = 1f;
-        //    var testValue2 = 9001f;
-
-        //    var initialValue = inputDef.GetValue<float>();
-
-        //    Assert.AreEqual(initialValue, 0d, double.Epsilon);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<float>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<float>();
-
-        //    Assert.AreEqual(setValue1, testValue1, double.Epsilon);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<float>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<float>();
-
-        //    Assert.AreEqual(setValue2, testValue2, double.Epsilon);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test14_TestFloatGenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SingleAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = 1f;
-
-        //    var initialValue = inputDef.GetValue<float>();
-
-        //    Assert.AreEqual(initialValue, 0d, double.Epsilon);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<float>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<float>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test15_TestFloatDirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SingleAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = 1f;
-        //    var testValue2 = 9001f;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<float>(testValue);
-        //        inputDef.GetValue<float>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetFloat();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Float Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
         #endregion float

         #region Vector2

         [Test]
-        public void Test16_TestVector2Changed()
+        public void Test07_TestVector2Changed()
         {
             var inputDef = new InteractionMapping(1, AxisType.DualAxis, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = Vector2.one;
@@ -512,7 +227,7 @@
         }

         [Test]
-        public void Test17_TestVector2NoChange()
+        public void Test08_TestVector2NoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.DualAxis, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = Vector2.one;
@@ -534,106 +249,12 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test18_TestVector2GenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.DualAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Vector2.one;
-        //    var testValue2 = Vector2.zero;
-
-        //    var initialValue = inputDef.GetValue<Vector2>();
-
-        //    Assert.True(initialValue == Vector2.zero);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector2>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<Vector2>();
-
-        //    Assert.True(setValue1 == testValue1);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector2>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<Vector2>();
-
-        //    Assert.True(setValue2 == testValue2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test19_TestVector2GenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.DualAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = Vector2.one;
-
-        //    var initialValue = inputDef.GetValue<Vector2>();
-
-        //    Assert.True(initialValue == Vector2.zero);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector2>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector2>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test20_TestVector2DirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.DualAxis, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Vector2.one;
-        //    var testValue2 = Vector2.zero;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<Vector2>(testValue);
-        //        inputDef.GetValue<Vector2>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetVector2();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Vector2 Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
         #endregion Vector2

         #region Vector3

         [Test]
-        public void Test21_TestVector3Changed()
+        public void Test09_TestVector3Changed()
         {
             var inputDef = new InteractionMapping(1, AxisType.ThreeDoFPosition, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = Vector3.one;
@@ -664,7 +285,7 @@
         }

         [Test]
-        public void Test22_TestVector3NoChange()
+        public void Test10_TestVector3NoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.ThreeDoFPosition, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = Vector3.one;
@@ -686,106 +307,12 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test23_TestVector3GenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFPosition, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Vector3.one;
-        //    var testValue2 = Vector3.zero;
-
-        //    var initialValue = inputDef.GetValue<Vector3>();
-
-        //    Assert.True(initialValue == Vector3.zero);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector3>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<Vector3>();
-
-        //    Assert.True(setValue1 == testValue1);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector3>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<Vector3>();
-
-        //    Assert.True(setValue2 == testValue2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test24_TestVector3GenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFPosition, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = Vector3.one;
-
-        //    var initialValue = inputDef.GetValue<Vector3>();
-
-        //    Assert.True(initialValue == Vector3.zero);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector3>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Vector3>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test25_TestVector3DirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFPosition, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Vector3.one;
-        //    var testValue2 = Vector3.zero;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<Vector3>(testValue);
-        //        inputDef.GetValue<Vector3>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetPosition();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Vector3 Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
         #endregion Vector3

         #region Quaternion

         [Test]
-        public void Test26_TestQuaternionChanged()
+        public void Test11_TestQuaternionChanged()
         {
             var inputDef = new InteractionMapping(1, AxisType.ThreeDoFRotation, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = Quaternion.Euler(45f, 45f, 45f);
@@ -816,7 +343,7 @@
         }

         [Test]
-        public void Test27_TestQuaternionNoChange()
+        public void Test12_TestQuaternionNoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.ThreeDoFRotation, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = Quaternion.Euler(45f, 45f, 45f);
@@ -838,106 +365,8 @@
             Assert.IsFalse(inputDef.Changed);
         }

-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test28_TestQuaternionGenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFRotation, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Quaternion.Euler(45f, 45f, 45f);
-        //    var testValue2 = Quaternion.identity;
-
-        //    var initialValue = inputDef.GetValue<Quaternion>();
-
-        //    Assert.True(initialValue == Quaternion.identity);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Quaternion>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<Quaternion>();
-
-        //    Assert.True(setValue1 == testValue1);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Quaternion>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<Quaternion>();
-
-        //    Assert.True(setValue2 == testValue2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test29_TestQuaternionGenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFRotation, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = Quaternion.Euler(45f, 45f, 45f);
-
-        //    var initialValue = inputDef.GetValue<Quaternion>();
-
-        //    Assert.True(initialValue == Quaternion.identity);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Quaternion>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Quaternion>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test30_TestQuaternionDirectVsGenericSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.ThreeDoFRotation, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = Quaternion.Euler(45f, 45f, 45f);
-        //    var testValue2 = Quaternion.identity;
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<Quaternion>(testValue);
-        //        inputDef.GetValue<Quaternion>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetRotation();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Quaternion Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}
-
-        #endregion Quaternion
-
-        #region Tuples
-
-        [Test]
-        public void Test31_TestTupleChanged()
+        [Test]
+        public void Test13_TestTupleChanged()
         {
             var inputDef = new InteractionMapping(1, AxisType.SixDoF, DeviceInputType.None, new InputAction(1, "None"));
             var testValue1 = new Tuple<Vector3, Quaternion>(Vector3.zero, Quaternion.identity);
@@ -974,7 +403,7 @@
         }

         [Test]
-        public void Test32_TestTupleNoChange()
+        public void Test14_TestTupleNoChange()
         {
             var inputDef = new InteractionMapping(1, AxisType.SixDoF, DeviceInputType.None, new InputAction(1, "None"));
             var testValue = new Tuple<Vector3, Quaternion>(Vector3.zero, Quaternion.identity);
@@ -995,106 +424,6 @@
             // Make sure if we set the same value it's false
             Assert.IsFalse(inputDef.Changed);
         }
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test33_TestTupleGenericChanged()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SixDoF, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = new Tuple<Vector3, Quaternion>(Vector3.zero, Quaternion.identity);
-        //    var testValue2 = new Tuple<Vector3, Quaternion>(Vector3.one, new Quaternion(45f, 45f, 45f, 45f));
-
-        //    var initialValue = inputDef.GetTransform();
-
-        //    Assert.IsNull(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Tuple<Vector3, Quaternion>>(testValue1);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue1 = inputDef.GetValue<Tuple<Vector3, Quaternion>>();
-
-        //    Assert.AreEqual(setValue1, testValue1);
-        //    Assert.AreEqual(setValue1.Item1, testValue1.Item1);
-        //    Assert.AreEqual(setValue1.Item2, testValue1.Item2);
-        //    Assert.AreEqual(setValue1.Item2, testValue1.Item2);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Tuple<Vector3, Quaternion>>(testValue2);
-
-        //    Assert.IsTrue(inputDef.Changed);
-
-        //    var setValue2 = inputDef.GetValue<Tuple<Vector3, Quaternion>>();
-
-        //    Assert.AreEqual(setValue2, testValue2);
-        //    Assert.AreEqual(setValue2.Item1, testValue2.Item1);
-        //    Assert.AreEqual(setValue2.Item2, testValue2.Item2);
-        //    Assert.AreEqual(setValue2.Item2, testValue2.Item2);
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test34_TestTupleGenericNoChange()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SixDoF, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue = new Tuple<Vector3, Quaternion>(Vector3.zero, Quaternion.identity);
-
-        //    var initialValue = inputDef.GetTransform();
-
-        //    Assert.IsNull(initialValue);
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Tuple<Vector3, Quaternion>>(testValue);
-
-        //    Assert.IsTrue(inputDef.Changed);
-        //    // Make sure the second time we query it's false
-        //    Assert.IsFalse(inputDef.Changed);
-
-        //    inputDef.SetValue<Tuple<Vector3, Quaternion>>(testValue);
-
-        //    Assert.IsFalse(inputDef.Changed);
-        //    // Make sure if we set the same value it's false
-        //    Assert.IsFalse(inputDef.Changed);
-        //}
-
-        // todo: remove Generic Get|Set tests
-        //[Test]
-        //public void Test35_TestTupleSpeed()
-        //{
-        //    var inputDef = new InteractionMapping(1, AxisType.SixDoF, DeviceInputType.None, new InputAction(1, "None"));
-        //    var testValue1 = new Tuple<Vector3, Quaternion>(Vector3.zero, Quaternion.identity);
-        //    var testValue2 = new Tuple<Vector3, Quaternion>(Vector3.one, new Quaternion(45f, 45f, 45f, 45f));
-
-        //    var stopwatch = new Stopwatch();
-        //    stopwatch.Start();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue<Tuple<Vector3, Quaternion>>(testValue);
-        //        inputDef.GetValue<Tuple<Vector3, Quaternion>>();
-        //    }
-
-        //    var genericTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Restart();
-
-        //    for (int i = 0; i < SpeedTestIterations; i++)
-        //    {
-        //        var testValue = i % 2 == 0 ? testValue1 : testValue2;
-        //        inputDef.SetValue(testValue);
-        //        inputDef.GetTransform();
-        //    }
-
-        //    var directTime = stopwatch.ElapsedMilliseconds;
-
-        //    stopwatch.Stop();
-
-        //    UnityEngine.Debug.Log($"Tuple Speed Test Results | Generic Time: {genericTime} | Direct Time: {directTime}");
-        //    Assert.Greater(genericTime, directTime);
-        //}

         #endregion Tuples
     }


Improve mouse grabbing on unpause in Potion

--- Assets/Resources/Microgames/Potion/Scripts/PotionIngredient.cs
+++ Assets/Resources/Microgames/Potion/Scripts/PotionIngredient.cs
@@ -61,12 +61,13 @@
 				}
 				break;
 			case(State.Grabbed):
-				snapToMouse();
 				if (pot.state != PotionPot.State.Default || !Input.GetMouseButton(0))
 				{
 					rigidThing.isKinematic = false;
 					state = State.Idle;
 				}
+				else
+					snapToMouse();
 				break;
 			case (State.Used):
 				rigidThing.bodyType = RigidbodyType2D.Static;


fixed 型の誤り

fixed 型の誤り

--- Sources/BrownSugar/Extentions/EncodingExtension.cs
+++ Sources/BrownSugar/Extentions/EncodingExtension.cs
@@ -12,7 +12,7 @@

 		static Encoding UTF8N_ = new UTF8Encoding(false);

-        public static Encoding UTF8N(this string self) {
+        public static Encoding UTF8N(this Encoding self) {
 			return UTF8N_;
         }
     }


Simplify unit test.

Simplify unit test.

--- Src/AutoFixtureUnitTest/DomainNameGeneratorTest.cs
+++ Src/AutoFixtureUnitTest/DomainNameGeneratorTest.cs
@@ -52,8 +52,7 @@
             // Exercise system
             var result = sut.Create(typeof(DomainName), null);
             // Verify outcome
-            Assert.IsAssignableFrom<DomainName>(result);
-            var actualDomainName = (DomainName)result;
+            var actualDomainName = Assert.IsAssignableFrom<DomainName>(result);
             Assert.True(Regex.IsMatch(actualDomainName.Domain, @"example\.(com|org|net)"));
             // Teardown
         }


20000006-1374 Correção build

20000006-1374 Correção build

--- Src/GestaoEscolar/Academico/Curso/Cadastro.aspx.cs
+++ Src/GestaoEscolar/Academico/Curso/Cadastro.aspx.cs
@@ -1118,7 +1118,7 @@
             _txtVigenciaFim.Text = cur.cur_vigenciaFim == new DateTime() ? string.Empty : cur.cur_vigenciaFim.ToString("dd/MM/yyy");
             _ddlCursoSituacao.SelectedValue = cur.cur_situacao.ToString();
             txtCargaHoraria.Text = cur.cur_cargaHoraria.ToString();
-            txtCargaHorariaExtraCurricular.Text = cur.cur_cargaHorariaExtraClasse.ToString();
+            //txtCargaHorariaExtraCurricular.Text = cur.cur_cargaHorariaExtraClasse.ToString();

             chkEfetivacaoSemestral.Checked = cur.cur_efetivacaoSemestral;


cleanup

cleanup

--- BlogSeriesMarkupGenerator/BlogSeriesMarkupGenerator/Program.cs
+++ BlogSeriesMarkupGenerator/BlogSeriesMarkupGenerator/Program.cs
@@ -9,13 +9,10 @@
         static void Main(string[] args)
         {
             var generator = new MarkupGenerator();
-            var title = "Protecting Passwords";
+            var title = "NAME";
             var posts = new List<Post>();
-            posts.Add(new Post() { Text = "Do Something Good for You: Use a Password Manager", Url = "https://improveandrepeat.com/2018/10/do-something-good-for-you-use-a-password-manager/" });
-            posts.Add(new Post() { Text = "KeePass – the Cloud-Free Solution to Manage Your Passwords", Url = "https://improveandrepeat.com/2018/10/keepass-the-cloud-free-solution-to-manage-your-passwords/" });
-            posts.Add(new Post() { Text = "Use BCrypt to Save Password (Hashes)", Url = "https://improveandrepeat.com/2018/10/use-bcrypt-to-save-password-hashes/" });
-            posts.Add(new Post() { Text = "How to Find out If Your User’s Password Is in a Data Breach", Url = "https://improveandrepeat.com/2018/10/how-to-find-out-if-your-users-password-is-in-a-data-breach/" });
-            //posts.Add(new Post() { Text = "Transformation", Url = "https://demo.ch/end" });
+            posts.Add(new Post() { Text = "", Url = "" });
+            //posts.Add(new Post() { Text = "", Url = "" });

             var generatedToC = generator.Generate(title, posts);
             File.WriteAllText(title.Replace(" ", "_")+".txt", generatedToC);


Fix bug in reports

Fix bug in reports

--- CSF.Screenplay.Reporting/Reporting/Builders/ScenarioBuilder.cs
+++ CSF.Screenplay.Reporting/Reporting/Builders/ScenarioBuilder.cs
@@ -78,8 +78,8 @@
     /// <c>true</c> if the feature identifier is generated; otherwise, <c>false</c>.</value>
     public bool FeatureIdIsGenerated
     {
-      get { return scenario.Name.IsIdGenerated; }
-      set { scenario.Name.IsIdGenerated = value; }
+      get { return scenario.Feature.Name.IsIdGenerated; }
+      set { scenario.Feature.Name.IsIdGenerated = value; }
     }

     /// <summary>


TransactionNeedle is not "IExtendedDisposable"

Removed IExtededDisposable
Removed Unused code
Removed GeneredCodeAttributes

--- Core/Theraot/Threading/Needles/TransactionNeedle.disposable.cs
+++ Core/Theraot/Threading/Needles/TransactionNeedle.disposable.cs
@@ -5,13 +5,11 @@

 namespace Theraot.Threading.Needles
 {
-    public sealed partial class TransactionNeedle<T> : IDisposable, IExtendedDisposable
+    public sealed partial class TransactionNeedle<T> : IDisposable
     {
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
         private int _status;

         [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
         [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralexceptionTypes", Justification = "Pokemon")]
         ~TransactionNeedle()
         {
@@ -32,18 +30,7 @@
             }
         }

-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        public bool IsDisposed
-        {
-            [global::System.Diagnostics.DebuggerNonUserCode]
-            get
-            {
-                return _status == -1;
-            }
-        }
-
         [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
         public void Dispose()
         {
             try
@@ -57,95 +44,6 @@
         }

         [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        public void DisposedConditional(Action whenDisposed, Action whenNotDisposed)
-        {
-            if (_status == -1)
-            {
-                if (whenDisposed != null)
-                {
-                    whenDisposed.Invoke();
-                }
-            }
-            else
-            {
-                if (whenNotDisposed != null)
-                {
-                    ThreadingHelper.SpinWaitExchangeRelative(ref _status, 1, -1);
-                    if (_status == -1)
-                    {
-                        if (whenDisposed != null)
-                        {
-                            whenDisposed.Invoke();
-                        }
-                    }
-                    else
-                    {
-                        try
-                        {
-                            whenNotDisposed.Invoke();
-                        }
-                        finally
-                        {
-                            System.Threading.Interlocked.Decrement(ref _status);
-                        }
-                    }
-                }
-            }
-        }
-
-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        public TReturn DisposedConditional<TReturn>(Func<TReturn> whenDisposed, Func<TReturn> whenNotDisposed)
-        {
-            if (_status == -1)
-            {
-                if (whenDisposed == null)
-                {
-                    return default(TReturn);
-                }
-                else
-                {
-                    return whenDisposed.Invoke();
-                }
-            }
-            else
-            {
-                if (whenNotDisposed == null)
-                {
-                    return default(TReturn);
-                }
-                else
-                {
-                    ThreadingHelper.SpinWaitExchangeRelative(ref _status, 1, -1);
-                    if (_status == -1)
-                    {
-                        if (whenDisposed == null)
-                        {
-                            return default(TReturn);
-                        }
-                        else
-                        {
-                            return whenDisposed.Invoke();
-                        }
-                    }
-                    else
-                    {
-                        try
-                        {
-                            return whenNotDisposed.Invoke();
-                        }
-                        finally
-                        {
-                            System.Threading.Interlocked.Decrement(ref _status);
-                        }
-                    }
-                }
-            }
-        }
-
-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
         private void Dispose(bool disposeManagedResources)
         {
             if (TakeDisposalExecution())
@@ -171,17 +69,6 @@
             }
         }

-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        private void ProtectedCheckDisposed(string exceptionMessegeWhenDisposed)
-        {
-            if (IsDisposed)
-            {
-                throw new ObjectDisposedException(exceptionMessegeWhenDisposed);
-            }
-        }
-
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
         private bool TakeDisposalExecution()
         {
             if (_status == -1)
@@ -201,34 +88,5 @@
                 }
             }
         }
-
-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        private void ThrowDisposedexception()
-        {
-            throw new ObjectDisposedException(GetType().FullName);
-        }
-
-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        private TReturn ThrowDisposedexception<TReturn>()
-        {
-            throw new ObjectDisposedException(GetType().FullName);
-        }
-
-        [global::System.Diagnostics.DebuggerNonUserCode]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("DisposableTemplate", "1.0.0.0")]
-        private bool UnDispose()
-        {
-            if (System.Threading.Thread.VolatileRead(ref _status) == -1)
-            {
-                System.Threading.Thread.VolatileWrite(ref _status, 0);
-                return true;
-            }
-            else
-            {
-                return false;
-            }
-        }
     }
 }


[red] Document behavior for exception in call count constraint

--- tests/FakeItEasy.Specs/UserCallbackExceptionSpecs.cs
+++ tests/FakeItEasy.Specs/UserCallbackExceptionSpecs.cs
@@ -79,6 +79,28 @@
                 .x(() => exception.InnerException.Should().BeAnExceptionOfType<MyException>().Which.Message.Should().Be("Oops"));
         }

+        [Scenario]
+        public void ExceptionInCallCountSpecification(IFoo fake, Exception exception)
+        {
+            "Given a fake"
+                .x(() => fake = A.Fake<IFoo>());
+
+            "And no call to the fake is made"
+                .x(() => { });
+
+            "When an assertion is made with a call count constraint that throws an exception"
+                .x(() => exception = Record.Exception(() => A.CallTo(() => fake.Bar(0)).MustHaveHappenedANumberOfTimesMatching(n => ThrowException())));
+
+            "Then a UserCallbackException should be thrown"
+                .x(() => exception.Should().BeAnExceptionOfType<UserCallbackException>());
+
+            "And its message should describe where the exception was thrown from"
+                .x(() => exception.Message.Should().Be("Call count constraint <a number of times matching the predicate 'n => ThrowException()'> threw an exception. See inner exception for details."));
+
+            "And the inner exception should be the original exception"
+                .x(() => exception.InnerException.Should().BeAnExceptionOfType<MyException>().Which.Message.Should().Be("Oops"));
+        }
+
         private static bool ThrowException()
         {
             throw new MyException("Oops");


Fixing up ActionRotationalSkew tests:

Fixing up ActionRotationalSkew tests:

* no longer use CCLayerColor as content size of layers is now always entire screen
* instead use CCDrawNode to draw partial rects

--- tests/tests/classes/tests/ActionsTest/ActionsTest.cs
+++ tests/tests/classes/tests/ActionsTest/ActionsTest.cs
@@ -625,8 +625,8 @@

     public class ActionRotationalSkewVSStandardSkew : ActionsDemo
     {
-        CCLayerColor box1;
-        CCLayerColor box2;
+        CCDrawNode box1;
+        CCDrawNode box2;

         CCLabelTtf boxLabel1;
         CCLabelTtf boxLabel2;
@@ -652,13 +652,16 @@

         public ActionRotationalSkewVSStandardSkew()
         {
-            box1 = new CCLayerColor(new CCColor4B(255, 255, 0, 255));
+            box1 = new CCDrawNode ();
+            box1.DrawRect(new CCRect (0.0f, 0.0f, 200.0f, 200.0f), new CCColor4B(255, 255, 0, 255));
+            //new CCLayerColor();
             this.AddChild(box1);

             box1.AnchorPoint = new CCPoint(0.5f, 0.5f);
             box1.IgnoreAnchorPointForPosition = false;

-            box2 = new CCLayerColor(new CCColor4B(255, 255, 0, 255));
+            box2 = new CCDrawNode ();
+            box2.DrawRect(new CCRect (0.0f, 0.0f, 200.0f, 200.0f), new CCColor4B(255, 255, 0, 255));
             this.AddChild(box2);

             box2.AnchorPoint = new CCPoint(0.5f, 0.5f);
@@ -712,9 +715,9 @@
     {
         const float markrside = 10.0f;

-        CCLayerColor box;
-        CCLayerColor uL;
-        CCLayerColor uR;
+        CCDrawNode box;
+        CCDrawNode uL;
+        CCDrawNode uR;

         CCSkewTo actionTo;
         CCRotateTo rotateTo;
@@ -738,14 +741,17 @@

         public ActionSkewRotateScale()
         {
-            box = new CCLayerColor(new CCColor4B(255, 255, 0, 255));
+            box = new CCDrawNode();
+            box.DrawRect(new CCRect (0.0f, 0.0f, 100.0f, 100.0f), new CCColor4B(255, 255, 0, 255));
             box.AnchorPoint = new CCPoint(0, 0);

-            uL = new CCLayerColor(new CCColor4B(255, 0, 0, 255));
+            uL = new CCDrawNode();
+            uL.DrawRect(new CCRect (0.0f, 0.0f, markrside, markrside), new CCColor4B(255, 0, 0, 255));
             uL.AnchorPoint = new CCPoint(0, 0);
             box.AddChild(uL);

-            uR = new CCLayerColor(new CCColor4B(0, 0, 255, 255));
+            uR = new CCDrawNode();
+            uR.DrawRect(new CCRect (0.0f, 0.0f, markrside, markrside), new CCColor4B(0, 0, 255, 255));
             uR.AnchorPoint = new CCPoint(0, 0);
             box.AddChild(uR);


fixed issue with InferringFieldParser registration

--- StructureMap.SolrNetIntegration/SolrNetRegistry.cs
+++ StructureMap.SolrNetIntegration/SolrNetRegistry.cs
@@ -9,7 +9,6 @@
 using SolrNet.Impl.FieldSerializers;
 using SolrNet.Impl.ResponseParsers;
 using SolrNet.Mapping;
-using StructureMap.Configuration.DSL;

 namespace Structuremap.SolrNetIntegration
 {
@@ -60,10 +59,12 @@
             For(typeof(ISolrOperations<>)).Use(typeof(SolrServer<>));

             For<ISolrFieldParser>().Use<DefaultFieldParser>();
-            For<ISolrFieldParser>().Use<InferringFieldParser>().Named(typeof(InferringFieldParser).Name);
+            For<ISolrFieldParser>().Add<InferringFieldParser>().Named(typeof(InferringFieldParser).Name);

             For<ISolrFieldSerializer>().Use<DefaultFieldSerializer>();
             For<ISolrDocumentPropertyVisitor>().Use<DefaultDocumentVisitor>();
+
+            For<IHttpWebRequestFactory>().Use<HttpWebRequestFactory>();
         }

         public SolrNetRegistry(string solrURL)


Fixed Issue 20 - Rewrote BuildPagedSelectStatement() since the previous implementation was incomplete. Fixed Issue 21 - Implemented GetCountSelect() override to replace single quotes with double quotes.

--- SubSonic/SqlQuery/SqlGenerators/OracleGenerator.cs
+++ SubSonic/SqlQuery/SqlGenerators/OracleGenerator.cs
@@ -22,13 +22,6 @@
     /// </summary>
     public class OracleGenerator : ANSISqlGenerator
     {
-        private const string PAGING_SQL =
-            @"		SELECT *
-                    FROM(
-						{0}
-                    )
-					WHERE row_number BETWEEN {1} AND {2}
-                    ";
         /// <summary>
         /// Initializes a new instance of the <see cref="OracleGenerator"/> class.
         /// </summary>
@@ -71,7 +64,17 @@
                 return aggregate.ColumnName;
             if(hasAlias)
                 return String.Format("{0}({1}) AS \"{2}\"", Aggregate.GetFunctionType(aggregate).ToUpper(), aggregate.ColumnName, aggregate.Alias);
+
             return string.Format("{0}({1})", Aggregate.GetFunctionType(aggregate).ToUpper(), aggregate.ColumnName);
+        }
+
+        /// <summary>
+        /// Gets the count select.
+        /// </summary>
+        /// <returns></returns>
+        public override string GetCountSelect()
+        {
+            return base.GetCountSelect().Replace('\'', '"');
         }

         /// <summary>
@@ -80,56 +83,52 @@
         /// <returns></returns>
         public override string BuildPagedSelectStatement()
         {
-            string idColumn = GetSelectColumns()[0];
-            string sqlType;
+            int startnum = query.PageSize * query.CurrentPage + 1;
+            int endnum = query.PageSize * query.CurrentPage + query.PageSize;
+            string orderBy = String.Empty;

-            TableSchema.TableColumn idCol = FindColumn(idColumn);
-            if (idCol != null)
-            {
-                string pkType = String.Empty;
-                if (Utility.IsString(idCol))
-                    pkType = String.Concat("(", idCol.MaxLength, ")");
-                sqlType = Enum.GetName(typeof(SqlDbType), Utility.GetSqlDBType(idCol.DataType));
-                sqlType = String.Concat(sqlType, pkType);
-            }
-            else
-            {
-                //assume it's an integer
-                sqlType = Enum.GetName(typeof(SqlDbType), SqlDbType.Int);
-            }
+            if (this.query.OrderBys.Count > 0)
+                orderBy = GenerateOrderBy();

-            string select = GenerateCommandLine();
-            //string columnList = select.Replace("SELECT", "");
-            string fromLine = GenerateFromList();
-            string joins = GenerateJoins();
-            string wheres = GenerateWhere();
-            string havings = string.Empty;
+            //The ROW_NUMBER() function in Oracle requires an ORDER BY clause.
+            //In case one is not specified, we need to halt and inform the caller.
+            if(orderBy.Equals(String.Empty))
+                throw new ArgumentException("There is no column specified for the ORDER BY clause", "OrderBys");
+
+            System.Text.StringBuilder sql = new System.Text.StringBuilder();

-            //have to doctor the wheres, since we're using a WHERE in the paging
-            //bits. So change all "WHERE" to "AND"
-            string tweakedWheres = wheres.Replace("WHERE", "AND");
-            string orderby = GenerateOrderBy();
+            //Build the command string
+            sql.Append("WITH pagedtable AS (");
+            sql.Append(GenerateCommandLine());
+
+            //Since this class is for Oracle-specific SQL, we can add a hint
+            //which should help pagination queries return rows more quickly.
+            //AFAIK, this is only valid for Oracle 9i or newer.
+            sql.Replace("SELECT", "SELECT /*+ first_rows('" + query.PageSize + "') */");
+
+            sql.Append(", ROW_NUMBER () OVER (");
+            sql.Append(orderBy);
+            sql.Append(") AS rowindex ");
+            sql.Append(Environment.NewLine);
+            sql.Append(GenerateFromList());
+            sql.Append(GenerateJoins());
+
+            sql.Append(GenerateWhere());

             if (query.Aggregates.Count > 0)
             {
-                joins = String.Concat(joins, GenerateGroupBy());
-                havings = GenerateHaving();
+                sql.Append(GenerateGroupBy());
+                sql.Append(Environment.NewLine);
+                sql.Append(GenerateHaving());
             }

-            //this uses SQL2000-compliant paging
-            //the arguments are...
-            //1 - id column - this is the PK or identifier
-            //2 - from/join/where
-            //3 - select/from/joins
-            //4 - where/order by
-            //5 - page index
-            //6 - page size
-            //7 - PK Type (using Utility.GetSqlDBType)
-            int startnum = query.PageSize*query.CurrentPage +1;
-            int endnum = query.PageSize*query.CurrentPage + query.PageSize;
-            string sql = string.Format(PAGING_SQL, String.Concat(select, fromLine.Replace("FROM", ", ROWNUM as row_number  FROM"), joins), startnum, endnum);
+            sql.Append(") SELECT * FROM pagedtable WHERE rowindex >= ");
+            sql.Append(startnum);
+            sql.Append(" AND rowindex < ");
+            sql.Append(endnum);
+            sql.Append(" ORDER BY rowindex");

-            return sql;
+            return sql.ToString();
         }

         #endregion


[WIP] Update tests.

[WIP] Update tests.

--- Tests/CK.Glouton.Tests.NetFramework/LuceneTests.cs
+++ Tests/CK.Glouton.Tests.NetFramework/LuceneTests.cs
@@ -68,8 +68,18 @@
                 }
             }

-            var searcher = new LuceneSearcher( LuceneSearcherConfiguration, new[] { "LogLevel", "Text" } );
-            var result = searcher.Search("Text:\"Hello world\"");
+            LuceneSearcherManager searcherManager = new LuceneSearcherManager(LuceneSearcherConfiguration);
+            var searcher = searcherManager.GetSearcher(LuceneSearcherConfiguration.ActualPath);
+
+            LuceneSearcherConfiguration configuration = new LuceneSearcherConfiguration
+            {
+                Fields = new[] { "LogLevel", "Text" },
+                SearchMethod = SearchMethod.FullText,
+                MaxResult = 10,
+                Query = "Text:\"Hello world\""
+            };
+
+            var result = searcher.Search(configuration);
             result.Should().NotBeNull();
             result.Count.Should().Be(1);
             result[0].LogType.Should().Be(ELogType.Line);
@@ -78,8 +88,9 @@
             log.Text.Should().Be("Hello world");
             log.LogLevel.Should().Contain("Info");

+            configuration.Query = "Text:\"CriticalError\"";

-            result = searcher.Search("Text:\"CriticalError\"");
+            result = searcher.Search(configuration);
             result.Should().NotBeNull();
             result.Count.Should().Be(1);
             result[0].LogType.Should().Be(ELogType.Line);


use non-static method

use non-static method

--- Titanium.Web.Proxy/Helpers/CustomBufferedStream.cs
+++ Titanium.Web.Proxy/Helpers/CustomBufferedStream.cs
@@ -14,7 +14,7 @@
     /// <seealso cref="System.IO.Stream" />
     internal class CustomBufferedStream : Stream
     {
-        private readonly AsyncCallback readCallback = ReadCallback;
+        private AsyncCallback readCallback;

         private readonly Stream baseStream;

@@ -27,6 +27,7 @@
         private int bufferPos;

         private bool disposed;
+
         /// <summary>
         /// Initializes a new instance of the <see cref="CustomBufferedStream"/> class.
         /// </summary>
@@ -34,6 +35,7 @@
         /// <param name="bufferSize">Size of the buffer.</param>
         public CustomBufferedStream(Stream baseStream, int bufferSize)
         {
+            readCallback = new AsyncCallback(ReadCallback);
             this.baseStream = baseStream;
             streamBuffer = BufferPool.GetBuffer(bufferSize);
         }
@@ -137,7 +139,7 @@
             return result;
         }

-        private static void ReadCallback(IAsyncResult ar)
+        private void ReadCallback(IAsyncResult ar)
         {
             var readResult = (ReadAsyncResult)ar.AsyncState;
             readResult.BaseResult = ar;
@@ -363,6 +365,7 @@
                 baseStream.Dispose();
                 BufferPool.ReturnBuffer(streamBuffer);
                 streamBuffer = null;
+                readCallback = null;
             }

         }


Static isolator fix

Static isolator fix

--- UserInterface/WinForms/LeanEngineWinForm.Events.cs
+++ UserInterface/WinForms/LeanEngineWinForm.Events.cs
@@ -29,7 +29,6 @@
         /// </summary>
         private void OnClosed(object sender, EventArgs eventArgs)
         {
-            Isolator.Cancellation.Cancel();
             Environment.Exit(0);
         }


Generator: use only untranslated singular for ID

Rdio: fixes http://phabricator.720.rdio.com/T177

--- Vernacular.Tool/Vernacular.Generators/Generator.cs
+++ Vernacular.Tool/Vernacular.Generators/Generator.cs
@@ -197,9 +197,7 @@
                     continue;
                 }

-                var untranslated = i == 0
-                    ? localizedString.UntranslatedSingularValue
-                    : localizedString.UntranslatedPluralValue;
+                var untranslated = localizedString.UntranslatedSingularValue;

                 if (i == 0 && String.IsNullOrWhiteSpace (untranslated)) {
                     continue;


Set neutral resource language.

Set neutral resource language.

--- WP7/FacetedWorlds.MyCon/Properties/AssemblyInfo.cs
+++ WP7/FacetedWorlds.MyCon/Properties/AssemblyInfo.cs
@@ -1,6 +1,7 @@
 using System.Reflection;
 using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
+using System.Resources;

 // General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
@@ -33,3 +34,4 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("1.0.0.0")]
 [assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: NeutralResourcesLanguageAttribute("en-US")]


Added warning that "r" field may not be present

--- WebSite/Views/Documentation/DownloadInstall.cshtml
+++ WebSite/Views/Documentation/DownloadInstall.cshtml
@@ -170,7 +170,7 @@
         The AJAX appender sends messages as JSON strings, in this format:

{
-    r:  "request id",
+    r:  "request id", // may not be present
     lg: [
         { l: level, m: 'message', n: 'logger name', t: timestamp },
         ...
@@ -178,9 +178,21 @@
 }

-        Note that a single JSON message to the server can contain multiple log messages. This is because the AJAX appender can be configured
+        Some less obvious things about this format:
+

+

+

+            The "r" field (containing the request id) will only be present in the message if the request id has been set
+            (using the JL
+        @Html.ViewLink("jsnlogjs-jl-setOptions")<text>).</text> Be sure that your code doesn't crash
+            if that field is not in the message.
+

+

+

+        A single JSON message to the server can contain multiple log messages. This is because the AJAX appender can be configured
         to batch messages, for example 2 log messages per JSON message to the server.
-

+

+

         About the individual fields:


added ForEAch over Ienumrable extension

added ForEAch over Ienumrable extension

--- SharpToolkit.Extensions.Collections/LinqExtensions.cs
+++ SharpToolkit.Extensions.Collections/LinqExtensions.cs
@@ -33,6 +33,21 @@
         {
             yield return item;
         }
-
+
+        /// <summary>
+        /// Go over a collection and perform an action on each item
+        /// </summary>
+        /// <typeparam name="T"> Type of the object. </typeparam>
+        /// <param name="collection"> The Collection. </param>
+        /// <param name="action"> The action to perform on each collection item. </param>
+        public static void ForEach<T>(this IEnumerable<T> collection, Action<T> action)
+        {
+            if (collection == null) throw new NullReferenceException(nameof(collection));
+            foreach (var item in collection)
+            {
+                action(item);
+            }
+        }
+
     }
 }


Check handle before passing into RenderTarget

--- Sharpex.GameLibrary/Framework/Surface/RenderTarget.cs
+++ Sharpex.GameLibrary/Framework/Surface/RenderTarget.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Windows.Forms;
 using SharpexGL.Framework.Components;

 namespace SharpexGL.Framework.Surface
@@ -21,7 +22,7 @@
         /// Initializes a new RenderTarget class.
         /// </summary>
         /// <param name="handle">The WindowHandle.</param>
-        public RenderTarget(IntPtr handle)
+        internal RenderTarget(IntPtr handle)
         {
             Handle = handle;
             SurfaceControl = new WindowController(this);
@@ -42,5 +43,19 @@
         {
             get { return ((WindowController) SurfaceControl).IsFullscreen(); }
         }
+        /// <summary>
+        /// Create a new RenderTarget from a specified handle.
+        /// </summary>
+        /// <param name="handle">The Handle.</param>
+        /// <returns>RenderTarget</returns>
+        public static RenderTarget FromHandle(IntPtr handle)
+        {
+            if (Control.FromHandle(handle) is Form)
+            {
+                return new RenderTarget(handle);
+            }
+
+            throw new InvalidOperationException("The given Handle is not a window.");
+        }
     }
 }


Lite operations can be executed from entities, as long as they are not modified.

--- Signum.Engine.Extensions/Operations/OperationLogic.cs
+++ Signum.Engine.Extensions/Operations/OperationLogic.cs
@@ -201,51 +201,41 @@
         #region Execute
         public static IdentifiableEntity ServiceExecute(IIdentifiable entity, Enum operationKey, params object[] args)
         {
-            Find<IExecuteOperation>(entity.GetType(), operationKey).AssertLite(false).Execute(entity, args);
+            var op = Find<IExecuteOperation>(entity.GetType(), operationKey).AssertEntity((IdentifiableEntity)entity);
+            op.Execute(entity, args);
             return (IdentifiableEntity)entity;
         }

         public static IdentifiableEntity ServiceExecuteLite(Lite lite, Enum operationKey, params object[] args)
         {
             IdentifiableEntity entity = Database.RetrieveAndForget(lite);
-            Find<IExecuteOperation>(lite.RuntimeType, operationKey).AssertLite(true).Execute(entity, args);
+            var op = Find<IExecuteOperation>(lite.RuntimeType, operationKey).AssertLite();
+            op.Execute(entity, args);
             return entity;
         }

         public static T Execute<T>(this T entity, Enum operationKey, params object[] args)
            where T : class, IIdentifiable
         {
-            Find<IExecuteOperation>(entity.GetType(), operationKey).AssertLite(false).Execute(entity, args);
+            var op = Find<IExecuteOperation>(entity.GetType(), operationKey).AssertEntity((IdentifiableEntity)(IIdentifiable)entity);
+            op.Execute(entity, args);
             return (T)(IIdentifiable)entity;
         }

         public static T ExecuteLite<T>(this Lite<T> lite, Enum operationKey, params object[] args)
             where T : class, IIdentifiable
         {
-            T  entity = lite.RetrieveAndForget();
-            Find<IExecuteOperation>(lite.RuntimeType, operationKey).AssertLite(true).Execute(entity, args);
+            T entity = lite.RetrieveAndForget();
+            var op = Find<IExecuteOperation>(lite.RuntimeType, operationKey).AssertLite();
+            op.Execute(entity, args);
             return entity;
         }

         public static string CanExecute<T>(this T entity, Enum operationKey)
            where T : class, IIdentifiable
         {
-            return Find<IEntityOperation>(entity.GetType(), operationKey).CanExecute(entity);
-        }
-
-        public static T ExecuteBase<T>(this T entity, Type baseType, Enum operationKey, params object[] args)
-             where T : class, IIdentifiable
-        {
-            Find<IExecuteOperation>(baseType, operationKey).AssertLite(false).Execute(entity, args);
-            return entity;
-        }
-
-        public static T ExecuteLiteBase<T>(this Lite<T> lite, Type baseType, Enum operationKey, params object[] args)
-            where T:class, IIdentifiable
-        {
-            T entity = lite.RetrieveAndForget();
-            Find<IExecuteOperation>(baseType, operationKey).AssertLite(true).Execute(entity, args);
-            return entity;
+            var op = Find<IEntityOperation>(entity.GetType(), operationKey);
+            return op.CanExecute(entity);
         }
         #endregion

@@ -253,7 +243,8 @@
         public static IdentifiableEntity ServiceDelete(Lite lite, Enum operationKey, params object[] args)
         {
             IdentifiableEntity entity = Database.RetrieveAndForget(lite);
-            Find<IDeleteOperation>(lite.RuntimeType, operationKey).Delete(entity, args);
+            var op = Find<IDeleteOperation>(lite.RuntimeType, operationKey);
+            op.Delete(entity, args);
             return entity;
         }

@@ -261,64 +252,51 @@
             where T : class, IIdentifiable
         {
             T entity = lite.RetrieveAndForget();
-            Find<IDeleteOperation>(lite.RuntimeType, operationKey).Delete(entity, args);
-        }
-
-        public static void DeleteBase<T>(this Lite<T> lite, Type baseType, Enum operationKey, params object[] args)
-            where T : class, IIdentifiable
-        {
-            T entity = lite.RetrieveAndForget();
-            Find<IDeleteOperation>(baseType, operationKey).Delete(entity, args);
+            var op = Find<IDeleteOperation>(lite.RuntimeType, operationKey);
+            op.Delete(entity, args);
         }
         #endregion

         #region Construct
         public static IIdentifiable ServiceConstruct(Type type, Enum operationKey, params object[] args)
         {
-            return Find<IConstructOperation>(type, operationKey).Construct(args);
+            var op = Find<IConstructOperation>(type, operationKey);
+            return op.Construct(args);
         }

         public static T Construct<T>(Enum operationKey, params object[] args)
             where T : class, IIdentifiable
         {
-            return (T)Find<IConstructOperation>(typeof(T), operationKey).Construct(args);
+            var op = Find<IConstructOperation>(typeof(T), operationKey);
+            return (T)op.Construct(args);
         }
         #endregion

         #region ConstructFrom
         public static IIdentifiable ServiceConstructFrom(IIdentifiable entity, Enum operationKey, params object[] args)
         {
-            return Find<IConstructorFromOperation>(entity.GetType(), operationKey).AssertLite(false).Construct(entity, args);
+            var op = Find<IConstructorFromOperation>(entity.GetType(), operationKey).AssertEntity((IdentifiableEntity)entity);
+            return op.Construct(entity, args);
         }

         public static IIdentifiable ServiceConstructFromLite(Lite lite, Enum operationKey, params object[] args)
         {
-            return Find<IConstructorFromOperation>(lite.RuntimeType, operationKey).AssertLite(true).Construct(Database.RetrieveAndForget(lite), args);
-        }
-
+            var op = Find<IConstructorFromOperation>(lite.RuntimeType, operationKey).AssertLite();
+            return op.Construct(Database.RetrieveAndForget(lite), args);
+        }

         public static T ConstructFrom<T>(this IIdentifiable entity, Enum operationKey, params object[] args)
               where T : class, IIdentifiable
         {
-            return (T)Find<IConstructorFromOperation>(entity.GetType(), operationKey).AssertLite(false).Construct(entity, args);
+            var op = Find<IConstructorFromOperation>(entity.GetType(), operationKey).AssertEntity((IdentifiableEntity)entity);
+            return (T)op.Construct(entity, args);
         }

         public static T ConstructFromLite<T>(this Lite lite, Enum operationKey, params object[] args)
            where T : class, IIdentifiable
         {
-            return (T)Find<IConstructorFromOperation>(lite.RuntimeType, operationKey).AssertLite(true).Construct(Database.RetrieveAndForget(lite), args);
-        }
-
-        public static T ConstructFromBase<T>(this IIdentifiable entity, Type baseType, Enum operationKey, params object[] args)
-            where T : class, IIdentifiable
-        {
-            return (T)Find<IConstructorFromOperation>(baseType, operationKey).AssertLite(false).Construct(entity, args);
-        }
-
-        public static T ConstructFromLiteBase<T>(this Lite lite, Type baseType, Enum operationKey, params object[] args)
-               where T : class, IIdentifiable
-        {
-            return (T)Find<IConstructorFromOperation>(baseType, operationKey).AssertLite(true).Construct(Database.RetrieveAndForget(lite), args);
+            var op = Find<IConstructorFromOperation>(lite.RuntimeType, operationKey).AssertLite();
+            return (T)op.Construct(Database.RetrieveAndForget(lite), args);
         }
         #endregion

@@ -336,7 +314,7 @@
         }
         #endregion

-        static T Find<T>(Type type, Enum operationKey)
+        public static T Find<T>(Type type, Enum operationKey)
             where T : IOperation
         {
             IOperation result = operations.TryGetValue(type).TryGetC(operationKey);
@@ -354,16 +332,26 @@
             return (T)result;
         }

-        static T AssertLite<T>(this T result, bool isLite)
+        static T AssertLite<T>(this T result)
              where T : IEntityOperation
         {
-            if (isLite && !result.Lite)
+            if (!result.Lite)
                 throw new InvalidOperationException("Operation {0} is not allowed for Lites".Formato(result.Key));

-            if (!isLite && result.Lite)
-               throw new InvalidOperationException("Operation {0} needs a Lite".Formato(result.Key));
-
-            return result;
+            return result;
+        }
+
+        static T AssertEntity<T>(this T result, IdentifiableEntity entity)
+            where T : IEntityOperation
+        {
+            if (result.Lite)
+            {
+                var list = GraphExplorer.FromRoot(entity).Where(a => a.SelfModified);
+                throw new InvalidOperationException("Operation {0} needs a Lite or a fresh entity, but the entity is modifie:\r\n {0}".Formato(result.Key, list.ToString("\r\n")));
+            }
+
+
+            return result;
         }

         public static bool IsLite(Enum operationKey)


fix List of string problem

fix List of string problem

--- Signum.Engine.Extensions/Templating/CommonTemplate.cs
+++ Signum.Engine.Extensions/Templating/CommonTemplate.cs
@@ -197,7 +197,7 @@
     {
         var members = new List<MemberInfo>();
         var type = modelType;
-        foreach (var field in (fieldOrPropertyChain ?? "").Trim().Split('.'))
+        foreach (var field in (fieldOrPropertyChain ?? "").Trim().SplitNoEmpty('.'))
         {
             var info = (MemberInfo?)type.GetField(field, Flags) ??
                        (MemberInfo?)type.GetProperty(field, Flags) ??


compile fix

compile fix

--- SimpleScene/Extra/Missiles/SSpaceMissileParameters.cs
+++ SimpleScene/Extra/Missiles/SSpaceMissileParameters.cs
@@ -74,6 +74,11 @@
             this.pursuitMaxVelocity = other.pursuitMaxVelocity;
             this.pursuitNavigationGain = other.pursuitNavigationGain;
         }
+
+        public SSpaceMissileParameters shallowClone()
+        {
+            return (SSpaceMissileParameters)this.MemberwiseClone();
+        }
     }

     [Serializable]


nuldlrefrence fix

nuldlrefrence fix

--- Skermstafir/Views/Shared/_SearchResultRequests.cshtml
+++ Skermstafir/Views/Shared/_SearchResultRequests.cshtml
@@ -1,4 +1,6 @@
-

+@if (Model.modelList != null) {
+
+

@@ -20,38 +22,52 @@

-

+

-		@foreach (var request in Model.modelList)
+		    @foreach (var request in Model.modelList)

-		{
+		    {

-

+

-
%
 @request.Votes.Count
+
%
 @request.Votes.Count

-				@Html.ActionLink((string)request.Name, "ShowRequest", new { controller = "Request", id = request.IdRequest }, "Request")
+				    @Html.ActionLink((string)request.Name, "ShowRequest", new { controller = "Request", id = request.IdRequest }, "Request")

-				@request.YearCreated
+				    @request.YearCreated

-				@request.Language.Name
+				    @request.Language.Name

-				@request.Username
+				    @request.Username

-
+

-                    <button type="button" class="btn btn-default downloadbtn" onclick="location.href='@Url.Action("CreateSubtitle", "Subtitle")'">
+                        <button type="button" class="btn btn-default downloadbtn" onclick="location.href='@Url.Action("CreateSubtitle", "Subtitle")'">

-
Stofna ingu

+
Stofna ingu

-                    </button>
+                        </button>

-
+

-

+

-		}
+		    }

-

+

-
+

+
+
+
+} else {
+
+

+
+
v miur fannst engin beini sem passai vi leytarskilyrin n

+
+}
+
+
+
+


Fix TMP initialization

Fix TMP initialization

--- Source/BetterManeuvering/ManeuverTextMeshProHolder.cs
+++ Source/BetterManeuvering/ManeuverTextMeshProHolder.cs
@@ -38,6 +38,8 @@

 		new private void Awake()
 		{
+			m_isAlignmentEnumConverted = true;
+
 			base.Awake();

 			_handler = GetComponent<TextHandler>();


ICodeSetReduction Fix

ICodeSetReduction Fix

--- Source/Code/Collections/ICodeSet/ICodeSetReduction.cs
+++ Source/Code/Collections/ICodeSet/ICodeSetReduction.cs
@@ -94,9 +94,11 @@
 				Contract.Assert (self.Span() != self.Count); // not Full -> has complement items

 				// not reduced, create complement
-				var complement = new BitSetArray(self.Length);
+				int start = (int)self.First;
+				int final = (int)self.Last;
+				var complement = BitSetArray.Size(self.Length);
 				foreach (var item in self.Complement()) {
-					if (self.InRange(item)) {
+					if (item.InRange(start, final)) {
 						complement.Set(item);
 					}
 				}


Added another test

Added another test

--- Source/GameFifteen.LogicTests/GameInitializerTests.cs
+++ Source/GameFifteen.LogicTests/GameInitializerTests.cs
@@ -29,5 +29,14 @@
             mockedInitializer.Object.InitilizeGrid(fakeGrid.Object);
             mockedInitializer.Verify(m => m.InitilizeGrid(fakeGrid.Object), Times.Exactly(1));
         }
+
+        [TestMethod]
+        public void TileEngineInitializeMethodShouldBeInvokedOnce()
+        {
+            var mEngine = new Mock<IEngine>();
+            mEngine.Setup(x => x.Initialize());
+            mEngine.Object.Initialize();
+            mEngine.Verify(x => x.Initialize(), Times.Exactly(1));
+        }
     }
 }


Test Reload of List

Test Reload of List

--- Spa/NakedObjects.Spa.Selenium.Test/tests/ListTests.cs
+++ Spa/NakedObjects.Spa.Selenium.Test/tests/ListTests.cs
@@ -124,6 +124,25 @@
             wait.Until(dr => dr.FindElement(By.CssSelector(".collection .summary .details")).Text
         == "Page 1 of 1574; viewing 20 of 31465 items");
         }
+
+        [TestMethod]
+        public virtual void GoingBackToListViewRequiresReload()
+        {
+            Url(SpecialOffersMenuUrl);
+            Click(GetObjectAction("Current Special Offers"));
+            WaitForView(Pane.Single, PaneType.List, "Current Special Offers");
+            var row = WaitForCss(".reference");
+            Click(row);
+            WaitForView(Pane.Single, PaneType.Object, "No Discount");
+            Click(br.FindElement(By.CssSelector(".icon-back")));
+            WaitForView(Pane.Single, PaneType.List);
+            GetButton("Reload");  //i.e. test this exists
+            WaitUntilElementDoesNotExist(".collection .summary .details");
+            Reload();
+            WaitForView(Pane.Single, PaneType.List, "Current Special Offers");
+            wait.Until(dr => dr.FindElements(By.CssSelector(".reference")).Count > 1);
+
+        }
     }

     #region browsers specific subclasses


Added missing semicolon.

Added missing semicolon.

--- DownloadManager/Plugin.DownloadManager/CrossDownloadManager.cs
+++ DownloadManager/Plugin.DownloadManager/CrossDownloadManager.cs
@@ -46,7 +46,7 @@
 #elif __ANDROID__
             return new DownloadManagerImplementation();
 #else
-            return null
+            return null;
 #endif
         }


TilemapCollider Rounded Corners #ADD: Added optional generation of rounded corners in tilemap shapes.

--- DualityPlugins/Tilemaps/Tilemaps/Components/TilemapCollider.cs
+++ DualityPlugins/Tilemaps/Tilemaps/Components/TilemapCollider.cs
@@ -38,6 +38,7 @@
 		private Alignment                origin          = Alignment.Center;
 		private TilemapCollisionSource[] source          = DefaultSource;
 		private bool                     solidOuterEdges = true;
+		private bool                     roundedCorners  = false;

 		[DontSerialize] private Tilemap referenceTilemap = null;
 		[DontSerialize] private Tilemap[] sourceTilemaps = null;
@@ -59,7 +60,7 @@
 				if (this.origin != value)
 				{
 					this.origin = value;
-					this.UpdateRigidBody();
+					this.UpdateRigidBody(true);
 				}
 			}
 		}
@@ -78,7 +79,7 @@
 					this.source = value.ToArray() ?? DefaultSource;
 					this.RetrieveSourceTilemaps();
 					this.SubscribeSourceEvents();
-					this.UpdateRigidBody();
+					this.UpdateRigidBody(false);
 				}
 			}
 		}
@@ -93,7 +94,22 @@
 				if (this.solidOuterEdges != value)
 				{
 					this.solidOuterEdges = value;
-					this.UpdateRigidBody();
+					this.UpdateRigidBody(true);
+				}
+			}
+		}
+		/// <summary>
+		/// [GET / SET] Whether the <see cref="TilemapCollider"/> will attempt to generate rounded corners instead of sharp ones.
+		/// </summary>
+		public bool RoundedCorners
+		{
+			get { return this.roundedCorners; }
+			set
+			{
+				if (this.roundedCorners != value)
+				{
+					this.roundedCorners = value;
+					this.UpdateRigidBody(true);
 				}
 			}
 		}
@@ -132,16 +148,28 @@
 			}
 			body.EndUpdateBodyShape();
 		}
-		private void UpdateRigidBody()
+		private void UpdateRigidBody(bool rebuildEvenIfUnchanged)
 		{
 			this.tileCount = GetTileCount(this.sourceTilemaps);
-
 			this.sectorCount = new Point2(
 				1 + ((this.tileCount.X - 1) / SectorSize),
 				1 + ((this.tileCount.Y - 1) / SectorSize));
-			this.sectors = new Grid<Sector>(
-				this.sectorCount.X,
-				this.sectorCount.Y);
+
+			if (this.sectors == null)
+			{
+				this.sectors = new Grid<Sector>(
+					this.sectorCount.X,
+					this.sectorCount.Y);
+			}
+			else if (rebuildEvenIfUnchanged ||
+				this.sectors.Width != this.sectorCount.X ||
+				this.sectors.Height != this.sectorCount.Y)
+			{
+				this.ClearRigidBody();
+				this.sectors.ResizeClear(
+					this.sectorCount.X,
+					this.sectorCount.Y);
+			}

 			RigidBody body = this.GameObj.GetComponent<RigidBody>();
 			body.BeginUpdateBodyShape();
@@ -193,7 +221,7 @@
 					Tileset tileset = tilemap != null ? tilemap.Tileset.Res : null;
 					Vector2 tileSize = tileset != null ? tileset.TileSize : Tileset.DefaultTileSize;
 					Rect localRect = Rect.Align(this.origin, 0, 0, this.tileCount.X * tileSize.X, this.tileCount.Y * tileSize.Y);
-					GenerateCollisionShapes(this.tempEdgeMap, localRect.TopLeft, tileSize, sector.Shapes);
+					GenerateCollisionShapes(this.tempEdgeMap, localRect.TopLeft, tileSize, this.roundedCorners, sector.Shapes);

 					// Add all the generated shapes to the target body
 					foreach (ShapeInfo shape in sector.Shapes)
@@ -281,7 +309,7 @@
 			if (context == InitContext.Activate)
 			{
 				this.RetrieveSourceTilemaps();
-				this.UpdateRigidBody();
+				this.UpdateRigidBody(true);
 				this.SubscribeSourceEvents();
 			}
 			else if (context == InitContext.Saved)
@@ -343,7 +371,7 @@
 			Point2 newTileCount = GetTileCount(this.sourceTilemaps);
 			if (newTileCount != this.tileCount)
 			{
-				this.UpdateRigidBody();
+				this.UpdateRigidBody(false);
 			}
 			// Otherwise, only update the sectors that are affected by the change
 			else
@@ -469,7 +497,7 @@
 				targetEdgeMap.AddEdge(new Point2(targetEdgeMap.Width - 1, y - 1), new Point2(targetEdgeMap.Width - 1, y));
 			}
 		}
-		private static void GenerateCollisionShapes(TileEdgeMap edgeMap, Vector2 origin, Vector2 tileSize, IList<ShapeInfo> shapeList)
+		private static void GenerateCollisionShapes(TileEdgeMap edgeMap, Vector2 origin, Vector2 tileSize, bool roundedCorners, IList<ShapeInfo> shapeList)
 		{
 			// Traverse the edge map and gradually create chain / loop
 			// shapes until all edges have been used.
@@ -508,11 +536,38 @@

 				// Generate a shape from the current chain
 				bool isLoop = (start == currentChain[currentChain.Count - 1]);
+				if (isLoop) currentChain.RemoveAt(currentChain.Count - 1);
 				vertexBuffer.Clear();
-				vertexBuffer.Count = isLoop ? currentChain.Count - 1 : currentChain.Count;
-				for (int i = 0; i < vertexBuffer.Count; i++)
-				{
-					vertexBuffer[i] = origin + tileSize * (Vector2)currentChain[i];
+				if (roundedCorners && currentChain.Count >= 3)
+				{
+					vertexBuffer.Count = currentChain.Count * 2;
+					for (int i = 0; i < currentChain.Count; i++)
+					{
+						int prevIndex = (i - 1 + currentChain.Count) % currentChain.Count;
+						int nextIndex = (i + 1) % currentChain.Count;
+
+						Vector2 currentVert = origin + tileSize * (Vector2)currentChain[i];
+						Vector2 prevVert = origin + tileSize * (Vector2)currentChain[prevIndex];
+						Vector2 nextVert = origin + tileSize * (Vector2)currentChain[nextIndex];
+
+						vertexBuffer[i * 2] = currentVert + (prevVert - currentVert).Normalized * tileSize * 0.2f;
+						vertexBuffer[i * 2 + 1] = currentVert + (nextVert - currentVert).Normalized * tileSize * 0.2f;
+					}
+					if (!isLoop)
+					{
+						Vector2 firstVert = origin + tileSize * (Vector2)currentChain[0];
+						Vector2 lastVert = origin + tileSize * (Vector2)currentChain[currentChain.Count - 1];
+						vertexBuffer[0] = firstVert;
+						vertexBuffer[vertexBuffer.Count - 1] = lastVert;
+					}
+				}
+				else
+				{
+					vertexBuffer.Count = currentChain.Count;
+					for (int i = 0; i < vertexBuffer.Count; i++)
+					{
+						vertexBuffer[i] = origin + tileSize * (Vector2)currentChain[i];
+					}
 				}
 				shapeList.Add(isLoop ?
 					(ShapeInfo)new LoopShapeInfo(vertexBuffer) :


Updated Rename method.

Updated Rename method.

--- Duplicati/Library/Backend/GoogleServices/GoogleCloudStorage.cs
+++ Duplicati/Library/Backend/GoogleServices/GoogleCloudStorage.cs
@@ -318,7 +318,13 @@
                 name = m_prefix + newname,
             }));

-            var url = string.Format("{0}/b/{1}/o/{2}", WebApi.GoogleCloudStorage.Url.API, m_bucket, Library.Utility.Uri.UrlPathEncode(m_prefix + oldname));
+            var path = UrlPath.Create(WebApi.GoogleCloudStorage.Path.Bucket)
+                              .Append(m_bucket)
+                              .Append(WebApi.GoogleCloudStorage.Path.Object)
+                              .Append(Library.Utility.Uri.UrlPathEncode(m_prefix + oldname)).ToString();
+
+            var url = Utility.Uri.UriBuilder(WebApi.GoogleCloudStorage.Url.API, path);
+
             var req = m_oauth.CreateRequest(url);
             req.Method = "PATCH";
             req.ContentLength = data.Length;


fix a bug.

fix a bug.

--- ElectronicObserver/Observer/kcsapi/api_get_member/ship_deck.cs
+++ ElectronicObserver/Observer/kcsapi/api_get_member/ship_deck.cs
@@ -15,11 +15,14 @@

 			//api_ship_data
-			db.Ships.Clear();
 			foreach ( var elem in data.api_ship_data ) {

 				var a = new ShipData();
 				a.LoadFromResponse( APIName, elem );
+
+				if ( db.Ships.ContainsKey( a.ID ) ) {
+					db.Ships.Remove( a.ID );
+				}
 				db.Ships.Add( a );

 			}


Fixed bug overwriting globalPsm in each partition.

--- EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeEngine.cs
+++ EngineLayer/NonSpecificEnzymeSearch/NonSpecificEnzymeEngine.cs
@@ -88,8 +88,9 @@

                     if (classicAntigens)
                     {
-                        var searchMode = searchModes[openSearchIndex];
                         double currentBestScore = bestScores[openSearchIndex];
+                        if (globalPsms[openSearchIndex][i] != null)
+                            currentBestScore = globalPsms[openSearchIndex][i].Score;
                         for (int possibleWinningPeptideIndex = 0; possibleWinningPeptideIndex < fullPeptideScores.Length; possibleWinningPeptideIndex++)
                         {
                             var consideredScore = fullPeptideScores[possibleWinningPeptideIndex];
@@ -207,8 +208,15 @@
                     {
                         if (bestPeptides[j] != null)
                         {
-                            globalPsms[j][i] = new Psm(bestPeptides[j][0], bestNotches[j][0], bestScores[j], i, thisScan);
-                            for (int k = 1; k < bestPeptides[j].Count; k++)
+                            int startIndex = 0;
+
+                            if (globalPsms[j][i] == null)
+                            {
+                                globalPsms[j][i] = new Psm(bestPeptides[j][0], bestNotches[j][0], bestScores[j], i, thisScan);
+                                startIndex = 1;
+                            }
+
+                            for (int k=startIndex;  k < bestPeptides[j].Count; k++)
                             {
                                 globalPsms[j][i].AddOrReplace(bestPeptides[j][k], bestScores[j], bestNotches[j][k]);
                             }


remove (unintentional?) '@' syntax, add discard signifier

--- ExtensionManager/ExtensionManager/ExtensionManagerExtension.cs
+++ ExtensionManager/ExtensionManager/ExtensionManagerExtension.cs
@@ -36,7 +36,7 @@

             var homeTab = IrAuthorShell.HomeTab;
             var group = homeTab.AddGroup("Extension Gallery", ImageFactory.GetImage("irAuthor", "Images/SmileFace16.png"));
-            @group.AddButton(ViewGalleryCommand);
+            _ = group.AddButton(ViewGalleryCommand);
         }

         private void ViewGallery(object obj)


Fix warning

Fix warning

--- osu.Framework.Tests/Visual/TestCaseHandleInput.cs
+++ osu.Framework.Tests/Visual/TestCaseHandleInput.cs
@@ -66,7 +66,7 @@
             private bool enabled;
             public bool Enabled
             {
-                get => enabled;
+                protected get => enabled;
                 set
                 {
                     enabled = value;


HarshEntityMetadataContentTypeTests

HarshEntityMetadataContentTypeTests

--- HarshPoint.Tests/Entity/HarshEntityMetadataContentTypeTests.cs
+++ HarshPoint.Tests/Entity/HarshEntityMetadataContentTypeTests.cs
@@ -1,11 +1,15 @@
-using HarshPoint.Entity.Metadata;
+using HarshPoint.Entity;
+using HarshPoint.Entity.Metadata;
 using System;
+using System.Linq;
 using Xunit;

 namespace HarshPoint.Tests.Entity
 {
     public class HarshEntityMetadataContentTypeTests
     {
+        private const String DummyId = "0x0100a15a2839db44414a86489b400d47a319";
+
         [Fact]
         public void Fails_without_a_ContentTypeAttribute()
         {
@@ -15,8 +19,76 @@
             );
         }

+        [Fact]
+        public void Fails_when_not_inherited_form_HarshEntity()
+        {
+            Assert.Throws(
+                typeof(ArgumentOutOfRangeException),
+                () => new HarshEntityMetadataContentType(typeof(NotAnEntity))
+            );
+        }
+
+        [Fact]
+        public void Succeeds_with_a_ContentTypeAttribute()
+        {
+            var md = new HarshEntityMetadataContentType(typeof(EmptyContentType));
+            Assert.Equal(DummyId, md.ContentTypeId, StringComparer.OrdinalIgnoreCase);
+        }
+
+        [Fact]
+        public void Finds_readable_writable_properties_with_FieldAttribute()
+        {
+            var md = new HarshEntityMetadataContentType(typeof(ContentTypeWithFields));
+            Assert.Single(md.DeclaredFields);
+
+            var field = md.DeclaredFields.First();
+            Assert.NotNull(field);
+            Assert.Equal("FinallyAField", field.InternalName);
+            Assert.Equal("FinallyAField", field.StaticName);
+            Assert.Equal(new Guid("de5e71bc-8ba9-4693-84b4-615b97d4003e"), field.FieldId);
+        }
+
         private sealed class NotAContentType
         {
         }
+
+        [ContentType(DummyId)]
+        private sealed class NotAnEntity
+        {
+        }
+
+        [ContentType(DummyId)]
+        private sealed class EmptyContentType : HarshEntity
+        {
+        }
+
+        [ContentType(DummyId)]
+        private sealed class ContentTypeWithFields : HarshEntity
+        {
+            [Field("68b4c509-ec16-4cd0-bb65-f57c54ddfc53")]
+            public String WriteOnly
+            {
+                set { }
+            }
+
+            [Field("6bab39f8-8979-4f47-a5d5-56785eb45d4f")]
+            public String ReadOnly
+            {
+                get { return null; }
+            }
+
+            public String NotAField
+            {
+                get;
+                set;
+            }
+
+            [Field("de5e71bc-8ba9-4693-84b4-615b97d4003e")]
+            public String FinallyAField
+            {
+                get;
+                set;
+            }
+        }
     }
 }


Fix indentation

Fix indentation

--- osu.Game.Rulesets.Osu.Tests/TestSceneOsuPlayer.cs
+++ osu.Game.Rulesets.Osu.Tests/TestSceneOsuPlayer.cs
@@ -6,12 +6,12 @@

 namespace osu.Game.Rulesets.Osu.Tests
 {
-        [TestFixture]
-        public class TestSceneOsuPlayer : PlayerTestScene
+    [TestFixture]
+    public class TestSceneOsuPlayer : PlayerTestScene
+    {
+        public TestSceneOsuPlayer()
+            : base(new OsuRuleset())
         {
-            public TestSceneOsuPlayer()
-                : base(new OsuRuleset())
-            {
-            }
         }
+    }
 }


PutVideo

PutVideo

--- HashCode2017/HashCode2017.Qualification/Classes/CacheServer.cs
+++ HashCode2017/HashCode2017.Qualification/Classes/CacheServer.cs
@@ -15,6 +15,8 @@
         private List<Video> _tempVideos = new List<Video>();

         private const int MAXSIZE = 500000;
+
+        private int occupied = 0;

         public float PercentUsed = 0;

@@ -43,6 +45,15 @@
             set { _id = value; }
         }

+        public void PutVideo(Video video)
+        {
+            if (occupied + video.Size < MAXSIZE)
+            {
+                occupied += video.Size;
+                Videos.Add(video);
+            }
+        }
+
         public void CalculatePercentUsed()
         {
             int spaceUsed = 0;


Fixes the auto mod not hitting stacks of notes on certain maps.

--- osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
+++ osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
@@ -92,24 +92,24 @@
             if (h.StartTime - h.HitWindowFor(OsuScoreResult.Miss) > endTime + h.HitWindowFor(OsuScoreResult.Hit50) + 50)
             {
                 if (!(prev is Spinner) && h.StartTime - endTime < 1000) AddFrameToReplay(new ReplayFrame(endTime + h.HitWindowFor(OsuScoreResult.Hit50), prev.EndPosition.X, prev.EndPosition.Y, ReplayButtonState.None));
-                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Miss), h.Position.X, h.Position.Y, ReplayButtonState.None));
+                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Miss), h.StackedPosition.X, h.StackedPosition.Y, ReplayButtonState.None));
             }
             else if (h.StartTime - h.HitWindowFor(OsuScoreResult.Hit50) > endTime + h.HitWindowFor(OsuScoreResult.Hit50) + 50)
             {
                 if (!(prev is Spinner) && h.StartTime - endTime < 1000) AddFrameToReplay(new ReplayFrame(endTime + h.HitWindowFor(OsuScoreResult.Hit50), prev.EndPosition.X, prev.EndPosition.Y, ReplayButtonState.None));
-                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Hit50), h.Position.X, h.Position.Y, ReplayButtonState.None));
+                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Hit50), h.StackedPosition.X, h.StackedPosition.Y, ReplayButtonState.None));
             }
             else if (h.StartTime - h.HitWindowFor(OsuScoreResult.Hit100) > endTime + h.HitWindowFor(OsuScoreResult.Hit100) + 50)
             {
                 if (!(prev is Spinner) && h.StartTime - endTime < 1000) AddFrameToReplay(new ReplayFrame(endTime + h.HitWindowFor(OsuScoreResult.Hit100), prev.EndPosition.X, prev.EndPosition.Y, ReplayButtonState.None));
-                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Hit100), h.Position.X, h.Position.Y, ReplayButtonState.None));
+                if (!(h is Spinner)) AddFrameToReplay(new ReplayFrame(h.StartTime - h.HitWindowFor(OsuScoreResult.Hit100), h.StackedPosition.X, h.StackedPosition.Y, ReplayButtonState.None));
             }
         }

         private void addHitObjectReplay(OsuHitObject h)
         {
             // Default values for circles/sliders
-            Vector2 startPosition = h.Position;
+            Vector2 startPosition = h.StackedPosition;
             EasingTypes easing = preferredEasing;
             float spinnerDirection = -1;

@@ -238,7 +238,7 @@
             // TODO: Why do we delay 1 ms if the object is a spinner? There already is KEY_UP_DELAY from hEndTime.
             double hEndTime = ((h as IHasEndTime)?.EndTime ?? h.StartTime) + KEY_UP_DELAY;
             int endDelay = h is Spinner ? 1 : 0;
-            ReplayFrame endFrame = new ReplayFrame(hEndTime + endDelay, h.EndPosition.X, h.EndPosition.Y, ReplayButtonState.None);
+            ReplayFrame endFrame = new ReplayFrame(hEndTime + endDelay, h.StackedEndPosition.X, h.StackedEndPosition.Y, ReplayButtonState.None);

             // Decrement because we want the previous frame, not the next one
             int index = FindInsertionIndex(startFrame) - 1;