Refactor.

Refactor.

--- src/AutoMoq/Unity/AutoMockingBuilderStrategy.cs
+++ src/AutoMoq/Unity/AutoMockingBuilderStrategy.cs
@@ -1,55 +1,57 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using Microsoft.Practices.ObjectBuilder2;
-using Microsoft.Practices.Unity;
-using Moq;
-
-namespace AutoMoq.Unity
-{
-    internal class AutoMockingBuilderStrategy : BuilderStrategy
-    {
-        private readonly MockRepository mockRepository;
-        private readonly IEnumerable<Type> registeredTypes;
-        private readonly IUnityContainer container;
-
-        public AutoMockingBuilderStrategy(IEnumerable<Type> registeredTypes, IUnityContainer container)
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using Microsoft.Practices.ObjectBuilder2;
+using Microsoft.Practices.Unity;
+using Moq;
+
+namespace AutoMoq.Unity
+{
+    internal class AutoMockingBuilderStrategy : BuilderStrategy
+    {
+        private readonly MockRepository mockRepository;
+        private readonly IEnumerable<Type> registeredTypes;
+        private readonly IUnityContainer container;
+
+        public AutoMockingBuilderStrategy(IEnumerable<Type> registeredTypes, IUnityContainer container)
         {
-            mockRepository = new MockRepository(MockBehavior.Loose);
-            this.registeredTypes = registeredTypes;
-            this.container = container;
-        }
-
-        public override void PreBuildUp(IBuilderContext context)
-        {
-            var autoMoqer = container.Resolve<AutoMoqer>();
-
-            var type = GetTheTypeFromTheBuilderContext(context);
-            if (AMockObjectShouldBeCreatedForThisType(type))
-            {
-                var mock = CreateAMockObject(type);
-                context.Existing = mock.Object;
-                autoMoqer.SetMock(type, mock);
-            } else if (type.GetConstructors().ToList()[0].GetParameters().Any(x=>x.ParameterType.IsAbstract))
+            mockRepository = new MockRepository(MockBehavior.Loose);
+            this.registeredTypes = registeredTypes;
+            this.container = container;
+        }
+
+        public override void PreBuildUp(IBuilderContext context)
+        {
+            var autoMoqer = container.Resolve<AutoMoqer>();
+
+            var type = GetTheTypeFromTheBuilderContext(context);
+            if (AMockObjectShouldBeCreatedForThisType(type))
+            {
+                var mock = CreateAMockObject(type);
+                context.Existing = mock.Object;
+                autoMoqer.SetMock(type, mock);
+            }
+
+            if (type.GetConstructors().Any())
             {
                 var abstractParameters = type.GetConstructors().ToList()[0].GetParameters().Where(x => x.ParameterType.IsAbstract);
-                foreach(var abstractParameter in abstractParameters)
+                foreach (var abstractParameter in abstractParameters)
                 {
                     var mock = CreateAMockObject(abstractParameter.ParameterType);
                     autoMoqer.SetMock(abstractParameter.ParameterType, mock);
                     container.RegisterInstance(abstractParameter.ParameterType, mock.Object);
                 }
-            }
-        }
-
-        #region private methods
-
-        private bool AMockObjectShouldBeCreatedForThisType(Type type)
+            }
+        }
+
+        #region private methods
+
+        private bool AMockObjectShouldBeCreatedForThisType(Type type)
         {
             return ThisTypeIsNotAFunction(type) &&
                    ThisTypeIsNotRegistered(type) &&
-                   ThisIsNotTheTypeThatIsBeingResolvedForTesting(type);
+                   ThisIsNotTheTypeThatIsBeingResolvedForTesting(type);
         }

         private bool ThisIsNotTheTypeThatIsBeingResolvedForTesting(Type type)
@@ -63,40 +65,40 @@
             return type.Name != "Func`1";
         }

-        private static Type GetTheTypeFromTheBuilderContext(IBuilderContext context)
-        {
-            return ((NamedTypeBuildKey)context.OriginalBuildKey).Type;
-        }
-
-        private bool ThisTypeIsNotRegistered(Type type)
-        {
-            return registeredTypes.Any(x => x.Equals(type)) == false;
-        }
-
-        private Mock CreateAMockObject(Type type)
-        {
-            var createMethod = GenerateAnInterfaceMockCreationMethod(type);
-
-            return InvokeTheMockCreationMethod(createMethod);
-        }
-
-        private Mock InvokeTheMockCreationMethod(MethodInfo createMethod)
+        private static Type GetTheTypeFromTheBuilderContext(IBuilderContext context)
         {
-            return (Mock)createMethod.Invoke(mockRepository, new object[] { new List<object>().ToArray() });
-        }
-
-        private MethodInfo GenerateAnInterfaceMockCreationMethod(Type type)
+            return (context.OriginalBuildKey).Type;
+        }
+
+        private bool ThisTypeIsNotRegistered(Type type)
         {
-            var createMethodWithNoParameters = mockRepository.GetType().GetMethod("Create", EmptyArgumentList());
-
-            return createMethodWithNoParameters.MakeGenericMethod(new[] { type });
-        }
-
-        private static Type[] EmptyArgumentList()
-        {
-            return new[] { typeof(object[]) };
-        }
-
-        #endregion
-    }
+            return registeredTypes.Any(x => x.Equals(type)) == false;
+        }
+
+        private Mock CreateAMockObject(Type type)
+        {
+            var createMethod = GenerateAnInterfaceMockCreationMethod(type);
+
+            return InvokeTheMockCreationMethod(createMethod);
+        }
+
+        private Mock InvokeTheMockCreationMethod(MethodInfo createMethod)
+        {
+            return (Mock) createMethod.Invoke(mockRepository, new object[] {new List<object>().ToArray()});
+        }
+
+        private MethodInfo GenerateAnInterfaceMockCreationMethod(Type type)
+        {
+            var createMethodWithNoParameters = mockRepository.GetType().GetMethod("Create", EmptyArgumentList());
+
+            return createMethodWithNoParameters.MakeGenericMethod(new[] {type});
+        }
+
+        private static Type[] EmptyArgumentList()
+        {
+            return new[] {typeof (object[])};
+        }
+
+        #endregion
+    }
 }


Extend the fix for Recycling the focused element to non virtualized l…

…ayouts

* Ensure that we set the m_processingItesmSourceChange flag for non-virtualizing layouts as well as virtualizing ones.

Ported from https://github.com/microsoft/microsoft-ui-xaml/commit/cc335ac3915ed37ac7ee95237b789622287d2f5a

--- src/Avalonia.Controls/Repeater/ItemsRepeater.cs
+++ src/Avalonia.Controls/Repeater/ItemsRepeater.cs
@@ -562,34 +562,34 @@

             if (Layout != null)
             {
-                if (Layout is VirtualizingLayout virtualLayout)
-                {
-                    var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);
-
+                var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);
+
+                try
+                {
                     _processingItemsSourceChange = args;

-                    try
+                    if (Layout is VirtualizingLayout virtualLayout)
                     {
                         virtualLayout.OnItemsChanged(GetLayoutContext(), newValue, args);
                     }
-                    finally
-                    {
-                        _processingItemsSourceChange = null;
-                    }
-                }
-                else if (Layout is NonVirtualizingLayout nonVirtualLayout)
-                {
-                    // Walk through all the elements and make sure they are cleared for
-                    // non-virtualizing layouts.
-                    foreach (var element in Children)
-                    {
-                        if (GetVirtualizationInfo(element).IsRealized)
+                    else if (Layout is NonVirtualizingLayout nonVirtualLayout)
+                    {
+                        // Walk through all the elements and make sure they are cleared for
+                        // non-virtualizing layouts.
+                        foreach (var element in Children)
                         {
-                            ClearElementImpl(element);
+                            if (GetVirtualizationInfo(element).IsRealized)
+                            {
+                                ClearElementImpl(element);
+                            }
                         }
-                    }
-
-                    Children.Clear();
+
+                        Children.Clear();
+                    }
+                }
+                finally
+                {
+                    _processingItemsSourceChange = null;
                 }

                 InvalidateMeasure();


Extract Reflection magic into a separate function

--- CPPCheckPlugin/CPPCheckPluginPackage.cs
+++ CPPCheckPlugin/CPPCheckPluginPackage.cs
@@ -297,20 +297,7 @@
 				dynamic projectFiles = project.Files;
 				foreach (dynamic file in projectFiles)
 				{
-					// Only checking cpp files (performance)
-					// Checking file.FileType == eFileType.eFileTypeCppCode using reflection...
-					Type fileObjectType = file.GetType();
-					// Automatic property binding fails with VS2013 because there the property is *explicitly implemented* and so
-					// only accessible via the declaring interface. Using Reflection to get to the interface and access the property directly instead.
-					var vcFileInterface = fileObjectType.GetInterface("Microsoft.VisualStudio.VCProjectEngine.VCFile");
-					var fileTypeValue = vcFileInterface.GetProperty("FileType").GetValue(file);
-					Type fileTypeEnumType = fileTypeValue.GetType();
-					Debug.Assert(fileTypeEnumType.FullName == "Microsoft.VisualStudio.VCProjectEngine.eFileType");
-					var fileTypeEnumValue = Enum.GetName(fileTypeEnumType, fileTypeValue);
-					var fileTypeCppCodeConstant = "eFileTypeCppCode";
-					// First check the enum contains the value we're looking for
-					Debug.Assert(Enum.GetNames(fileTypeEnumType).Contains(fileTypeCppCodeConstant));
-					if (fileTypeEnumValue == fileTypeCppCodeConstant)
+					if (isCppFile(file))
 					{
 						String fileName = file.Name;
 						SourceFile f = createSourceFile(file.FullPath, currentConfig, project);
@@ -324,6 +311,26 @@
 			MainToolWindow.Instance.ContentsType = ICodeAnalyzer.AnalysisType.ProjectAnalysis;
 			MainToolWindow.Instance.showIfWindowNotCreated();
 			runAnalysis(files, currentConfig, _outputPane, false);
+		}
+
+		private static bool isCppFile(dynamic file)
+		{
+			// Checking file.FileType == eFileType.eFileTypeCppCode...
+			// Automatic property binding fails with VS2013 because there the FileType property
+			// is *explicitly implemented* and so only accessible via the declaring interface.
+			// Using Reflection to get to the interface and access the property directly instead.
+			Type fileObjectType = file.GetType();
+			var vcFileInterface = fileObjectType.GetInterface("Microsoft.VisualStudio.VCProjectEngine.VCFile");
+			var fileTypeValue = vcFileInterface.GetProperty("FileType").GetValue(file);
+			Type fileTypeEnumType = fileTypeValue.GetType();
+			Debug.Assert(fileTypeEnumType.FullName == "Microsoft.VisualStudio.VCProjectEngine.eFileType");
+			var fileTypeEnumValue = Enum.GetName(fileTypeEnumType, fileTypeValue);
+			var fileTypeCppCodeConstant = "eFileTypeCppCode";
+			// First check the enum contains the value we're looking for
+			Debug.Assert(Enum.GetNames(fileTypeEnumType).Contains(fileTypeCppCodeConstant));
+			if (fileTypeEnumValue == fileTypeCppCodeConstant)
+				return true;
+			return false;
 		}

 		private void runSavedFileAnalysis(SourceFile file, Configuration currentConfig, OutputWindowPane outputPane)


utc add days fix

utc add days fix

--- CRP.Mvc/Controllers/SearchController.cs
+++ CRP.Mvc/Controllers/SearchController.cs
@@ -34,14 +34,14 @@

             if (!string.IsNullOrEmpty(searchTerm))
             {
-                var itemList = _searchTermProvider.GetByTerm(searchTerm).Where(a => a.Private == false && a.Available && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().AddDays(-15)).AsQueryable(); //.OrderByDescending(a => a.Expiration >= DateTime.UtcNow.ToPacificTime()).ThenBy(a => a.Expiration);
+                var itemList = _searchTermProvider.GetByTerm(searchTerm).Where(a => a.Private == false && a.Available && a.Expiration != null && a.Expiration >= DateTime.UtcNow.AddDays(-15).ToPacificTime()).AsQueryable(); //.OrderByDescending(a => a.Expiration >= DateTime.UtcNow.ToPacificTime()).ThenBy(a => a.Expiration);
                 var unexpiredItems = itemList
                     .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().Date)
                     .OrderBy(a => a.Expiration)
                     .ToList();

                 var expiredItems = itemList
-                    .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().AddDays(-15).Date && a.Expiration < DateTime.UtcNow.ToPacificTime().Date)
+                    .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.AddDays(-15).ToPacificTime().Date && a.Expiration < DateTime.UtcNow.ToPacificTime().Date)
                     .OrderByDescending(a => a.Expiration)
                     .ToList();

@@ -62,14 +62,14 @@

             if (!string.IsNullOrEmpty(searchTerm))
             {
-                var itemList = _searchTermProvider.GetByTerm(searchTerm).Where(a => a.Private == false && a.Available && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().AddDays(-15)).AsQueryable(); //.OrderByDescending(a => a.Expiration >= DateTime.UtcNow.ToPacificTime()).ThenBy(a => a.Expiration);
+                var itemList = _searchTermProvider.GetByTerm(searchTerm).Where(a => a.Private == false && a.Available && a.Expiration != null && a.Expiration >= DateTime.UtcNow.AddDays(-15).ToPacificTime()).AsQueryable(); //.OrderByDescending(a => a.Expiration >= DateTime.UtcNow.ToPacificTime()).ThenBy(a => a.Expiration);
                 var unexpiredItems = itemList
                     .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().Date)
                     .OrderBy(a => a.Expiration)
                     .ToList();

                 var expiredItems = itemList
-                    .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.ToPacificTime().AddDays(-15).Date && a.Expiration < DateTime.UtcNow.ToPacificTime().Date)
+                    .Where(a => a.Available && !a.Private && a.Expiration != null && a.Expiration >= DateTime.UtcNow.AddDays(-15).ToPacificTime().Date && a.Expiration < DateTime.UtcNow.ToPacificTime().Date)
                     .OrderByDescending(a => a.Expiration)
                     .ToList();


clean

clean

--- CSharpGL/OpenGLAPI/OpenGL_Extensions.cs
+++ CSharpGL/OpenGLAPI/OpenGL_Extensions.cs
@@ -4686,866 +4686,866 @@

         //#endregion

-        #region GL_EXT_blend_color
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="red"></param>
-        /// <param name="green"></param>
-        /// <param name="blue"></param>
-        /// <param name="alpha"></param>
-        public delegate void glBlendColorEXT(float red, float green, float blue, float alpha);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_BLEND_COLOR = 0x8005;
-
-        #endregion
-
-        #region GL_EXT_blend_minmax
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="mode"></param>
-        public delegate void glBlendEquationEXT(uint mode);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_FUNC_ADD = 0x8006;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_MIN = 0x8007;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_MAX = 0x8008;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_FUNC_SUBTRACT = 0x800A;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_FUNC_REVERSE_SUBTRACT = 0x800B;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_BLEND_EQUATION = 0x8009;
-
-        #endregion
-
-        #region GL_ARB_multitexture
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="texture"></param>
-        public delegate void glActiveTextureARB(uint texture);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="texture"></param>
-        public delegate void glClientActiveTextureARB(uint texture);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        public delegate void glMultiTexCoord1dARB(uint target, double s);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord1dvARB(uint target, double[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        public delegate void glMultiTexCoord1fARB(uint target, float s);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord1fvARB(uint target, float[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        public delegate void glMultiTexCoord1iARB(uint target, int s);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord1ivARB(uint target, int[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        public delegate void glMultiTexCoord1sARB(uint target, short s);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord1svARB(uint target, short[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        public delegate void glMultiTexCoord2dARB(uint target, double s, double t);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord2dvARB(uint target, double[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        public delegate void glMultiTexCoord2fARB(uint target, float s, float t);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord2fvARB(uint target, float[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        public delegate void glMultiTexCoord2iARB(uint target, int s, int t);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord2ivARB(uint target, int[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        public delegate void glMultiTexCoord2sARB(uint target, short s, short t);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord2svARB(uint target, short[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        public delegate void glMultiTexCoord3dARB(uint target, double s, double t, double r);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord3dvARB(uint target, double[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        public delegate void glMultiTexCoord3fARB(uint target, float s, float t, float r);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord3fvARB(uint target, float[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        public delegate void glMultiTexCoord3iARB(uint target, int s, int t, int r);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord3ivARB(uint target, int[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        public delegate void glMultiTexCoord3sARB(uint target, short s, short t, short r);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord3svARB(uint target, short[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        /// <param name="q"></param>
-        public delegate void glMultiTexCoord4dARB(uint target, double s, double t, double r, double q);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord4dvARB(uint target, double[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        /// <param name="q"></param>
-        public delegate void glMultiTexCoord4fARB(uint target, float s, float t, float r, float q);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord4fvARB(uint target, float[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        /// <param name="q"></param>
-        public delegate void glMultiTexCoord4iARB(uint target, int s, int t, int r, int q);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord4ivARB(uint target, int[] v);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="s"></param>
-        /// <param name="t"></param>
-        /// <param name="r"></param>
-        /// <param name="q"></param>
-        public delegate void glMultiTexCoord4sARB(uint target, short s, short t, short r, short q);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="v"></param>
-        public delegate void glMultiTexCoord4svARB(uint target, short[] v);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE0_ARB = 0x84C0;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE1_ARB = 0x84C1;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE2_ARB = 0x84C2;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE3_ARB = 0x84C3;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE4_ARB = 0x84C4;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE5_ARB = 0x84C5;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE6_ARB = 0x84C6;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE7_ARB = 0x84C7;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE8_ARB = 0x84C8;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE9_ARB = 0x84C9;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE10_ARB = 0x84CA;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE11_ARB = 0x84CB;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE12_ARB = 0x84CC;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE13_ARB = 0x84CD;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE14_ARB = 0x84CE;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE15_ARB = 0x84CF;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE16_ARB = 0x84D0;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE17_ARB = 0x84D1;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE18_ARB = 0x84D2;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE19_ARB = 0x84D3;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE20_ARB = 0x84D4;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE21_ARB = 0x84D5;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE22_ARB = 0x84D6;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE23_ARB = 0x84D7;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE24_ARB = 0x84D8;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE25_ARB = 0x84D9;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE26_ARB = 0x84DA;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE27_ARB = 0x84DB;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE28_ARB = 0x84DC;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE29_ARB = 0x84DD;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE30_ARB = 0x84DE;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE31_ARB = 0x84DF;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_ACTIVE_TEXTURE_ARB = 0x84E0;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_MAX_TEXTURE_UNITS_ARB = 0x84E2;
-
-        #endregion
-
-        #region GL_ARB_texture_compression
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="internalformat"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        /// <param name="depth"></param>
-        /// <param name="border"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexImage3DARB(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="internalformat"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        /// <param name="border"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexImage2DARB(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="internalformat"></param>
-        /// <param name="width"></param>
-        /// <param name="border"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexImage1DARB(uint target, int level, uint internalformat, int width, int border, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="xoffset"></param>
-        /// <param name="yoffset"></param>
-        /// <param name="zoffset"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        /// <param name="depth"></param>
-        /// <param name="format"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexSubImage3DARB(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="xoffset"></param>
-        /// <param name="yoffset"></param>
-        /// <param name="width"></param>
-        /// <param name="height"></param>
-        /// <param name="format"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexSubImage2DARB(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="xoffset"></param>
-        /// <param name="width"></param>
-        /// <param name="format"></param>
-        /// <param name="imageSize"></param>
-        /// <param name="data"></param>
-        public delegate void glCompressedTexSubImage1DARB(uint target, int level, int xoffset, int width, uint format, int imageSize, IntPtr data);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="target"></param>
-        /// <param name="level"></param>
-        /// <param name="img"></param>
-        public delegate void glGetCompressedTexImageARB(uint target, int level, IntPtr img);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_ALPHA_ARB = 0x84E9;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_LUMINANCE_ARB = 0x84EA;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_INTENSITY_ARB = 0x84EC;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_RGB_ARB = 0x84ED;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_RGBA_ARB = 0x84EE;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_COMPRESSED_ARB = 0x86A1;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3;
-
-        #endregion
-
-        #region GL_EXT_texture_cube_map
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_NORMAL_MAP = 0x8511;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_REFLECTION_MAP = 0x8512;
-
-        #endregion
-
-        #region GL_ARB_multisample
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="value"></param>
-        /// <param name="invert"></param>
-        public delegate void glSampleCoverageARB(float value, bool invert);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_MULTISAMPLE_ARB = 0x809D;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_COVERAGE_ARB = 0x80A0;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_BUFFERS_ARB = 0x80A8;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLES_ARB = 0x80A9;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_MULTISAMPLE_BIT_ARB = 0x20000000;
-
-        #endregion
-
-        #region GL_ARB_texture_env_add
-
-        //  Appears to not have any functionality
-
-        #endregion
-
-        #region GL_ARB_texture_env_combine
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMBINE_ARB = 0x8570;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMBINE_RGB_ARB = 0x8571;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMBINE_ALPHA_ARB = 0x8572;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE0_RGB_ARB = 0x8580;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE1_RGB_ARB = 0x8581;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE2_RGB_ARB = 0x8582;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE0_ALPHA_ARB = 0x8588;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE1_ALPHA_ARB = 0x8589;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SOURCE2_ALPHA_ARB = 0x858A;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND0_RGB_ARB = 0x8590;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND1_RGB_ARB = 0x8591;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND2_RGB_ARB = 0x8592;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND0_ALPHA_ARB = 0x8598;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND1_ALPHA_ARB = 0x8599;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_OPERAND2_ALPHA_ARB = 0x859A;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_RGB_SCALE_ARB = 0x8573;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_ADD_SIGNED_ARB = 0x8574;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_INTERPOLATE_ARB = 0x8575;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_SUBTRACT_ARB = 0x84E7;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_CONSTANT_ARB = 0x8576;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_PRIMARY_COLOR_ARB = 0x8577;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_PREVIOUS_ARB = 0x8578;
-
-        #endregion
-
-        #region GL_ARB_texture_env_dot3
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DOT3_RGB_ARB = 0x86AE;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DOT3_RGBA_ARB = 0x86AF;
-
-        #endregion
-
-        #region GL_ARB_texture_border_clamp
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_CLAMP_TO_BORDER_ARB = 0x812D;
-
-        #endregion
-
-        #region GL_ARB_transpose_matrix
-
-        //  Delegates
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="m"></param>
-        public delegate void glLoadTransposeMatrixfARB(float[] m);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="m"></param>
-        public delegate void glLoadTransposeMatrixdARB(double[] m);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="m"></param>
-        public delegate void glMultTransposeMatrixfARB(float[] m);
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="m"></param>
-        public delegate void glMultTransposeMatrixdARB(double[] m);
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6;
-
-        #endregion
-
-        #region GL_SGIS_generate_mipmap
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_GENERATE_MIPMAP_SGIS = 0x8191;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192;
-
-        #endregion
-
-        #region GL_NV_blend_square
-
-        //  Appears to be empty.
-
-        #endregion
-
-        #region GL_ARB_depth_texture
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DEPTH_COMPONENT16_ARB = 0x81A5;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DEPTH_COMPONENT24_ARB = 0x81A6;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DEPTH_COMPONENT32_ARB = 0x81A7;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_DEPTH_TEXTURE_MODE_ARB = 0x884B;
-
-        #endregion
-
-        #region GL_ARB_shadow
-
-        //  Constants
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_COMPARE_MODE_ARB = 0x884C;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D;
-        /// <summary>
-        ///
-        /// </summary>
-        public const uint GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E;
-
-        #endregion
+        //#region GL_EXT_blend_color
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="red"></param>
+        ///// <param name="green"></param>
+        ///// <param name="blue"></param>
+        ///// <param name="alpha"></param>
+        //public delegate void glBlendColorEXT(float red, float green, float blue, float alpha);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_BLEND_COLOR = 0x8005;
+
+        //#endregion
+
+        //#region GL_EXT_blend_minmax
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="mode"></param>
+        //public delegate void glBlendEquationEXT(uint mode);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_FUNC_ADD = 0x8006;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_MIN = 0x8007;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_MAX = 0x8008;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_FUNC_SUBTRACT = 0x800A;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_FUNC_REVERSE_SUBTRACT = 0x800B;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_BLEND_EQUATION = 0x8009;
+
+        //#endregion
+
+        //#region GL_ARB_multitexture
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="texture"></param>
+        //public delegate void glActiveTextureARB(uint texture);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="texture"></param>
+        //public delegate void glClientActiveTextureARB(uint texture);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        //public delegate void glMultiTexCoord1dARB(uint target, double s);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord1dvARB(uint target, double[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        //public delegate void glMultiTexCoord1fARB(uint target, float s);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord1fvARB(uint target, float[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        //public delegate void glMultiTexCoord1iARB(uint target, int s);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord1ivARB(uint target, int[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        //public delegate void glMultiTexCoord1sARB(uint target, short s);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord1svARB(uint target, short[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        //public delegate void glMultiTexCoord2dARB(uint target, double s, double t);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord2dvARB(uint target, double[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        //public delegate void glMultiTexCoord2fARB(uint target, float s, float t);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord2fvARB(uint target, float[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        //public delegate void glMultiTexCoord2iARB(uint target, int s, int t);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord2ivARB(uint target, int[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        //public delegate void glMultiTexCoord2sARB(uint target, short s, short t);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord2svARB(uint target, short[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        //public delegate void glMultiTexCoord3dARB(uint target, double s, double t, double r);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord3dvARB(uint target, double[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        //public delegate void glMultiTexCoord3fARB(uint target, float s, float t, float r);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord3fvARB(uint target, float[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        //public delegate void glMultiTexCoord3iARB(uint target, int s, int t, int r);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord3ivARB(uint target, int[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        //public delegate void glMultiTexCoord3sARB(uint target, short s, short t, short r);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord3svARB(uint target, short[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        ///// <param name="q"></param>
+        //public delegate void glMultiTexCoord4dARB(uint target, double s, double t, double r, double q);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord4dvARB(uint target, double[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        ///// <param name="q"></param>
+        //public delegate void glMultiTexCoord4fARB(uint target, float s, float t, float r, float q);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord4fvARB(uint target, float[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        ///// <param name="q"></param>
+        //public delegate void glMultiTexCoord4iARB(uint target, int s, int t, int r, int q);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord4ivARB(uint target, int[] v);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="s"></param>
+        ///// <param name="t"></param>
+        ///// <param name="r"></param>
+        ///// <param name="q"></param>
+        //public delegate void glMultiTexCoord4sARB(uint target, short s, short t, short r, short q);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="v"></param>
+        //public delegate void glMultiTexCoord4svARB(uint target, short[] v);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE0_ARB = 0x84C0;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE1_ARB = 0x84C1;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE2_ARB = 0x84C2;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE3_ARB = 0x84C3;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE4_ARB = 0x84C4;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE5_ARB = 0x84C5;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE6_ARB = 0x84C6;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE7_ARB = 0x84C7;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE8_ARB = 0x84C8;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE9_ARB = 0x84C9;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE10_ARB = 0x84CA;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE11_ARB = 0x84CB;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE12_ARB = 0x84CC;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE13_ARB = 0x84CD;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE14_ARB = 0x84CE;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE15_ARB = 0x84CF;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE16_ARB = 0x84D0;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE17_ARB = 0x84D1;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE18_ARB = 0x84D2;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE19_ARB = 0x84D3;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE20_ARB = 0x84D4;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE21_ARB = 0x84D5;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE22_ARB = 0x84D6;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE23_ARB = 0x84D7;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE24_ARB = 0x84D8;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE25_ARB = 0x84D9;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE26_ARB = 0x84DA;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE27_ARB = 0x84DB;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE28_ARB = 0x84DC;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE29_ARB = 0x84DD;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE30_ARB = 0x84DE;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE31_ARB = 0x84DF;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_ACTIVE_TEXTURE_ARB = 0x84E0;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_MAX_TEXTURE_UNITS_ARB = 0x84E2;
+
+        //#endregion
+
+        //#region GL_ARB_texture_compression
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="internalformat"></param>
+        ///// <param name="width"></param>
+        ///// <param name="height"></param>
+        ///// <param name="depth"></param>
+        ///// <param name="border"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexImage3DARB(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="internalformat"></param>
+        ///// <param name="width"></param>
+        ///// <param name="height"></param>
+        ///// <param name="border"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexImage2DARB(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="internalformat"></param>
+        ///// <param name="width"></param>
+        ///// <param name="border"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexImage1DARB(uint target, int level, uint internalformat, int width, int border, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="xoffset"></param>
+        ///// <param name="yoffset"></param>
+        ///// <param name="zoffset"></param>
+        ///// <param name="width"></param>
+        ///// <param name="height"></param>
+        ///// <param name="depth"></param>
+        ///// <param name="format"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexSubImage3DARB(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="xoffset"></param>
+        ///// <param name="yoffset"></param>
+        ///// <param name="width"></param>
+        ///// <param name="height"></param>
+        ///// <param name="format"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexSubImage2DARB(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="xoffset"></param>
+        ///// <param name="width"></param>
+        ///// <param name="format"></param>
+        ///// <param name="imageSize"></param>
+        ///// <param name="data"></param>
+        //public delegate void glCompressedTexSubImage1DARB(uint target, int level, int xoffset, int width, uint format, int imageSize, IntPtr data);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="target"></param>
+        ///// <param name="level"></param>
+        ///// <param name="img"></param>
+        //public delegate void glGetCompressedTexImageARB(uint target, int level, IntPtr img);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_ALPHA_ARB = 0x84E9;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_LUMINANCE_ARB = 0x84EA;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_INTENSITY_ARB = 0x84EC;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_RGB_ARB = 0x84ED;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_RGBA_ARB = 0x84EE;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_COMPRESSED_ARB = 0x86A1;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3;
+
+        //#endregion
+
+        //#region GL_EXT_texture_cube_map
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_NORMAL_MAP = 0x8511;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_REFLECTION_MAP = 0x8512;
+
+        //#endregion
+
+        //#region GL_ARB_multisample
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="value"></param>
+        ///// <param name="invert"></param>
+        //public delegate void glSampleCoverageARB(float value, bool invert);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_MULTISAMPLE_ARB = 0x809D;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_COVERAGE_ARB = 0x80A0;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_BUFFERS_ARB = 0x80A8;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLES_ARB = 0x80A9;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_MULTISAMPLE_BIT_ARB = 0x20000000;
+
+        //#endregion
+
+        //#region GL_ARB_texture_env_add
+
+        ////  Appears to not have any functionality
+
+        //#endregion
+
+        //#region GL_ARB_texture_env_combine
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMBINE_ARB = 0x8570;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMBINE_RGB_ARB = 0x8571;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMBINE_ALPHA_ARB = 0x8572;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE0_RGB_ARB = 0x8580;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE1_RGB_ARB = 0x8581;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE2_RGB_ARB = 0x8582;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE0_ALPHA_ARB = 0x8588;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE1_ALPHA_ARB = 0x8589;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SOURCE2_ALPHA_ARB = 0x858A;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND0_RGB_ARB = 0x8590;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND1_RGB_ARB = 0x8591;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND2_RGB_ARB = 0x8592;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND0_ALPHA_ARB = 0x8598;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND1_ALPHA_ARB = 0x8599;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_OPERAND2_ALPHA_ARB = 0x859A;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_RGB_SCALE_ARB = 0x8573;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_ADD_SIGNED_ARB = 0x8574;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_INTERPOLATE_ARB = 0x8575;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_SUBTRACT_ARB = 0x84E7;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_CONSTANT_ARB = 0x8576;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_PRIMARY_COLOR_ARB = 0x8577;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_PREVIOUS_ARB = 0x8578;
+
+        //#endregion
+
+        //#region GL_ARB_texture_env_dot3
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DOT3_RGB_ARB = 0x86AE;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DOT3_RGBA_ARB = 0x86AF;
+
+        //#endregion
+
+        //#region GL_ARB_texture_border_clamp
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_CLAMP_TO_BORDER_ARB = 0x812D;
+
+        //#endregion
+
+        //#region GL_ARB_transpose_matrix
+
+        ////  Delegates
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="m"></param>
+        //public delegate void glLoadTransposeMatrixfARB(float[] m);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="m"></param>
+        //public delegate void glLoadTransposeMatrixdARB(double[] m);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="m"></param>
+        //public delegate void glMultTransposeMatrixfARB(float[] m);
+        ///// <summary>
+        /////
+        ///// </summary>
+        ///// <param name="m"></param>
+        //public delegate void glMultTransposeMatrixdARB(double[] m);
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6;
+
+        //#endregion
+
+        //#region GL_SGIS_generate_mipmap
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_GENERATE_MIPMAP_SGIS = 0x8191;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192;
+
+        //#endregion
+
+        //#region GL_NV_blend_square
+
+        ////  Appears to be empty.
+
+        //#endregion
+
+        //#region GL_ARB_depth_texture
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DEPTH_COMPONENT16_ARB = 0x81A5;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DEPTH_COMPONENT24_ARB = 0x81A6;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DEPTH_COMPONENT32_ARB = 0x81A7;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_DEPTH_TEXTURE_MODE_ARB = 0x884B;
+
+        //#endregion
+
+        //#region GL_ARB_shadow
+
+        ////  Constants
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_COMPARE_MODE_ARB = 0x884C;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D;
+        ///// <summary>
+        /////
+        ///// </summary>
+        //public const uint GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E;
+
+        //#endregion

         #region GL_EXT_fog_coord


Add test for IBAN.

Add test for IBAN.

Correct a problem with one of the IBAN samples; it did not have a valid
checksum.

--- tests/Narvalo.Facts/Finance/IbanFacts.cs
+++ tests/Narvalo.Facts/Finance/IbanFacts.cs
@@ -267,16 +267,6 @@
         #region ToString()

         [Theory]
-        [MemberData(nameof(FormatGSamples), DisableDiscoveryEnumeration = true)]
-        [CLSCompliant(false)]
-        public static void ToString_ReturnsFormattedValue(string value, string formattedValue)
-        {
-            var result = Iban.Parse(value).ToString();
-
-            Assert.Equal(formattedValue, result);
-        }
-
-        [Theory]
         [InlineData(" ")]
         [InlineData("X")]
         [InlineData("XX")]
@@ -286,9 +276,19 @@
                 () => Iban.Parse("AL47212110090000000235698741").ToString(value));

         [Theory]
-        [MemberData(nameof(FormatGSamples), DisableDiscoveryEnumeration = true)]
-        [CLSCompliant(false)]
-        public static void ToString_ReturnsValue_ForNullFormat(string value, string formattedValue)
+        [MemberData(nameof(FormatDSamples), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void ToString_ReturnsFormattedValue(string value, string formattedValue)
+        {
+            var result = Iban.Parse(value).ToString();
+
+            Assert.Equal(formattedValue, result);
+        }
+
+        [Theory]
+        [MemberData(nameof(FormatDSamples), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void ToString_ReturnsFormattedValue_ForNullFormat(string value, string formattedValue)
         {
             var result = Iban.Parse(value).ToString(null);

@@ -296,9 +296,9 @@
         }

         [Theory]
-        [MemberData(nameof(FormatGSamples), DisableDiscoveryEnumeration = true)]
-        [CLSCompliant(false)]
-        public static void ToString_ReturnsValue_ForEmptyFormat(string value, string formattedValue)
+        [MemberData(nameof(FormatDSamples), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void ToString_ReturnsFormattedValue_ForEmptyFormat(string value, string formattedValue)
         {
             var result = Iban.Parse(value).ToString(String.Empty);

@@ -306,28 +306,27 @@
         }

         [Theory]
-        [MemberData(nameof(FormatGSamples), DisableDiscoveryEnumeration = true)]
-        [CLSCompliant(false)]
-        public static void ToString_ReturnsFormattedValue_ForFormatG(string value, string formattedValue)
+        [MemberData(nameof(FormatDSamples), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void ToString_ReturnsFormattedValue_ForDisplayFormat(string value, string formattedValue)
+        {
+            var result1 = Iban.Parse(value).ToString("D");
+            var result2 = Iban.Parse(value).ToString("d");
+
+            Assert.Equal(formattedValue, result1);
+            Assert.Equal(formattedValue, result2);
+        }
+
+        [Theory]
+        [MemberData(nameof(FormatDSamples), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void ToString_ReturnsValue_ForGeneralFormat(string value, string formattedValue)
         {
             var result1 = Iban.Parse(value).ToString("G");
             var result2 = Iban.Parse(value).ToString("g");

-            Assert.Equal(formattedValue, result1);
-            Assert.Equal(formattedValue, result2);
-        }
-
-        [Theory]
-        [MemberData(nameof(FormatGSamples), DisableDiscoveryEnumeration = true)]
-        [CLSCompliant(false)]
-        public static void ToString_ReturnsFormattedValue_ForFormatD(string value, string formattedValue)
-        {
-            var result1 = Iban.Parse(value).ToString("D");
-            var result2 = Iban.Parse(value).ToString("d");
-            var expected = formattedValue.Replace(' ', '-');
-
-            Assert.Equal(expected, result1);
-            Assert.Equal(expected, result2);
+            Assert.Equal(value, result1);
+            Assert.Equal(value, result2);
         }

         #endregion
@@ -337,6 +336,34 @@

     public static partial class IbanFacts
     {
+        #region CheckIntegrity32bit()
+
+        [Theory]
+        [MemberData(nameof(SampleValues), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void CheckIntegrity32bit_ReturnsTrue(string value)
+        {
+            var iban = Iban.Parse(value);
+
+            Assert.True(iban.CheckIntegrity32bit());
+        }
+
+        #endregion
+
+        #region CheckIntegrity64bit()
+
+        [Theory]
+        [MemberData(nameof(SampleValues), DisableDiscoveryEnumeration = true)]
+        [CLSCompliant(false)]
+        public static void CheckIntegrity64bit_ReturnsTrue(string value)
+        {
+            var iban = Iban.Parse(value);
+
+            Assert.True(iban.CheckIntegrity64bit());
+        }
+
+        #endregion
+
         #region ParseCore()

         [Theory]
@@ -436,14 +463,9 @@

     public static partial class IbanFacts
     {
-        [Fact]
-        public static void Checksum()
-        {
-            var iban = Iban.Parse("BE62510007547061");
-            Assert.Equal(1, iban.FastComputeChecksum());
-        }
-
         // Sample IBAN from http://www.rbs.co.uk/corporate/international/g0/guide-to-international-business/regulatory-information/iban/iban-example.ashx.
+        // except the last taken from http://www.xe.com/ibancalculator/sample/?ibancountry=united-kingdom since
+        // the one found on RBS is not valid.
         public static IEnumerable<object[]> SampleDisplayValues
         {
             get
@@ -505,11 +527,14 @@
                 yield return new object[] { "TN59 1000 6035 1835 9847 8831" };
                 yield return new object[] { "TR33 0006 1005 1978 6457 8413 26" };
                 yield return new object[] { "AE07 0331 2345 6789 0123 456" };
-                yield return new object[] { "GB29 RBOS 6016 1331 9268 19" };
+                //yield return new object[] { "GB29 RBOS 6016 1331 9268 19" }; <- invalid
+                yield return new object[] { "GB29 NWBK 6016 1331 9268 19" };
             }
         }

         // Sample IBAN from http://www.rbs.co.uk/corporate/international/g0/guide-to-international-business/regulatory-information/iban/iban-example.ashx.
+        // except the last taken from http://www.xe.com/ibancalculator/sample/?ibancountry=united-kingdom since
+        // the one found on RBS is not valid.
         public static IEnumerable<object[]> SampleValues
         {
             get
@@ -571,7 +596,8 @@
                 yield return new object[] { "TN5910006035183598478831" };
                 yield return new object[] { "TR330006100519786457841326" };
                 yield return new object[] { "AE070331234567890123456" };
-                yield return new object[] { "GB29RBOS60161331926819" };
+                //yield return new object[] { "GB29RBOS60161331926819" }; <- Invalid
+                yield return new object[] { "GB29NWBK60161331926819" };
             }
         }

@@ -681,7 +707,7 @@
             }
         }

-        public static IEnumerable<object[]> FormatGSamples
+        public static IEnumerable<object[]> FormatDSamples
         {
             get
             {


If on Stop() there are no events left to record but we are in the process of recording one, do wait for the finished writing after stop sempahore to be set.

--- src/EventRecorder/Recorders/QueueingRecorder.cs
+++ src/EventRecorder/Recorders/QueueingRecorder.cs
@@ -221,36 +221,32 @@
                     int eventsLeft = m_eventWriteQueue.Count;
 //                    Console.WriteLine("eventsLeft {0}", eventsLeft);
                     if (eventsLeft <= 0)
+                        m_cancelSource.Cancel();
+
+                    m_log.InfoFormat("[EVENT RECORDER]: Waiting to write {0} events after stop.", eventsLeft);
+
+                    bool isFinished = false;
+
+                    while (!isFinished)
                     {
-                        m_cancelSource.Cancel();
-                    }
-                    else
-                    {
-                        m_log.InfoFormat("[EVENT RECORDER]: Waiting to write {0} events after stop.", eventsLeft);
-
-                        bool isFinished = false;
-
-                        while (!isFinished)
+                        if (m_finishedWritingAfterStop.WaitOne(EventWriteTimeoutOnStop))
                         {
-                            if (m_finishedWritingAfterStop.WaitOne(EventWriteTimeoutOnStop))
+                            isFinished = true;
+                        }
+                        else
+                        {
+                            // After timeout no events have been written
+                            if (eventsLeft == m_eventWriteQueue.Count)
                             {
+                                m_log.WarnFormat(
+                                    "[EVENT RECORDER]: No events written after {0} ms wait.  Discarding remaining {1} events",
+                                    EventWriteTimeoutOnStop, eventsLeft);
+
                                 isFinished = true;
                             }
                             else
                             {
-                                // After timeout no events have been written
-                                if (eventsLeft == m_eventWriteQueue.Count)
-                                {
-                                    m_log.WarnFormat(
-                                        "[EVENT RECORDER]: No events written after {0} ms wait.  Discarding remaining {1} events",
-                                        EventWriteTimeoutOnStop, eventsLeft);
-
-                                    isFinished = true;
-                                }
-                                else
-                                {
-                                    eventsLeft = m_eventWriteQueue.Count;
-                                }
+                                eventsLeft = m_eventWriteQueue.Count;
                             }
                         }
                     }


Added Bishop movement

Added Bishop movement

--- Chess/Chess/Movements/BishopMovement.cs
+++ Chess/Chess/Movements/BishopMovement.cs
@@ -8,9 +8,6 @@

     public class BishopMovement : IMovement
     {
-        private int rowDirection;
-        private int colDirection;
-
         public void ValidateMove(IFigure figure, IBoard board, Helpers.Move move)
         {
             var rowDistance = Math.Abs(move.From.Row - move.To.Row);
@@ -21,10 +18,8 @@
                 throw new InvalidOperationException("Invalid Bishop move!");
             }

-            var otherColor = figure.Color == FigureColor.White ? FigureColor.Black : FigureColor.White;
-
-            rowDirection = move.From.Row > move.To.Row ? -1 : 1;
-            colDirection = move.From.Col > move.To.Col ? -1 : 1;
+            int rowDirection = move.From.Row > move.To.Row ? -1 : 1;
+            int colDirection = move.From.Col > move.To.Col ? -1 : 1;

             var row = move.From.Row;
             var col = move.From.Col;


Phase out test which is now identical to ShouldResolveGenericTypeParameters().

--- src/Fixie.Tests/Cases/ParameterizedCaseTests.cs
+++ src/Fixie.Tests/Cases/ParameterizedCaseTests.cs
@@ -65,25 +65,6 @@
             }
         }

-        class ExplicitlyParameterizedExecution : Execution
-        {
-            public async Task RunAsync(TestAssembly testAssembly)
-            {
-                foreach (var test in testAssembly.Tests)
-                {
-                    if (test.HasParameters)
-                    {
-                        foreach (var parameters in InputAttributeParameterSource(test.Method))
-                            await test.RunAsync(parameters);
-                    }
-                    else
-                    {
-                        await test.RunAsync();
-                    }
-                }
-            }
-        }
-
         public async Task ShouldAllowExecutionToGeneratePotentiallyManySetsOfInputParametersPerMethod()
         {
             var execution = new ParameterizedExecution(InputAttributeOrDefaultParameterSource);
@@ -213,12 +194,6 @@
         public async Task ShouldResolveGenericTypeParameters()
         {
             var execution = new ParameterizedExecution(InputAttributeParameterSource);
-            await ShouldResolveGenericTypeParametersAsync(execution);
-        }
-
-        public async Task ShouldSupportExplicitParameterization()
-        {
-            var execution = new ExplicitlyParameterizedExecution();
             await ShouldResolveGenericTypeParametersAsync(execution);
         }


Using T4MVC where I can.

Using T4MVC where I can.

--- src/FunnelWeb.Web/Controllers/FeedController.cs
+++ src/FunnelWeb.Web/Controllers/FeedController.cs
@@ -32,7 +32,7 @@
         {
             return new FeedResult(
                 new Atom10FeedFormatter(
-                    new SyndicationFeed(_settings.SiteTitle, _settings.SearchDescription, new Uri(Request.Url, Url.Action("Recent", "Wiki")), items)
+                    new SyndicationFeed(_settings.SiteTitle, _settings.SearchDescription, new Uri(Url.ActionAbsolute(FunnelWebMvc.Wiki.Recent())), items)
             {
                 Id = Request.Url.ToString(),
                 Links =


Generated from previous commits

Generated from previous commits

--- Test/Generated/Generated.cs
+++ Test/Generated/Generated.cs
@@ -30,12 +30,20 @@

         public List<Personal.Person.PhoneNumber> Phone { get; set; }

+        // ProtocolBuffers wire field id
+        public const int NameFieldID = 1;
+        public const int IdFieldID = 2;
+        public const int EmailFieldID = 3;
+        public const int PhoneFieldID = 4;
         public partial class PhoneNumber
         {
             public string Number { get; set; }

             public Personal.Person.PhoneType Type { get; set; }

+            // ProtocolBuffers wire field id
+            public const int NumberFieldID = 1;
+            public const int TypeFieldID = 2;
         }

     }
@@ -44,6 +52,8 @@
     {
         public List<Personal.Person> List { get; set; }

+        // ProtocolBuffers wire field id
+        public const int ListFieldID = 1;
     }

 }
@@ -82,6 +92,20 @@

         public LocalFeatureTest.TopEnum MyEnum { get; set; }

+        // ProtocolBuffers wire field id
+        public const int UptimeFieldID = 1;
+        public const int DueDateFieldID = 2;
+        public const int AmountFieldID = 3;
+        public const int DenialFieldID = 4;
+        public const int SecretFieldID = 5;
+        public const int InternalFieldID = 6;
+        public const int PRFieldID = 7;
+        public const int TestingReadOnlyFieldID = 8;
+        public const int MyInterfaceFieldID = 9;
+        public const int MyStructFieldID = 10;
+        public const int MyExtStructFieldID = 11;
+        public const int MyExtClassFieldID = 12;
+        public const int MyEnumFieldID = 13;
         // protected virtual void BeforeSerialize() {}
         // protected virtual void AfterDeserialize() {}

@@ -93,11 +117,13 @@
     /// Testing local struct serialization
     public partial interface InterfaceTest
     {
+        // ProtocolBuffers wire field id
     }

     /// Testing local struct serialization
     public partial struct StructTest
     {
+        // ProtocolBuffers wire field id
     }

 }
@@ -121,6 +147,8 @@
         /// This field is important to comment as we just did here
         public int FieldA { get; set; }

+        // ProtocolBuffers wire field id
+        public const int FieldAFieldID = 1;
         /// Values for unknown fields.
         public List<ProtocolBuffers.KeyValue> PreservedFields;

@@ -186,6 +214,30 @@

         public List<Theirs.TheirMessage> FieldV { get; set; }

+        // ProtocolBuffers wire field id
+        public const int FieldAFieldID = 1;
+        public const int FieldBFieldID = 2;
+        public const int FieldCFieldID = 3;
+        public const int FieldDFieldID = 4;
+        public const int FieldEFieldID = 5;
+        public const int FieldFFieldID = 6;
+        public const int FieldGFieldID = 7;
+        public const int FieldHFieldID = 8;
+        public const int FieldIFieldID = 9;
+        public const int FieldJFieldID = 10;
+        public const int FieldKFieldID = 11;
+        public const int FieldLFieldID = 12;
+        public const int FieldMFieldID = 13;
+        public const int FieldNFieldID = 14;
+        public const int FieldOFieldID = 15;
+        public const int FieldPFieldID = 16;
+        public const int FieldQFieldID = 17;
+        public const int FieldRFieldID = 18;
+        public const int DummyFieldID = 19;
+        public const int FieldTFieldID = 20;
+        public const int FieldSFieldID = 21;
+        public const int FieldUFieldID = 22;
+        public const int FieldVFieldID = 23;
     }

 }
@@ -195,6 +247,8 @@
     {
         public int FieldA { get; set; }

+        // ProtocolBuffers wire field id
+        public const int FieldAFieldID = 1;
     }

 }
@@ -211,6 +265,11 @@

         public int FieldX4 { get; set; }

+        // ProtocolBuffers wire field id
+        public const int FieldX1FieldID = 32;
+        public const int FieldX2FieldID = 64;
+        public const int FieldX3FieldID = 96;
+        public const int FieldX4FieldID = 100;
     }

 }


DirectoryPathValidator tests added

DirectoryPathValidator tests added

--- tests/Juhta.Net.Validation.Tests/DirectoryPathValidatorTests.cs
+++ tests/Juhta.Net.Validation.Tests/DirectoryPathValidatorTests.cs
@@ -1,6 +1,7 @@

 using Juhta.Net.Tests;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;

 namespace Juhta.Net.Validation.Tests
 {
@@ -47,11 +48,29 @@

         [TestMethod]
         [ExpectedException(typeof(ValidationException))]
+        public void Validate_InvalidDirectoryPath_EmptyDirectoryPath_ShouldThrowValidationException()
+        {
+            DirectoryPathValidator validator = new DirectoryPathValidator();
+
+            validator.Validate("");
+        }
+
+        [TestMethod]
+        [ExpectedException(typeof(ValidationException))]
         public void Validate_InvalidDirectoryPath_IllegalCharacterInDirectoryName_ShouldThrowValidationException()
         {
             DirectoryPathValidator filePathValidator = new DirectoryPathValidator();

             filePathValidator.Validate(ToOSPath(@"C:\My Documents\Shopping\MyDocX"));
+        }
+
+        [TestMethod]
+        [ExpectedException(typeof(ArgumentNullException))]
+        public void Validate_InvalidDirectoryPath_NullDirectoryPath_ShouldThrowValidationException()
+        {
+            DirectoryPathValidator validator = new DirectoryPathValidator();
+
+            validator.Validate(null);
         }

         [TestMethod]


Fixed field name

Fixed field name

--- TestEDITOR/EditorContext.cs
+++ TestEDITOR/EditorContext.cs
@@ -83,7 +83,7 @@
             #if DEBUG
             _rootScriptsPath = "../../../Scripts";
             #else
-            _scriptsPath = "Scripts";
+            _rootScriptsPath = "Scripts";
             #endif

             _scriptDirectories = ScriptDirectory.CreateScriptDirectories(_rootScriptsPath);