diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/Interop.COMAdmin.dll b/build/MSBuild.ExtensionPack.4.0.2.0/Interop.COMAdmin.dll
new file mode 100644
index 00000000..b9383304
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/Interop.COMAdmin.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/Interop.IWshRuntimeLibrary.dll b/build/MSBuild.ExtensionPack.4.0.2.0/Interop.IWshRuntimeLibrary.dll
new file mode 100644
index 00000000..2400e761
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/Interop.IWshRuntimeLibrary.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/Ionic.Zip.dll b/build/MSBuild.ExtensionPack.4.0.2.0/Ionic.Zip.dll
new file mode 100644
index 00000000..7b11577f
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/Ionic.Zip.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.Modules.dll b/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.Modules.dll
new file mode 100644
index 00000000..7d93410e
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.Modules.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.dll b/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.dll
new file mode 100644
index 00000000..26fe7e17
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/IronPython.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.Libraries.dll b/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.Libraries.dll
new file mode 100644
index 00000000..65159680
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.Libraries.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.dll b/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.dll
new file mode 100644
index 00000000..b19a2694
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/IronRuby.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.dll
new file mode 100644
index 00000000..6166d6fc
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.pdb
new file mode 100644
index 00000000..03f12d2b
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.xsd
new file mode 100644
index 00000000..d0b503f6
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.BizTalk.xsd
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Framework.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Framework.xsd
new file mode 100644
index 00000000..485dad31
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Framework.xsd
@@ -0,0 +1,1653 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes .NET code dynamically.
+
+
+
+
+
+
+ Specifies the task action to do.
+
+
+
+
+
+
+ Compiles and executes code.
+ Required: @Code.
+ Optional: @Inputs, @Outputs, @Input1, @Input2, @Input3.
+ Outputs: "Output1", "Output2", "Output3", "OutputMethodId".
+ Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces.
+
+
+
+
+
+
+ Calls a method. The method must have been previously defined by "Define".
+ Required: @MethodId.
+ Optional: @Input1, @Input2, @Input3.
+ Outputs: "Output1", "Output2", "Output3".
+
+
+
+
+
+
+ Defines a method containing code.
+ Required: @Code.
+ Optional: @Inputs, @Outputs.
+ Outputs: "OutputMethodId".
+ Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces.
+
+
+
+
+
+
+ Creates a closure.
+ Required: @MethodId.
+ Outputs: "OutputClosureId".
+
+
+
+
+
+
+ Sets an argument value for a closure.
+ Required: @ClosureId, @Name, @InputValue.
+
+
+
+
+
+
+ Invokes a closure.
+ Required: @ClosureId.
+
+
+
+
+
+
+ Retrieves a result value from a closure.
+ Required: @ClosureId, @Name.
+ Outputs: "OutputValue"
+
+
+
+
+
+
+ Destroys a closure.
+ Required: @ClosureId.
+
+
+
+
+
+
+
+
+
+ The actual method code.
+ Required for: "Run", "Define".
+
+
+
+
+
+
+ The input parameters for the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ The output parameters for the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ Additional assembly references for the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ Additional namespace scope imports for the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ If true, no default parameters are passed to the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ If true, no default assembly references are linked to the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ If true, no namespace scopes are imported for the method.
+ Optional for: "Run", "Define".
+
+
+
+
+
+
+ The method on which to perform the task action.
+ Required for: "Call", "Create".
+
+
+
+
+
+
+ The closure on which to perform the task action.
+ Required for: "SetInput", "Invoke", "GetOutput", "Destroy".
+
+
+
+
+
+
+ The name of the parameter to set or get.
+ Required for: "SetInput", "GetOutput".
+
+
+
+
+
+
+ The value to pass for this parameter.
+ Required for: "SetInput".
+
+
+
+
+
+
+ The value to pass for the first parameter.
+ Optional for: "Run", "Call".
+
+
+
+
+
+
+ The value to pass for the second parameter.
+ Optional for: "Run", "Call".
+
+
+
+
+
+
+ The value to pass for the third parameter.
+ Optional for: "Run", "Call".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.dll
new file mode 100644
index 00000000..30283a07
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.pdb
new file mode 100644
index 00000000..55106cf2
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.xsd
new file mode 100644
index 00000000..7419848e
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Iis7.xsd
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.dll
new file mode 100644
index 00000000..dbf65433
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.pdb
new file mode 100644
index 00000000..a4602aab
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.xsd
new file mode 100644
index 00000000..c5c57337
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.JSharp.xsd
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.dll
new file mode 100644
index 00000000..6bf35035
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.pdb
new file mode 100644
index 00000000..07ad5441
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Loggers.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd
new file mode 100644
index 00000000..ec204a2d
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+ The Get task retrieves a read-only copy of the files and folders in a workspace by using specified options.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ The build URI.
+
+
+
+
+
+
+ REQUIRED. The workspace name.
+
+
+
+
+
+
+ The file versionspec. By default the versionspec used is T, or the latest version.
+
+
+
+
+
+
+ The items in the workspace. By default, Team Foundation Build gets all items in the workspace specified by the WorkspaceName property.
+
+
+
+
+
+
+ Specifies whether to overwrite writable files that are not checked out.
+
+
+
+
+
+
+ Populate the Gets, Replaces, Deletes and GetWarnings Item Groups
+
+
+
+
+
+
+ Specifies whether to display what would occur without actually performing the Get operation.
+
+
+
+
+
+
+ Specifies whether files are retrieved recursively.
+
+
+
+
+
+
+ Specifies whether the files are retrieved incrementally.
+
+
+
+
+
+
+
+
+
+
+
+ The Label task attaches a label to the latest version of the files in the workspace.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The label name. By default, the name of the label created by Team Foundation Build is the same as the BuildNumber property.
+
+
+
+
+
+
+ The version of the file or folder.
+
+
+
+
+
+
+ Specifies the scope of the label
+
+
+
+
+
+
+ REQUIRED. The items to be labeled.
+
+
+
+
+
+
+ This corresponds to the /child option of tf.exe label command.
+
+
+
+
+
+
+ Specifies whether the files are labeled recursively.
+
+
+
+
+
+
+ The comment used for the label by Team Foundation Build.
+
+
+
+
+
+
+
+
+
+
+
+ The GenCheckinNotesUpdateWorkItems task associates changesets and work items with a specified build.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+ The Team Foundation Build build number.
+
+
+
+
+
+
+ REQUIRED. The version number label to which the changesets and work items are associated.
+
+
+
+
+
+
+ The starting version number label from which the changesets and work items are associated.
+
+
+
+
+
+
+ Boolean property that specifies whether the Microsoft.VSTS.Build.IntegrationBuild of the associated work items should be updated with the build number.
+
+
+
+
+
+
+
+
+
+
+
+ The CreateNewWorkItem task creates a new work item of the specified type and with the specified title and description.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ The Team Foundation Build build number.
+
+
+
+
+
+
+ REQUIRED. The work item description.
+
+
+
+
+
+
+ REQUIRED. The team project name.
+
+
+
+
+
+
+ REQUIRED. The work item title.
+
+
+
+
+
+
+ Specifies a list of field names and values for the created work item.
+
+
+
+
+
+
+ The work item type.
+
+
+
+
+
+
+
+
+
+
+
+ The CreateWorkspaceTask task creates a workspace with the name and mapping file specified in the TFSBuild.proj file.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+ REQUIRED. The build directory.
+
+
+
+
+
+
+ REQUIRED. The solution root for directory for source files.
+
+
+
+
+
+
+ REQUIRED. The workspace name.
+
+
+
+
+
+
+ The comment used for the workspace.
+
+
+
+
+
+
+
+
+
+
+
+ The DeleteWorkspaceTask task deletes the workspace left by the previous build.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ Indicates whether local items that are specified in the workspace mappings are deleted or not.
+
+
+
+
+
+
+ REQUIRED. The workspace name.
+
+
+
+
+
+
+
+
+
+
+
+ The TestToolsTask task runs tests for an end-to-end build or for a desktop build.
+
+
+
+
+
+
+
+
+ The build configuration e.g. debug
+
+
+
+
+
+
+ The platform e.g. x86
+
+
+
+
+
+
+ The Team Foundation Server URL.
+
+
+
+
+
+
+ The build number for the build.
+
+
+
+
+
+
+ The search path for test files.
+
+
+
+
+
+
+ Specifies where test results get uploaded.
+
+
+
+
+
+
+ The test metadata file.
+
+
+
+
+
+
+ The test configuration file.
+
+
+
+
+
+
+ The test list that is contained in the test metadata file.
+
+
+
+
+
+
+ The team project name.
+
+
+
+
+
+
+ The files that contain tests.
+
+
+
+
+
+
+
+
+
+
+
+ The UpdateBuildNumberDropLocation updates the build number and drop location in the Team Foundation version control database.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+ REQUIRED. The new build number.
+
+
+
+
+
+
+ REQUIRED. The new drop location.
+
+
+
+
+
+
+
+
+
+
+
+ The BuildStep task is a convenience task that adds, and potentially updates via the output ID property, a BuildStep.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ If specified, this is the Id of the build step that is updated. If not specified, a new build step is created.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+ The name of the build step that this task adds.
+
+
+
+
+
+
+ The message that is displayed in the build report in the build steps section.
+
+
+
+
+
+
+ The status for the build step.
+
+
+
+
+
+
+
+
+
+
+
+ The GetBuildProperties task outputs the initial values for the build properties.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+
+
+
+
+
+ The SetBuildProperty task sets various properties for a build.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The URI for the build definition.
+
+
+
+
+
+
+ The build number.
+
+
+
+
+
+
+ The label name.
+
+
+
+
+
+
+ The Log Location.
+
+
+
+
+
+
+
+ The compilation status. Valid values are Succeeded, Failed and Unknown.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The drop location.
+
+
+
+
+
+
+ The build quality.
+
+
+
+
+
+
+ The build status. Valid values are NotStarted, InProgress, Succeeded, PartiallySucceeded, Failed, and Stopped.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The test status. Valid values are Succeeded, Failed, and Unknown.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The WorkspaceItemConverterTask task converts server items to local items and local items to server items.
+
+
+
+
+
+
+
+
+ REQUIRED. Team Foundation Server URL.
+
+
+
+
+
+
+ REQUIRED. The workspace name.
+
+
+
+
+
+
+ The workspace owner.
+
+
+
+
+
+
+ The server items that are converted to local items.
+
+
+
+
+
+
+ The local items that are converted to server items.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.dll
new file mode 100644
index 00000000..b7a4d366
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.pdb
new file mode 100644
index 00000000..1f457737
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.xsd
new file mode 100644
index 00000000..94aa3939
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2005.xsd
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.dll
new file mode 100644
index 00000000..c5531116
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.pdb
new file mode 100644
index 00000000..02e30163
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.xsd
new file mode 100644
index 00000000..51e8ec5c
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sql2008.xsd
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.dll
new file mode 100644
index 00000000..ba4f85e6
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.pdb
new file mode 100644
index 00000000..d3603f2a
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.xsd
new file mode 100644
index 00000000..04370bbf
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.StyleCop.xsd
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.dll
new file mode 100644
index 00000000..8014be3a
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.pdb
new file mode 100644
index 00000000..e84c135e
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.xsd
new file mode 100644
index 00000000..a6741604
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Sync.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll
new file mode 100644
index 00000000..61e6358f
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.pdb
new file mode 100644
index 00000000..c88be514
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.Dlr.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll
new file mode 100644
index 00000000..13d0dd41
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.pdb
new file mode 100644
index 00000000..6763baef
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.dll
new file mode 100644
index 00000000..619bff44
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.pdb
new file mode 100644
index 00000000..46fc8711
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.xsd
new file mode 100644
index 00000000..9a668ffd
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Tfs.xsd
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.VersionNumber.targets b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.VersionNumber.targets
new file mode 100644
index 00000000..a723d57b
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.VersionNumber.targets
@@ -0,0 +1,127 @@
+
+
+
+
+
+ 1
+ 0
+
+
+ DateString
+ MMdd
+ AutoIncrement
+ 00
+
+
+
+
+ 1
+ 0
+
+
+ DateString
+ MMdd
+ AutoIncrement
+ 00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(CoreCompileDependsOn);
+ UpdateAssemblyInfoFiles
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd
new file mode 100644
index 00000000..61b48d0a
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll
new file mode 100644
index 00000000..62196a4e
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.pdb
new file mode 100644
index 00000000..62295ffa
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.WindowsVirtualPC.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll
new file mode 100644
index 00000000..4ecd40a7
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll.config b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll.config
new file mode 100644
index 00000000..5ae72b83
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.pdb b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.pdb
new file mode 100644
index 00000000..94c68931
Binary files /dev/null and b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.pdb differ
diff --git a/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.tasks b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.tasks
new file mode 100644
index 00000000..5c2f4042
--- /dev/null
+++ b/build/MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.tasks
@@ -0,0 +1,131 @@
+
+
+
+ $(MSBuildProjectDirectory)
+ $(BuildPath)\..\..\BuildBinaries\
+ $(MSBuildExtensionsPath)\ExtensionPack\4.0\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs
index b9423638..cf969338 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs
@@ -518,5 +518,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
var matrix = TestMatrices["Tall3x2"];
Assert.Throws(() => matrix.Determinant());
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public override void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(Complex.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex(2.0, 1.0), item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs
index 7bb4b3df..19031f3f 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs
@@ -1787,5 +1787,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.35826643761172, matrix.L2Norm(), 14);
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public virtual void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex(2.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex(2.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex(1.0, 1.0), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex(2.0, 1.0), item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs
index 55e4c8ef..d1ba3e6f 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs
@@ -518,5 +518,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
var matrix = TestMatrices["Tall3x2"];
Assert.Throws(() => matrix.Determinant());
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public override void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(Complex32.Zero, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs
index 703fc028..1be67a4f 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs
@@ -1787,5 +1787,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.3582664f, matrix.L2Norm().Real, 6);
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public virtual void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs
index 1e60252b..20b6796f 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs
@@ -518,5 +518,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
var matrix = TestMatrices["Tall3x2"];
Assert.Throws(() => matrix.Determinant());
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public override void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(0.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0, item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs
index 0d19f7b3..75f35ba4 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.Arithmetic.cs
@@ -472,7 +472,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
}
///
- /// Subtract operator when right side has fewer columns throws ArgumentOutOfRangeException
+ /// Subtract operator when right side has fewer columns throws ArgumentOutOfRangeException
///
[Test]
public void SubtractOperatorWhenRightSideHasFewerColumnsThrowsArgumentOutOfRangeException()
@@ -483,7 +483,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
}
///
- /// Subtract operator when right side has fewer rows throws ArgumentOutOfRangeException
+ /// Subtract operator when right side has fewer rows throws ArgumentOutOfRangeException
///
[Test]
public void SubtractOperatorWhenRightSideHasFewerRowsThrowsArgumentOutOfRangeException()
@@ -769,7 +769,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
}
///
- /// Can nomalize columns of a matrix.
+ /// Can normalize columns of a matrix.
///
/// The norm under which to normalize the columns under.
[Test, Sequential]
@@ -794,7 +794,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
}
///
- /// Can nomalize rows of a matrix.
+ /// Can normalize rows of a matrix.
///
/// The norm under which to normalize the rows under.
[Test, Sequential]
diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs
index 435df077..bc81a4e9 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs
@@ -1728,5 +1728,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.182727033856683, matrix.L2Norm(), 14);
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public virtual void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0, item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs
index 7ba9455a..c3b6b7cb 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs
@@ -517,5 +517,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
var matrix = TestMatrices["Tall3x2"];
Assert.Throws(() => matrix.Determinant());
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public override void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(0.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0f, item.Item3);
+ }
}
}
diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs
index ee2eacba..5611fc6b 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs
@@ -1728,5 +1728,69 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
matrix = TestMatrices["Tall3x2"];
AssertHelpers.AlmostEqual(7.182727033856683f, matrix.L2Norm(), 7);
}
+
+ ///
+ /// Test whether the index enumerator returns the correct values.
+ ///
+ [Test]
+ public virtual void CanUseIndexedEnumerator()
+ {
+ var matrix = TestMatrices["Singular3x3"];
+ var enumerator = matrix.IndexedEnumerator().GetEnumerator();
+
+ enumerator.MoveNext();
+ var item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(0, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(1, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(0, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(1, item.Item2);
+ Assert.AreEqual(1.0f, item.Item3);
+
+ enumerator.MoveNext();
+ item = enumerator.Current;
+ Assert.AreEqual(2, item.Item1);
+ Assert.AreEqual(2, item.Item2);
+ Assert.AreEqual(2.0f, item.Item3);
+ }
}
}