From 0d277b8b5d022bf8079acdeca8549275b02ea5ee Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 2 Jun 2017 23:13:20 +0100 Subject: [PATCH] [SL.Core] initial primitive --- .editorconfig | 3 + SixLabors.Primitives.ruleset | 6 + SixLabors.Primitives.sln | 71 + SixLabors.Primitives.sln.DotSettings | 5 + appveyor.yml | 31 + build.cmd | 38 + codecov.yml | 21 + gitversion.yml | 13 + src/Shared/AssemblyInfo.Common.cs | 38 + src/Shared/stylecop.json | 9 + src/SixLabors.Primitives/Constants.cs | 18 + src/SixLabors.Primitives/Ellipse.cs | 183 +++ src/SixLabors.Primitives/LongRational.cs | 355 +++++ src/SixLabors.Primitives/MathF.cs | 293 +++++ src/SixLabors.Primitives/Matrix.cs | 360 ++++++ src/SixLabors.Primitives/Point.cs | 257 ++++ src/SixLabors.Primitives/PointF.cs | 233 ++++ src/SixLabors.Primitives/Rational.cs | 189 +++ src/SixLabors.Primitives/Rectangle.cs | 467 +++++++ src/SixLabors.Primitives/RectangleF.cs | 400 ++++++ src/SixLabors.Primitives/SignedRational.cs | 189 +++ .../SixLabors.Primitives.csproj | 40 + src/SixLabors.Primitives/Size.cs | 225 ++++ src/SixLabors.Primitives/SizeF.cs | 190 +++ src/SixLabors.Primitives/stylecop.json | 9 + tests/CodeCoverage/CodeCoverage.cmd | 21 + .../OpenCover.4.6.519/License.rtf | 166 +++ .../MSBuild/OpenCover.MSBuild.dll | Bin 0 -> 10240 bytes .../MSBuild/OpenCover.targets | 10 + .../SampleSln/.nuget/packages.config | 6 + .../SampleSln/Bom/Bom.csproj | 53 + .../SampleSln/Bom/BomManager.cs | 17 + .../SampleSln/Bom/Properties/AssemblyInfo.cs | 36 + .../OpenCover.4.6.519/SampleSln/BomSample.sln | 31 + .../SampleSln/BomTest/BomManagerTests.cs | 39 + .../SampleSln/BomTest/BomTest.csproj | 65 + .../BomTest/Properties/AssemblyInfo.cs | 36 + .../SampleSln/BomTest/packages.config | 4 + .../OpenCover.4.6.519/SampleSln/coverage.bat | 5 + .../OpenCover.4.6.519/docs/ReleaseNotes.txt | 137 ++ .../OpenCover.4.6.519/docs/Usage.rtf | 1138 +++++++++++++++++ .../CodeCoverage/OpenCover.4.6.519/readme.txt | 21 + .../tools/Autofac.Configuration.dll | Bin 0 -> 40448 bytes .../OpenCover.4.6.519/tools/Autofac.dll | Bin 0 -> 203264 bytes .../tools/CrashReporter.NET.dll | Bin 0 -> 109056 bytes .../tools/Gendarme.Framework.dll | Bin 0 -> 84992 bytes .../tools/Gendarme.Rules.Maintainability.dll | Bin 0 -> 36352 bytes .../tools/Mono.Cecil.Mdb.dll | Bin 0 -> 45056 bytes .../tools/Mono.Cecil.Pdb.dll | Bin 0 -> 81920 bytes .../OpenCover.4.6.519/tools/Mono.Cecil.dll | Bin 0 -> 280576 bytes .../tools/OpenCover.Console.exe | Bin 0 -> 80384 bytes .../tools/OpenCover.Console.exe.config | 26 + .../tools/OpenCover.Extensions.dll | Bin 0 -> 11264 bytes .../tools/OpenCover.Framework.dll | Bin 0 -> 151040 bytes .../OpenCover.4.6.519/tools/log4net.config | 39 + .../OpenCover.4.6.519/tools/log4net.dll | Bin 0 -> 301056 bytes .../transform/simple_report.xslt | 332 +++++ .../OpenCover.4.6.519/transform/transform.ps1 | 17 + tests/CodeCoverage/packages.config | 4 + .../SixLabors.Primitives.Tests/PointFTests.cs | 192 +++ .../SixLabors.Primitives.Tests/PointTests.cs | 252 ++++ .../RationalTests.cs | 115 ++ .../RectangleFTests.cs | 267 ++++ .../RectangleTests.cs | 308 +++++ .../SignedRationalTests.cs | 122 ++ .../SixLabors.Primitives.Tests.csproj | 34 + .../SixLabors.Primitives.Tests/SizeFTests.cs | 163 +++ tests/SixLabors.Primitives.Tests/SizeTests.cs | 195 +++ 68 files changed, 7494 insertions(+) create mode 100644 .editorconfig create mode 100644 SixLabors.Primitives.ruleset create mode 100644 SixLabors.Primitives.sln create mode 100644 SixLabors.Primitives.sln.DotSettings create mode 100644 appveyor.yml create mode 100644 build.cmd create mode 100644 codecov.yml create mode 100644 gitversion.yml create mode 100644 src/Shared/AssemblyInfo.Common.cs create mode 100644 src/Shared/stylecop.json create mode 100644 src/SixLabors.Primitives/Constants.cs create mode 100644 src/SixLabors.Primitives/Ellipse.cs create mode 100644 src/SixLabors.Primitives/LongRational.cs create mode 100644 src/SixLabors.Primitives/MathF.cs create mode 100644 src/SixLabors.Primitives/Matrix.cs create mode 100644 src/SixLabors.Primitives/Point.cs create mode 100644 src/SixLabors.Primitives/PointF.cs create mode 100644 src/SixLabors.Primitives/Rational.cs create mode 100644 src/SixLabors.Primitives/Rectangle.cs create mode 100644 src/SixLabors.Primitives/RectangleF.cs create mode 100644 src/SixLabors.Primitives/SignedRational.cs create mode 100644 src/SixLabors.Primitives/SixLabors.Primitives.csproj create mode 100644 src/SixLabors.Primitives/Size.cs create mode 100644 src/SixLabors.Primitives/SizeF.cs create mode 100644 src/SixLabors.Primitives/stylecop.json create mode 100644 tests/CodeCoverage/CodeCoverage.cmd create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/License.rtf create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.MSBuild.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.targets create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/.nuget/packages.config create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Bom.csproj create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/BomManager.cs create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Properties/AssemblyInfo.cs create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomSample.sln create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomManagerTests.cs create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomTest.csproj create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/Properties/AssemblyInfo.cs create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/packages.config create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/SampleSln/coverage.bat create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/docs/ReleaseNotes.txt create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/docs/Usage.rtf create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/readme.txt create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Autofac.Configuration.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Autofac.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/CrashReporter.NET.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Gendarme.Framework.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Gendarme.Rules.Maintainability.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Mono.Cecil.Mdb.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Mono.Cecil.Pdb.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/Mono.Cecil.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Console.exe create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Console.exe.config create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Extensions.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Framework.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.config create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.dll create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/transform/simple_report.xslt create mode 100644 tests/CodeCoverage/OpenCover.4.6.519/transform/transform.ps1 create mode 100644 tests/CodeCoverage/packages.config create mode 100644 tests/SixLabors.Primitives.Tests/PointFTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/PointTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/RationalTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/RectangleFTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/RectangleTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/SignedRationalTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/SixLabors.Primitives.Tests.csproj create mode 100644 tests/SixLabors.Primitives.Tests/SizeFTests.cs create mode 100644 tests/SixLabors.Primitives.Tests/SizeTests.cs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..f39b26725 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,3 @@ +[*.cs] +indent_style = space +indent_size = 4 diff --git a/SixLabors.Primitives.ruleset b/SixLabors.Primitives.ruleset new file mode 100644 index 000000000..4106b892c --- /dev/null +++ b/SixLabors.Primitives.ruleset @@ -0,0 +1,6 @@ + + + + + + diff --git a/SixLabors.Primitives.sln b/SixLabors.Primitives.sln new file mode 100644 index 000000000..1d728f98c --- /dev/null +++ b/SixLabors.Primitives.sln @@ -0,0 +1,71 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.6 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{C317F1B1-D75E-4C6D-83EB-80367343E0D7}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + appveyor.yml = appveyor.yml + build.cmd = build.cmd + README.md = README.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{815C0625-CD3D-440F-9F80-2D83856AB7AE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{56801022-D71A-4FBE-BC5B-CBA08E2284EC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9E574A07-F879-4811-9C41-5CBDC6BAFDB7}" + ProjectSection(SolutionItems) = preProject + src\Shared\AssemblyInfo.Common.cs = src\Shared\AssemblyInfo.Common.cs + src\Shared\stylecop.json = src\Shared\stylecop.json + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{9F33164A-9EA9-4CB4-A384-A8A0A6DCA35D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SixLabors.Primitives", "src\SixLabors.Primitives\SixLabors.Primitives.csproj", "{09E744EC-4852-4FC7-BE78-C1B399F17967}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SixLabors.Primitives.Tests", "tests\SixLabors.Primitives.Tests\SixLabors.Primitives.Tests.csproj", "{F836E8E6-B4D9-4208-8346-140C74678B91}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {09E744EC-4852-4FC7-BE78-C1B399F17967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09E744EC-4852-4FC7-BE78-C1B399F17967}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09E744EC-4852-4FC7-BE78-C1B399F17967}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09E744EC-4852-4FC7-BE78-C1B399F17967}.Release|Any CPU.Build.0 = Release|Any CPU + {F836E8E6-B4D9-4208-8346-140C74678B91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F836E8E6-B4D9-4208-8346-140C74678B91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F836E8E6-B4D9-4208-8346-140C74678B91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F836E8E6-B4D9-4208-8346-140C74678B91}.Release|Any CPU.Build.0 = Release|Any CPU + {999EDFB3-9FE4-4E09-B669-CB02E597EC20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {999EDFB3-9FE4-4E09-B669-CB02E597EC20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {999EDFB3-9FE4-4E09-B669-CB02E597EC20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {999EDFB3-9FE4-4E09-B669-CB02E597EC20}.Release|Any CPU.Build.0 = Release|Any CPU + {87E262FA-57FE-4AA7-853C-9DD91E769D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E262FA-57FE-4AA7-853C-9DD91E769D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E262FA-57FE-4AA7-853C-9DD91E769D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E262FA-57FE-4AA7-853C-9DD91E769D4B}.Release|Any CPU.Build.0 = Release|Any CPU + {32D7A12E-B392-42CE-8EFB-1B685680F5B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32D7A12E-B392-42CE-8EFB-1B685680F5B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32D7A12E-B392-42CE-8EFB-1B685680F5B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32D7A12E-B392-42CE-8EFB-1B685680F5B8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {9E574A07-F879-4811-9C41-5CBDC6BAFDB7} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {09E744EC-4852-4FC7-BE78-C1B399F17967} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {F836E8E6-B4D9-4208-8346-140C74678B91} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} + {999EDFB3-9FE4-4E09-B669-CB02E597EC20} = {9F33164A-9EA9-4CB4-A384-A8A0A6DCA35D} + {87E262FA-57FE-4AA7-853C-9DD91E769D4B} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} + {32D7A12E-B392-42CE-8EFB-1B685680F5B8} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection +EndGlobal diff --git a/SixLabors.Primitives.sln.DotSettings b/SixLabors.Primitives.sln.DotSettings new file mode 100644 index 000000000..613ba3882 --- /dev/null +++ b/SixLabors.Primitives.sln.DotSettings @@ -0,0 +1,5 @@ + + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..e534e5855 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,31 @@ +version: 0.0.{build} +image: Visual Studio 2017 + +install: + - choco install gitversion.portable -pre -y + +before_build: + - cmd: dotnet --version + - ps: gitversion /l console /output buildserver + +build_script: + - cmd: build.cmd + - cmd: tests\CodeCoverage\CodeCoverage.cmd + +after_build: + - cmd: appveyor PushArtifact "artifacts\SixLabors.Primitives.%GitVersion_NuGetVersion%.nupkg" + +deploy: + - provider: NuGet + server: https://www.myget.org/F/sixlabors/api/v2/package + symbol_server: https://www.myget.org/F/sixlabors/symbols/api/v2/package + api_key: + secure: SyrSERGrjkK21TSCsHtqke5279SMxXCg2NXKjR2qaErP0khEplwxPwE8Ch5bxzyf + artifact: /.*\.nupkg/ + on: + branch: master + +# prevent the double build when a branch has an active PR +skip_branch_with_pr: true + +test: off diff --git a/build.cmd b/build.cmd new file mode 100644 index 000000000..727bdf880 --- /dev/null +++ b/build.cmd @@ -0,0 +1,38 @@ +@echo Off + +if not "%GitVersion_NuGetVersion%" == "" ( + dotnet restore /p:packageversion=%GitVersion_NuGetVersion% +)ELSE ( + dotnet restore +) + +ECHO Building nuget packages +if not "%GitVersion_NuGetVersion%" == "" ( + dotnet build -c Release /p:packageversion=%GitVersion_NuGetVersion% +)ELSE ( + dotnet build -c Release +) +if not "%errorlevel%"=="0" goto failure + +dotnet test ./tests/SixLabors.Primitives.Tests/SixLabors.Primitives.Tests.csproj + + +if not "%GitVersion_NuGetVersion%" == "" ( + dotnet pack ./src/SixLabors.Primitives/ -c Release --output ../../artifacts --no-build /p:packageversion=%GitVersion_NuGetVersion% +)ELSE ( + dotnet pack ./src/SixLabors.Primitives/ -c Release --output ../../artifacts --no-build +) + +if not "%errorlevel%"=="0" goto failure + +:success +ECHO successfully built project +REM exit 0 +goto end + +:failure +ECHO failed to build. +REM exit -1 +goto end + +:end \ No newline at end of file diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 000000000..cadf5c5da --- /dev/null +++ b/codecov.yml @@ -0,0 +1,21 @@ +codecov: + notify: + require_ci_to_pass: true +comment: off +coverage: + precision: 2 + range: + - 70.0 + - 100.0 + round: down + status: + changes: false + patch: true + project: true +parsers: + gcov: + branch_detection: + conditional: true + loop: true + macro: false + method: false \ No newline at end of file diff --git a/gitversion.yml b/gitversion.yml new file mode 100644 index 000000000..e07c90f0d --- /dev/null +++ b/gitversion.yml @@ -0,0 +1,13 @@ +# to create a new package you create a new release/tag +# in github appveyor will build it without the -cixxx tag +# it will then be deployable cleanly to nuget.org + +branches: + master: + tag: ci + mode: ContinuousDeployment + increment: Minor + prevent-increment-of-merged-branch-version: false + track-merge-target: true +ignore: + sha: [] \ No newline at end of file diff --git a/src/Shared/AssemblyInfo.Common.cs b/src/Shared/AssemblyInfo.Common.cs new file mode 100644 index 000000000..081b01994 --- /dev/null +++ b/src/Shared/AssemblyInfo.Common.cs @@ -0,0 +1,38 @@ +// +// Copyright (c) Scott Williams and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Scott Williams")] +[assembly: AssemblyProduct("SixLabors.Shapes")] +[assembly: AssemblyCopyright("Copyright (c) Scott Williams and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("SixLabors.Shapes.Tests")] +[assembly: InternalsVisibleTo("SixLabors.Shapes.Benchmarks")] diff --git a/src/Shared/stylecop.json b/src/Shared/stylecop.json new file mode 100644 index 000000000..df3c8c9d8 --- /dev/null +++ b/src/Shared/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "Scott Williams", + "copyrightText": "Copyright (c) Scott Williams and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/Constants.cs b/src/SixLabors.Primitives/Constants.cs new file mode 100644 index 000000000..44f68f898 --- /dev/null +++ b/src/SixLabors.Primitives/Constants.cs @@ -0,0 +1,18 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + /// + /// Common constants used throughout the project + /// + internal static class Constants + { + /// + /// The epsilon for comparing floating point numbers. + /// + public static readonly float Epsilon = 0.001f; + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/Ellipse.cs b/src/SixLabors.Primitives/Ellipse.cs new file mode 100644 index 000000000..d5611bb23 --- /dev/null +++ b/src/SixLabors.Primitives/Ellipse.cs @@ -0,0 +1,183 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + + /// + /// Represents an ellipse. + /// + public struct Ellipse : IEquatable + { + /// + /// Represents a that has X and Y values set to zero. + /// + public static readonly Ellipse Empty = default(Ellipse); + + /// + /// The center point. + /// + private Point center; + + /// + /// Initializes a new instance of the struct. + /// + /// The center point. + /// The x-radius. + /// The y-radius. + public Ellipse(Point center, float radiusX, float radiusY) + { + this.center = center; + this.RadiusX = radiusX; + this.RadiusY = radiusY; + } + + /// + /// Gets the x-radius of this . + /// + public float RadiusX { get; } + + /// + /// Gets the y-radius of this . + /// + public float RadiusY { get; } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Compares two objects for equality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + public static bool operator ==(Ellipse left, Ellipse right) + { + return left.Equals(right); + } + + /// + /// Compares two objects for inequality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + public static bool operator !=(Ellipse left, Ellipse right) + { + return !left.Equals(right); + } + + /// + /// Returns the center point of the given + /// + /// The ellipse + /// + public static Vector2 Center(Ellipse ellipse) + { + return new Vector2(ellipse.center.X, ellipse.center.Y); + } + + /// + /// Determines if the specfied point is contained within the rectangular region defined by + /// this . + /// + /// The x-coordinate of the given point. + /// The y-coordinate of the given point. + /// The + public bool Contains(int x, int y) + { + if (this.RadiusX <= 0 || this.RadiusY <= 0) + { + return false; + } + + // TODO: SIMD? + // This is a more general form of the circle equation + // X^2/a^2 + Y^2/b^2 <= 1 + Point normalized = new Point(x - this.center.X, y - this.center.Y); + int nX = normalized.X; + int nY = normalized.Y; + + return ((double)(nX * nX) / (this.RadiusX * this.RadiusX)) + + ((double)(nY * nY) / (this.RadiusY * this.RadiusY)) + <= 1.0; + } + + /// + public override int GetHashCode() + { + return this.GetHashCode(this); + } + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "Ellipse [ Empty ]"; + } + + return + $"Ellipse [ RadiusX={this.RadiusX}, RadiusY={this.RadiusX}, Centre={this.center.X},{this.center.Y} ]"; + } + + /// + public override bool Equals(object obj) + { + if (obj is Ellipse) + { + return this.Equals((Ellipse)obj); + } + + return false; + } + + /// + public bool Equals(Ellipse other) + { + return this.center.Equals(other.center) + && this.RadiusX.Equals(other.RadiusX) + && this.RadiusY.Equals(other.RadiusY); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// The instance of to return the hash code for. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + private int GetHashCode(Ellipse ellipse) + { + unchecked + { + int hashCode = ellipse.center.GetHashCode(); + hashCode = (hashCode * 397) ^ ellipse.RadiusX.GetHashCode(); + hashCode = (hashCode * 397) ^ ellipse.RadiusY.GetHashCode(); + return hashCode; + } + } + } +} diff --git a/src/SixLabors.Primitives/LongRational.cs b/src/SixLabors.Primitives/LongRational.cs new file mode 100644 index 000000000..d33484338 --- /dev/null +++ b/src/SixLabors.Primitives/LongRational.cs @@ -0,0 +1,355 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.Globalization; + using System.Text; + + /// + /// Represents a number that can be expressed as a fraction + /// + /// + /// This is a very simplified implementation of a rational number designed for use with metadata only. + /// + internal struct LongRational : IEquatable + { + /// + /// Initializes a new instance of the struct. + /// + /// + /// The number above the line in a vulgar fraction showing how many of the parts + /// indicated by the denominator are taken. + /// + /// + /// The number below the line in a vulgar fraction; a divisor. + /// + public LongRational(long numerator, long denominator) + : this(numerator, denominator, false) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// + /// The number above the line in a vulgar fraction showing how many of the parts + /// indicated by the denominator are taken. + /// + /// + /// The number below the line in a vulgar fraction; a divisor. + /// + /// + /// Whether to attempt to simplify the fractional parts. + /// + public LongRational(long numerator, long denominator, bool simplify) + : this() + { + this.Numerator = numerator; + this.Denominator = denominator; + + if (simplify) + { + this.Simplify(); + } + } + + /// + /// Initializes a new instance of the struct. + /// + /// The to create the instance from. + /// Whether to use the best possible precision when parsing the value. + public LongRational(double value, bool bestPrecision) + : this() + { + if (double.IsNaN(value)) + { + this.Numerator = this.Denominator = 0; + return; + } + + if (double.IsPositiveInfinity(value)) + { + this.Numerator = 1; + this.Denominator = 0; + return; + } + + if (double.IsNegativeInfinity(value)) + { + this.Numerator = -1; + this.Denominator = 0; + return; + } + + this.Numerator = 1; + this.Denominator = 1; + + double val = Math.Abs(value); + double df = this.Numerator / (double)this.Denominator; + double epsilon = bestPrecision ? double.Epsilon : .000001; + + while (Math.Abs(df - val) > epsilon) + { + if (df < val) + { + this.Numerator++; + } + else + { + this.Denominator++; + this.Numerator = (int)(val * this.Denominator); + } + + df = this.Numerator / (double)this.Denominator; + } + + if (value < 0.0) + { + this.Numerator *= -1; + } + + this.Simplify(); + } + + /// + /// Gets the numerator of a number. + /// + public long Numerator + { + get; + private set; + } + + /// + /// Gets the denominator of a number. + /// + public long Denominator + { + get; + private set; + } + + /// + /// Gets a value indicating whether this instance is indeterminate. + /// + public bool IsIndeterminate + { + get + { + if (this.Denominator != 0) + { + return false; + } + + return this.Numerator == 0; + } + } + + /// + /// Gets a value indicating whether this instance is an integer (n, 1) + /// + public bool IsInteger => this.Denominator == 1; + + /// + /// Gets a value indicating whether this instance is equal to negative infinity (-1, 0) + /// + public bool IsNegativeInfinity + { + get + { + if (this.Denominator != 0) + { + return false; + } + + return this.Numerator == -1; + } + } + + /// + /// Gets a value indicating whether this instance is equal to positive infinity (1, 0) + /// + public bool IsPositiveInfinity + { + get + { + if (this.Denominator != 0) + { + return false; + } + + return this.Numerator == 1; + } + } + + /// + /// Gets a value indicating whether this instance is equal to 0 (0, 1) + /// + public bool IsZero + { + get + { + if (this.Denominator != 1) + { + return false; + } + + return this.Numerator == 0; + } + } + + /// + public bool Equals(LongRational other) + { + if (this.Denominator == other.Denominator) + { + return this.Numerator == other.Numerator; + } + + if (this.Numerator == 0 && this.Denominator == 0) + { + return other.Numerator == 0 && other.Denominator == 0; + } + + if (other.Numerator == 0 && other.Denominator == 0) + { + return this.Numerator == 0 && this.Denominator == 0; + } + + return (this.Numerator * other.Denominator) == (this.Denominator * other.Numerator); + } + + /// + public override int GetHashCode() + { + return this.GetHashCode(this); + } + + /// + public override string ToString() + { + return this.ToString(CultureInfo.InvariantCulture); + } + + /// + /// Converts the numeric value of this instance to its equivalent string representation using + /// the specified culture-specific format information. + /// + /// + /// An object that supplies culture-specific formatting information. + /// + /// The + public string ToString(IFormatProvider provider) + { + if (this.IsIndeterminate) + { + return "[ Indeterminate ]"; + } + + if (this.IsPositiveInfinity) + { + return "[ PositiveInfinity ]"; + } + + if (this.IsNegativeInfinity) + { + return "[ NegativeInfinity ]"; + } + + if (this.IsZero) + { + return "0"; + } + + if (this.IsInteger) + { + return this.Numerator.ToString(provider); + } + + StringBuilder sb = new StringBuilder(); + sb.Append(this.Numerator.ToString(provider)); + sb.Append("/"); + sb.Append(this.Denominator.ToString(provider)); + return sb.ToString(); + } + + /// + /// Finds the greatest common divisor of two values. + /// + /// The first value + /// The second value + /// The + private static long GreatestCommonDivisor(long left, long right) + { + return right == 0 ? left : GreatestCommonDivisor(right, left % right); + } + + /// + /// Simplifies the + /// + private void Simplify() + { + if (this.IsIndeterminate) + { + return; + } + + if (this.IsNegativeInfinity) + { + return; + } + + if (this.IsPositiveInfinity) + { + return; + } + + if (this.IsInteger) + { + return; + } + + if (this.IsZero) + { + return; + } + + if (this.Numerator == 0) + { + this.Denominator = 0; + return; + } + + if (this.Numerator == this.Denominator) + { + this.Numerator = 1; + this.Denominator = 1; + } + + long gcd = GreatestCommonDivisor(Math.Abs(this.Numerator), Math.Abs(this.Denominator)); + if (gcd > 1) + { + this.Numerator = this.Numerator / gcd; + this.Denominator = this.Denominator / gcd; + } + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// The instance of to return the hash code for. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + private int GetHashCode(LongRational rational) + { + return ((rational.Numerator * 397) ^ rational.Denominator).GetHashCode(); + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/MathF.cs b/src/SixLabors.Primitives/MathF.cs new file mode 100644 index 000000000..a15b7fb20 --- /dev/null +++ b/src/SixLabors.Primitives/MathF.cs @@ -0,0 +1,293 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.Runtime.CompilerServices; + + /// + /// Provides single-precision floating point constants and static methods for trigonometric, logarithmic, and other common mathematical functions. + /// + // ReSharper disable InconsistentNaming + internal static class MathF + { + /// + /// Represents the ratio of the circumference of a circle to its diameter, specified by the constant, π. + /// + public const float PI = (float)Math.PI; + + /// + /// Returns the absolute value of a single-precision floating-point number. + /// + /// + /// A number that is greater than or equal to , but less than or equal to . + /// + /// + /// A single-precision floating-point number, x, such that 0 ≤ x ≤. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Abs(float f) + { + return Math.Abs(f); + } + + /// + /// Returns the angle whose tangent is the quotient of two specified numbers. + /// + /// The y coordinate of a point. + /// The x coordinate of a point. + /// + /// An angle, θ, measured in radians, such that -π≤θ≤π, and tan(θ) = y / x, where + /// (x, y) is a point in the Cartesian plane. Observe the following: For (x, y) in + /// quadrant 1, 0 < θ < π/2.For (x, y) in quadrant 2, π/2 < θ≤π.For (x, y) in quadrant + /// 3, -π < θ < -π/2.For (x, y) in quadrant 4, -π/2 < θ < 0.For points on the boundaries + /// of the quadrants, the return value is the following:If y is 0 and x is not negative, + /// θ = 0.If y is 0 and x is negative, θ = π.If y is positive and x is 0, θ = π/2.If + /// y is negative and x is 0, θ = -π/2.If y is 0 and x is 0, θ = 0. If x or y is + /// , or if x and y are either or + /// , the method returns . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Atan2(float y, float x) + { + return (float)Math.Atan2(y, x); + } + + /// + /// Returns the smallest integral value that is greater than or equal to the specified single-precision floating-point number. + /// + /// A single-precision floating-point number. + /// + /// The smallest integral value that is greater than or equal to . + /// If is equal to , , + /// or , that value is returned. + /// Note that this method returns a instead of an integral type. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Ceiling(float f) + { + return (float)Math.Ceiling(f); + } + + /// + /// Returns the cosine of the specified angle. + /// + /// An angle, measured in radians. + /// + /// The cosine of . If is equal to , , + /// or , this method returns . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Cos(float f) + { + return (float)Math.Cos(f); + } + + /// + /// Converts a degree (360-periodic) angle to a radian (2*Pi-periodic) angle. + /// + /// The angle in degrees. + /// + /// The representing the degree as radians. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float DegreeToRadian(float degree) + { + return degree * (PI / 180F); + } + + /// + /// Returns e raised to the specified power. + /// + /// A number specifying a power. + /// + /// The number e raised to the power . + /// If equals or , that value is returned. + /// If equals , 0 is returned. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Exp(float f) + { + return (float)Math.Exp(f); + } + + /// + /// Returns the largest integer less than or equal to the specified single-precision floating-point number. + /// + /// A single-precision floating-point number. + /// + /// The largest integer less than or equal to . + /// If is equal to , , + /// or , that value is returned. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Floor(float f) + { + return (float)Math.Floor(f); + } + + /// + /// Returns the larger of two single-precision floating-point numbers. + /// + /// The first of two single-precision floating-point numbers to compare. + /// The second of two single-precision floating-point numbers to compare. + /// + /// Parameter or , whichever is larger. + /// If , or , or both and are + /// equal to , is returned. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Max(float val1, float val2) + { + return Math.Max(val1, val2); + } + + /// + /// Returns the smaller of two single-precision floating-point numbers. + /// + /// The first of two single-precision floating-point numbers to compare. + /// The second of two single-precision floating-point numbers to compare. + /// + /// Parameter or , whichever is smaller. + /// If , , or both and are equal + /// to , is returned. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Min(float val1, float val2) + { + return Math.Min(val1, val2); + } + + /// + /// Returns a specified number raised to the specified power. + /// + /// A single-precision floating-point number to be raised to a power. + /// A single-precision floating-point number that specifies a power. + /// The number raised to the power . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Pow(float x, float y) + { + return (float)Math.Pow(x, y); + } + + /// + /// Converts a radian (2*Pi-periodic) angle to a degree (360-periodic) angle. + /// + /// The angle in radians. + /// + /// The representing the degree as radians. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float RadianToDegree(float radian) + { + return radian / (PI / 180F); + } + + /// + /// Rounds a single-precision floating-point value to the nearest integral value. + /// + /// A single-precision floating-point number to be rounded. + /// + /// The integer nearest . + /// If the fractional component of is halfway between two integers, one of which is even and the other odd, then the even number is returned. + /// Note that this method returns a instead of an integral type. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Round(float f) + { + return (float)Math.Round(f); + } + + /// + /// Rounds a single-precision floating-point value to the nearest integer. + /// A parameter specifies how to round the value if it is midway between two numbers. + /// + /// A single-precision floating-point number to be rounded. + /// Specification for how to round if it is midway between two other numbers. + /// + /// The integer nearest . If is halfway between two integers, one of which is even + /// and the other odd, then determines which of the two is returned. + /// Note that this method returns a instead of an integral type. + /// + /// + /// is not a valid value of . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Round(float f, MidpointRounding mode) + { + return (float)Math.Round(f, mode); + } + + /// + /// Returns the sine of the specified angle. + /// + /// An angle, measured in radians. + /// + /// The sine of . + /// If is equal to , , + /// or , this method returns . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Sin(float f) + { + return (float)Math.Sin(f); + } + + /// + /// Returns the result of a normalized sine cardinal function for the given value. + /// SinC(x) = sin(pi*x)/(pi*x). + /// + /// A single-precision floating-point number to calculate the result for. + /// + /// The sine cardinal of . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float SinC(float f) + { + if (Abs(f) > Constants.Epsilon) + { + f *= PI; + return Clean(Sin(f) / f); + } + + return 1F; + } + + /// + /// Returns the square root of a specified number. + /// + /// The number whose square root is to be found. + /// + /// One of the values in the following table. + /// parameter Return value Zero or positive The positive square root of . + /// Negative Equals + /// Equals + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Sqrt(float f) + { + return (float)Math.Sqrt(f); + } + + /// + /// Ensures that any passed float is correctly rounded to zero + /// + /// The value to clean. + /// + /// The + /// . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static float Clean(float x) + { + if (Abs(x) < Constants.Epsilon) + { + return 0F; + } + + return x; + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/Matrix.cs b/src/SixLabors.Primitives/Matrix.cs new file mode 100644 index 000000000..6da436cfb --- /dev/null +++ b/src/SixLabors.Primitives/Matrix.cs @@ -0,0 +1,360 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// A Matrix object for applying matrix transforms to primitives. + /// + public struct Matrix : IEquatable + { + private Matrix3x2 backingMatrix; + + private static readonly Matrix _identity = new Matrix + { + backingMatrix = Matrix3x2.Identity + }; + + /// + /// Returns the multiplicative identity matrix. + /// + public static Matrix Identity => _identity; + + /// + /// Returns whether the matrix is the identity matrix. + /// + public bool IsIdentity => this.backingMatrix.IsIdentity; + + /// + /// Gets or sets the translation component of this matrix. + /// + public Vector2 Translation => this.backingMatrix.Translation; + + /// + /// Constructs a Matrix3x2 from the given components. + /// + public Matrix(float m11, float m12, + float m21, float m22, + float m31, float m32) + { + this.backingMatrix = new Matrix3x2(m11, m12, m21, m22, m31, m32); + } + + /// + /// Creates a translation matrix from the given vector. + /// + /// The translation position. + /// A translation matrix. + public static Matrix CreateTranslation(PointF position) => Matrix3x2.CreateTranslation(position); + + /// + /// Creates a translation matrix from the given X and Y components. + /// + /// The X position. + /// The Y position. + /// A translation matrix. + public static Matrix CreateTranslation(float xPosition, float yPosition) => Matrix3x2.CreateTranslation(xPosition, yPosition); + + /// + /// Creates a scale matrix from the given X and Y components. + /// + /// Value to scale by on the X-axis. + /// Value to scale by on the Y-axis. + /// A scaling matrix. + public static Matrix CreateScale(float xScale, float yScale) => Matrix3x2.CreateScale(xScale, yScale); + + /// + /// Creates a scale matrix that is offset by a given center point. + /// + /// Value to scale by on the X-axis. + /// Value to scale by on the Y-axis. + /// The center point. + /// A scaling matrix. + public static Matrix CreateScale(float xScale, float yScale, PointF centerPoint) => Matrix3x2.CreateScale(xScale, yScale, centerPoint); + + /// + /// Creates a scale matrix from the given vector scale. + /// + /// The scale to use. + /// A scaling matrix. + public static Matrix CreateScale(SizeF scales) => Matrix3x2.CreateScale(scales); + + /// + /// Creates a scale matrix from the given vector scale with an offset from the given center point. + /// + /// The scale to use. + /// The center offset. + /// A scaling matrix. + public static Matrix CreateScale(SizeF scales, PointF centerPoint) => Matrix3x2.CreateScale(scales, centerPoint); + + /// + /// Creates a scale matrix that scales uniformly with the given scale. + /// + /// The uniform scale to use. + /// A scaling matrix. + public static Matrix CreateScale(float scale) => Matrix3x2.CreateScale(scale); + + /// + /// Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. + /// + /// The uniform scale to use. + /// The center offset. + /// A scaling matrix. + public static Matrix CreateScale(float scale, PointF centerPoint) => Matrix3x2.CreateScale(scale, centerPoint); + + /// + /// Creates a skew matrix from the given angles in radians. + /// + /// The X angle, in radians. + /// The Y angle, in radians. + /// A skew matrix. + public static Matrix CreateSkew(float radiansX, float radiansY) => Matrix3x2.CreateSkew(radiansX, radiansY); + + /// + /// Creates a skew matrix from the given angles in radians. + /// + /// The X angle, in degrees. + /// The Y angle, in degrees. + /// A skew matrix. + public static Matrix CreateSkewDegrees(float degreesX, float degreesY) => Matrix3x2.CreateSkew(MathF.DegreeToRadian(degreesX), MathF.DegreeToRadian(degreesY)); + + /// + /// Creates a skew matrix from the given angles in radians and a center point. + /// + /// The X angle, in radians. + /// The Y angle, in radians. + /// The center point. + /// A skew matrix. + public static Matrix CreateSkew(float radiansX, float radiansY, PointF centerPoint) => Matrix3x2.CreateSkew(radiansX, radiansY, centerPoint); + + /// + /// Creates a skew matrix from the given angles in radians and a center point. + /// + /// The X angle, in degrees. + /// The Y angle, in degrees. + /// The center point. + /// A skew matrix. + public static Matrix CreateSkewDegrees(float degreesX, float degreesY, PointF centerPoint) => Matrix3x2.CreateSkew(MathF.DegreeToRadian(degreesX), MathF.DegreeToRadian(degreesY), centerPoint); + + /// + /// Creates a rotation matrix using the given rotation in radians. + /// + /// The amount of rotation, in radians. + /// A rotation matrix. + public static Matrix CreateRotation(float radians) => System.Numerics.Matrix3x2.CreateRotation(radians); + + /// + /// Creates a rotation matrix using the given rotation in radians. + /// + /// The amount of rotation, in degrees. + /// A rotation matrix. + public static Matrix CreateRotationDegrees(float degrees) => System.Numerics.Matrix3x2.CreateRotation(MathF.DegreeToRadian(degrees)); + + /// + /// Creates a rotation matrix using the given rotation in radians and a center point. + /// + /// The amount of rotation, in radians. + /// The center point. + /// A rotation matrix. + public static Matrix CreateRotation(float radians, PointF centerPoint) => System.Numerics.Matrix3x2.CreateRotation(radians, centerPoint); + + /// + /// Creates a rotation matrix using the given rotation in radians and a center point. + /// + /// The amount of rotation, in degrees. + /// The center point. + /// A rotation matrix. + public static Matrix CreateRotationDegrees(float degrees, PointF centerPoint) => Matrix3x2.CreateRotation(MathF.DegreeToRadian(degrees), centerPoint); + + /// + /// Calculates the determinant for this matrix. + /// The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1). + /// + /// The determinant. + public float GetDeterminant() => this.backingMatrix.GetDeterminant(); + + /// + /// Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter. + /// + /// The source matrix. + /// The output matrix. + /// True if the operation succeeded, False otherwise. + public static bool Invert(Matrix matrix, out Matrix result) + { + Matrix3x2 m; + var b = System.Numerics.Matrix3x2.Invert(matrix.backingMatrix, out m); + result = m; + return b; + } + + /// + /// Linearly interpolates from matrix1 to matrix2, based on the third parameter. + /// + /// The first source matrix. + /// The second source matrix. + /// The relative weighting of matrix2. + /// The interpolated matrix. + public static Matrix Lerp(Matrix matrix1, Matrix matrix2, float amount) => Matrix3x2.Lerp(matrix1.backingMatrix, matrix2.backingMatrix, amount); + + /// + /// Negates the given matrix by multiplying all values by -1. + /// + /// The source matrix. + /// The negated matrix. + public static Matrix Negate(Matrix value) => -value.backingMatrix; + + /// + /// Adds each matrix element in value1 with its corresponding element in value2. + /// + /// The first source matrix. + /// The second source matrix. + /// The matrix containing the summed values. + public static Matrix Add(Matrix value1, Matrix value2) => value1.backingMatrix + value2.backingMatrix; + + /// + /// Subtracts each matrix element in value2 from its corresponding element in value1. + /// + /// The first source matrix. + /// The second source matrix. + /// The matrix containing the resulting values. + public static Matrix Subtract(Matrix value1, Matrix value2) => value1.backingMatrix - value2.backingMatrix; + + /// + /// Multiplies two matrices together and returns the resulting matrix. + /// + /// The first source matrix. + /// The second source matrix. + /// The product matrix. + public static Matrix Multiply(Matrix value1, Matrix value2) => value1.backingMatrix * value2.backingMatrix; + + /// + /// Scales all elements in a matrix by the given scalar factor. + /// + /// The source matrix. + /// The scaling value to use. + /// The resulting matrix. + public static Matrix Multiply(Matrix value1, float value2) => value1.backingMatrix * value2; + + /// + /// Negates the given matrix by multiplying all values by -1. + /// + /// The source matrix. + /// The negated matrix. + public static Matrix operator -(Matrix value) => -value.backingMatrix; + + /// + /// Adds each matrix element in value1 with its corresponding element in value2. + /// + /// The first source matrix. + /// The second source matrix. + /// The matrix containing the summed values. + public static Matrix operator +(Matrix value1, Matrix value2) => value1.backingMatrix + value2.backingMatrix; + + /// + /// Subtracts each matrix element in value2 from its corresponding element in value1. + /// + /// The first source matrix. + /// The second source matrix. + /// The matrix containing the resulting values. + public static Matrix operator -(Matrix value1, Matrix value2) => value1.backingMatrix - value2.backingMatrix; + + /// + /// Multiplies two matrices together and returns the resulting matrix. + /// + /// The first source matrix. + /// The second source matrix. + /// The product matrix. + public static Matrix operator *(Matrix value1, Matrix value2) => value1.backingMatrix * value2.backingMatrix; + + /// + /// Scales all elements in a matrix by the given scalar factor. + /// + /// The source matrix. + /// The scaling value to use. + /// The resulting matrix. + public static Matrix operator *(Matrix value1, float value2) => value1.backingMatrix * value2; + + /// + /// Returns a boolean indicating whether the given matrices are equal. + /// + /// The first source matrix. + /// The second source matrix. + /// True if the matrices are equal; False otherwise. + public static bool operator ==(Matrix value1, Matrix value2) => value1.backingMatrix == value2.backingMatrix; + + /// + /// Returns a boolean indicating whether the given matrices are not equal. + /// + /// The first source matrix. + /// The second source matrix. + /// True if the matrices are not equal; False if they are equal. + public static bool operator !=(Matrix value1, Matrix value2) + { + return value1.backingMatrix != value2.backingMatrix; + + } + + /// + /// Returns a boolean indicating whether the matrix is equal to the other given matrix. + /// + /// The other matrix to test equality against. + /// True if this matrix is equal to other; False otherwise. + public bool Equals(Matrix other) + { + return this.backingMatrix == other.backingMatrix; + } + + /// + /// Returns a boolean indicating whether the given Object is equal to this matrix instance. + /// + /// The Object to compare against. + /// True if the Object is equal to this matrix; False otherwise. + public override bool Equals(object obj) + { + if (obj is Matrix) + { + return Equals((Matrix)obj); + } + + return false; + } + + /// + /// Returns a String representing this matrix instance. + /// + /// The string representation. + public override string ToString() => this.backingMatrix.ToString(); + + /// + /// Returns the hash code for this instance. + /// + /// The hash code. + public override int GetHashCode() => this.backingMatrix.GetHashCode(); + + /// + /// Creates a with the values of the specified . + /// + /// The matrix. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Matrix3x2(Matrix matrix) => matrix.backingMatrix; + + /// + /// Creates a with the values of the specified . + /// + /// The matrix. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Matrix(Matrix3x2 matrix) => new Matrix { backingMatrix = matrix }; + } +} diff --git a/src/SixLabors.Primitives/Point.cs b/src/SixLabors.Primitives/Point.cs new file mode 100644 index 000000000..243cb8eb3 --- /dev/null +++ b/src/SixLabors.Primitives/Point.cs @@ -0,0 +1,257 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// Represents an ordered pair of integer x- and y-coordinates that defines a point in + /// a two-dimensional plane. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct Point : IEquatable + { + /// + /// Represents a that has X and Y values set to zero. + /// + public static readonly Point Empty = default(Point); + + /// + /// Initializes a new instance of the struct. + /// + /// The horizontal and vertical position of the point. + public Point(int value) + : this() + { + this.X = LowInt16(value); + this.Y = HighInt16(value); + } + + /// + /// Initializes a new instance of the struct. + /// + /// The horizontal position of the point. + /// The vertical position of the point. + public Point(int x, int y) + : this() + { + this.X = x; + this.Y = y; + } + + /// + /// Initializes a new instance of the struct from the given . + /// + /// The size + public Point(Size size) + { + this.X = size.Width; + this.Y = size.Height; + } + + /// + /// Gets or sets the x-coordinate of this . + /// + public int X { get; set; } + + /// + /// Gets or sets the y-coordinate of this . + /// + public int Y { get; set; } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator PointF(Point point) => new PointF(point.X, point.Y); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Vector2(Point point) => new Vector2(point.X, point.Y); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Size(Point point) => new Size(point.X, point.Y); + + /// + /// Translates a by a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point operator +(Point point, Size size) => Add(point, size); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point operator -(Point point, Size size) => Subtract(point, size); + + /// + /// Compares two objects for equality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(Point left, Point right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(Point left, Point right) => !left.Equals(right); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Add(Point point, Size size) => new Point(unchecked(point.X + size.Width), unchecked(point.Y + size.Height)); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Subtract(Point point, Size size) => new Point(unchecked(point.X - size.Width), unchecked(point.Y - size.Height)); + + /// + /// Converts a to a by performing a ceiling operation on all the coordinates. + /// + /// The point + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Ceiling(PointF point) => new Point(unchecked((int)MathF.Ceiling(point.X)), unchecked((int)MathF.Ceiling(point.Y))); + + /// + /// Converts a to a by performing a round operation on all the coordinates. + /// + /// The point + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Round(PointF point) => new Point(unchecked((int)MathF.Round(point.X)), unchecked((int)MathF.Round(point.Y))); + + /// + /// Converts a to a by performing a truncate operation on all the coordinates. + /// + /// The point + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Truncate(PointF point) => new Point(unchecked((int)point.X), unchecked((int)point.Y)); + + /// + /// Converts a to a by performing a round operation on all the coordinates. + /// + /// The vector + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Round(Vector2 vector) => new Point(unchecked((int)MathF.Round(vector.X)), unchecked((int)MathF.Round(vector.Y))); + + /// + /// Rotates a point around the given rotation matrix. + /// + /// The point to rotate + /// Rotation matrix used + /// The rotated + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Rotate(Point point, Matrix3x2 rotation) => Round(Vector2.Transform(new Vector2(point.X, point.Y), rotation)); + + /// + /// Skews a point using the given skew matrix. + /// + /// The point to rotate + /// Rotation matrix used + /// The rotated + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Skew(Point point, Matrix3x2 skew) => Round(Vector2.Transform(new Vector2(point.X, point.Y), skew)); + + /// + /// Translates this by the specified amount. + /// + /// The amount to offset the x-coordinate. + /// The amount to offset the y-coordinate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(int dx, int dy) + { + unchecked + { + this.X += dx; + this.Y += dy; + } + } + + /// + /// Translates this by the specified amount. + /// + /// The used offset this . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(Point point) => this.Offset(point.X, point.Y); + + /// + public override int GetHashCode() => this.GetHashCode(this); + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "Point [ Empty ]"; + } + + return $"Point [ X={this.X}, Y={this.Y} ]"; + } + + /// + public override bool Equals(object obj) => obj is Point && this.Equals((Point)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(Point other) => this.X == other.X && this.Y == other.Y; + + private static short HighInt16(int n) => unchecked((short)((n >> 16) & 0xffff)); + + private static short LowInt16(int n) => unchecked((short)(n & 0xffff)); + + private int GetHashCode(Point point) => point.X ^ point.Y; + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/PointF.cs b/src/SixLabors.Primitives/PointF.cs new file mode 100644 index 000000000..a49a1996b --- /dev/null +++ b/src/SixLabors.Primitives/PointF.cs @@ -0,0 +1,233 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// Represents an ordered pair of single precision floating point x- and y-coordinates that defines a point in + /// a two-dimensional plane. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct PointF : IEquatable + { + /// + /// Represents a that has X and Y values set to zero. + /// + public static readonly PointF Empty = default(PointF); + + /// + /// Initializes a new instance of the struct. + /// + /// The horizontal position of the point. + /// The vertical position of the point. + public PointF(float x, float y) + : this() + { + this.X = x; + this.Y = y; + } + + /// + /// Initializes a new instance of the struct from the given . + /// + /// The size + public PointF(SizeF size) + { + this.X = size.Width; + this.Y = size.Height; + } + + /// + /// Gets or sets the x-coordinate of this . + /// + public float X { get; set; } + + /// + /// Gets or sets the y-coordinate of this . + /// + public float Y { get; set; } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The vector. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator PointF(Vector2 vector) => new PointF(vector.X, vector.Y); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The point. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Vector2(PointF point) => new Vector2(point.X, point.Y); + + /// + /// Creates a with the coordinates of the specified by truncating each of the coordinates. + /// + /// The point. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Point(PointF point) => Point.Truncate(point); + + /// + /// Translates a by a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF operator +(PointF point, SizeF size) => Add(point, size); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF operator -(PointF point, SizeF size) => Subtract(point, size); + + /// + /// Compares two objects for equality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(PointF left, PointF right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(PointF left, PointF right) => !left.Equals(right); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF Add(PointF point, SizeF size) => new PointF(point.X + size.Width, point.Y + size.Height); + + /// + /// Translates a by the negative of a given . + /// + /// The point on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF Subtract(PointF point, SizeF size) => new PointF(point.X - size.Width, point.Y - size.Height); + + /// + /// Rotates a point around the given rotation matrix. + /// + /// The point to rotate + /// Rotation matrix used + /// The rotated + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF Rotate(PointF point, Matrix rotation) => Vector2.Transform(new Vector2(point.X, point.Y), rotation); + + /// + /// Skews a point using the given skew matrix. + /// + /// The point to rotate + /// Rotation matrix used + /// The rotated + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF Skew(PointF point, Matrix skew) => Vector2.Transform(new Vector2(point.X, point.Y), skew); + + /// + /// Translates this by the specified amount. + /// + /// The amount to offset the x-coordinate. + /// The amount to offset the y-coordinate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(float dx, float dy) + { + this.X += dx; + this.Y += dy; + } + + /// + /// Translates this by the specified amount. + /// + /// The used offset this . + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(PointF point) => this.Offset(point.X, point.Y); + + /// + public override int GetHashCode() => this.GetHashCode(this); + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "PointF [ Empty ]"; + } + + return $"PointF [ X={this.X}, Y={this.Y} ]"; + } + + /// + public override bool Equals(object obj) => obj is PointF && this.Equals((PointF)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(PointF other) => this.X.Equals(other.X) && this.Y.Equals(other.Y); + + /// + /// Returns the hash code for this instance. + /// + /// + /// The instance of to return the hash code for. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + private int GetHashCode(PointF point) => point.X.GetHashCode() ^ point.Y.GetHashCode(); + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/Rational.cs b/src/SixLabors.Primitives/Rational.cs new file mode 100644 index 000000000..3d7003b4e --- /dev/null +++ b/src/SixLabors.Primitives/Rational.cs @@ -0,0 +1,189 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.Globalization; + + /// + /// Represents a number that can be expressed as a fraction. + /// + /// + /// This is a very simplified implementation of a rational number designed for use with metadata only. + /// + public struct Rational : IEquatable + { + /// + /// Initializes a new instance of the struct. + /// + /// The to create the rational from. + public Rational(uint value) + : this(value, 1) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. + /// The number below the line in a vulgar fraction; a divisor. + public Rational(uint numerator, uint denominator) + : this(numerator, denominator, true) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. + /// The number below the line in a vulgar fraction; a divisor. + /// Specified if the rational should be simplified. + public Rational(uint numerator, uint denominator, bool simplify) + { + LongRational rational = new LongRational(numerator, denominator, simplify); + + this.Numerator = (uint)rational.Numerator; + this.Denominator = (uint)rational.Denominator; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The to create the instance from. + public Rational(double value) + : this(value, false) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The to create the instance from. + /// Whether to use the best possible precision when parsing the value. + public Rational(double value, bool bestPrecision) + { + LongRational rational = new LongRational(Math.Abs(value), bestPrecision); + + this.Numerator = (uint)rational.Numerator; + this.Denominator = (uint)rational.Denominator; + } + + /// + /// Gets the numerator of a number. + /// + public uint Numerator { get; } + + /// + /// Gets the denominator of a number. + /// + public uint Denominator { get; } + + /// + /// Determines whether the specified instances are considered equal. + /// + /// The first to compare. + /// The second to compare. + /// The + public static bool operator ==(Rational left, Rational right) + { + return Rational.Equals(left, right); + } + + /// + /// Determines whether the specified instances are not considered equal. + /// + /// The first to compare. + /// The second to compare. + /// The + public static bool operator !=(Rational left, Rational right) + { + return !Rational.Equals(left, right); + } + + /// + /// Converts the specified to an instance of this type. + /// + /// The to convert to an instance of this type. + /// + /// The . + /// + public static Rational FromDouble(double value) + { + return new Rational(value, false); + } + + /// + /// Converts the specified to an instance of this type. + /// + /// The to convert to an instance of this type. + /// Whether to use the best possible precision when parsing the value. + /// + /// The . + /// + public static Rational FromDouble(double value, bool bestPrecision) + { + return new Rational(value, bestPrecision); + } + + /// + public override bool Equals(object obj) + { + if (obj is Rational) + { + return this.Equals((Rational)obj); + } + + return false; + } + + /// + public bool Equals(Rational other) + { + LongRational left = new LongRational(this.Numerator, this.Denominator); + LongRational right = new LongRational(other.Numerator, other.Denominator); + + return left.Equals(right); + } + + /// + public override int GetHashCode() + { + LongRational self = new LongRational(this.Numerator, this.Denominator); + return self.GetHashCode(); + } + + /// + /// Converts a rational number to the nearest . + /// + /// + /// The . + /// + public double ToDouble() + { + return this.Numerator / (double)this.Denominator; + } + + /// + public override string ToString() + { + return this.ToString(CultureInfo.InvariantCulture); + } + + /// + /// Converts the numeric value of this instance to its equivalent string representation using + /// the specified culture-specific format information. + /// + /// + /// An object that supplies culture-specific formatting information. + /// + /// The + public string ToString(IFormatProvider provider) + { + LongRational rational = new LongRational(this.Numerator, this.Denominator); + return rational.ToString(provider); + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/Rectangle.cs b/src/SixLabors.Primitives/Rectangle.cs new file mode 100644 index 000000000..9c9a0599e --- /dev/null +++ b/src/SixLabors.Primitives/Rectangle.cs @@ -0,0 +1,467 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// Stores a set of four integers that represent the location and size of a rectangle. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct Rectangle : IEquatable + { + /// + /// Represents a that has X, Y, Width, and Height values set to zero. + /// + public static readonly Rectangle Empty = default(Rectangle); + + /// + /// Initializes a new instance of the struct. + /// + /// The horizontal position of the rectangle. + /// The vertical position of the rectangle. + /// The width of the rectangle. + /// The height of the rectangle. + public Rectangle(int x, int y, int width, int height) + { + this.X = x; + this.Y = y; + this.Width = width; + this.Height = height; + } + + /// + /// Initializes a new instance of the struct. + /// + /// + /// The which specifies the rectangles point in a two-dimensional plane. + /// + /// + /// The which specifies the rectangles height and width. + /// + public Rectangle(Point point, Size size) + { + this.X = point.X; + this.Y = point.Y; + this.Width = size.Width; + this.Height = size.Height; + } + + /// + /// Gets or sets the x-coordinate of this . + /// + public int X { get; set; } + + /// + /// Gets or sets the y-coordinate of this . + /// + public int Y { get; set; } + + /// + /// Gets or sets the width of this . + /// + public int Width { get; set; } + + /// + /// Gets or sets the height of this . + /// + public int Height { get; set; } + + /// + /// Gets or sets the coordinates of the upper-left corner of the rectangular region represented by this . + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public Point Location + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new Point(this.X, this.Y); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + this.X = value.X; + this.Y = value.Y; + } + } + + /// + /// Gets or sets the size of this . + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public Size Size + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new Size(this.Width, this.Height); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + this.Width = value.Width; + this.Height = value.Height; + } + } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Gets the y-coordinate of the top edge of this . + /// + public int Top + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.Y; + } + } + + /// + /// Gets the x-coordinate of the right edge of this . + /// + public int Right + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return unchecked(this.X + this.Width); + } + } + + /// + /// Gets the y-coordinate of the bottom edge of this . + /// + public int Bottom + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return unchecked(this.Y + this.Height); + } + } + + /// + /// Gets the x-coordinate of the left edge of this . + /// + public int Left + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.X; + } + } + + /// + /// Creates a with the coordinates of the specified . + /// + /// The rectangle + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator RectangleF(Rectangle rectangle) => new RectangleF(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The rectangle + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Vector4(Rectangle rectangle) => new Vector4(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height); + + /// + /// Compares two objects for equality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(Rectangle left, Rectangle right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(Rectangle left, Rectangle right) => !left.Equals(right); + + /// + /// Creates a new with the specified location and size. + /// The left coordinate of the rectangle + /// The top coordinate of the rectangle + /// The right coordinate of the rectangle + /// The bottom coordinate of the rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + + // ReSharper disable once InconsistentNaming + public static Rectangle FromLTRB(int left, int top, int right, int bottom) => new Rectangle(left, top, unchecked(right - left), unchecked(bottom - top)); + + /// + /// Returns the center point of the given + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Point Center(Rectangle rectangle) => new Point(rectangle.Left + (rectangle.Width / 2), rectangle.Top + (rectangle.Height / 2)); + + /// + /// Creates a rectangle that represents the intersection between and + /// . If there is no intersection, an empty rectangle is returned. + /// + /// The first rectangle + /// The second rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Intersect(Rectangle a, Rectangle b) + { + int x1 = Math.Max(a.X, b.X); + int x2 = Math.Min(a.Right, b.Right); + int y1 = Math.Max(a.Y, b.Y); + int y2 = Math.Min(a.Bottom, b.Bottom); + + if (x2 >= x1 && y2 >= y1) + { + return new Rectangle(x1, y1, x2 - x1, y2 - y1); + } + + return Empty; + } + + /// + /// Creates a that is inflated by the specified amount. + /// + /// The rectangle + /// The amount to inflate the width by + /// The amount to inflate the height by + /// A new + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Inflate(Rectangle rectangle, int x, int y) + { + Rectangle r = rectangle; + r.Inflate(x, y); + return r; + } + + /// + /// Converts a to a by performing a ceiling operation on all the coordinates. + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Ceiling(RectangleF rectangle) + { + unchecked + { + return new Rectangle( + (int)MathF.Ceiling(rectangle.X), + (int)MathF.Ceiling(rectangle.Y), + (int)MathF.Ceiling(rectangle.Width), + (int)MathF.Ceiling(rectangle.Height)); + } + } + + /// + /// Converts a to a by performing a truncate operation on all the coordinates. + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Truncate(RectangleF rectangle) + { + unchecked + { + return new Rectangle( + (int)rectangle.X, + (int)rectangle.Y, + (int)rectangle.Width, + (int)rectangle.Height); + } + } + + /// + /// Converts a to a by performing a round operation on all the coordinates. + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Round(RectangleF rectangle) + { + unchecked + { + return new Rectangle( + (int)MathF.Round(rectangle.X), + (int)MathF.Round(rectangle.Y), + (int)MathF.Round(rectangle.Width), + (int)MathF.Round(rectangle.Height)); + } + } + + /// + /// Creates a rectangle that represents the union between and . + /// + /// The first rectangle + /// The second rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rectangle Union(Rectangle a, Rectangle b) + { + int x1 = Math.Min(a.X, b.X); + int x2 = Math.Max(a.Right, b.Right); + int y1 = Math.Min(a.Y, b.Y); + int y2 = Math.Max(a.Bottom, b.Bottom); + + return new Rectangle(x1, y1, x2 - x1, y2 - y1); + } + + /// + /// Creates a Rectangle that represents the intersection between this Rectangle and the . + /// + /// The rectangle + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Intersect(Rectangle rectangle) + { + Rectangle result = Intersect(rectangle, this); + + this.X = result.X; + this.Y = result.Y; + this.Width = result.Width; + this.Height = result.Height; + } + + /// + /// Inflates this by the specified amount. + /// + /// The width + /// The height + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Inflate(int width, int height) + { + unchecked + { + this.X -= width; + this.Y -= height; + + this.Width += 2 * width; + this.Height += 2 * height; + } + } + + /// + /// Inflates this by the specified amount. + /// + /// The size + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Inflate(Size size) => this.Inflate(size.Width, size.Height); + + /// + /// Determines if the specfied point is contained within the rectangular region defined by + /// this . + /// + /// The x-coordinate of the given point. + /// The y-coordinate of the given point. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(int x, int y) => this.X <= x && x < this.Right && this.Y <= y && y < this.Bottom; + + /// + /// Determines if the specified point is contained within the rectangular region defined by this . + /// + /// The point + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(Point point) => this.Contains(point.X, point.Y); + + /// + /// Determines if the rectangular region represented by is entirely contained + /// within the rectangular region represented by this . + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(Rectangle rectangle) => + (this.X <= rectangle.X) && (rectangle.Right <= this.Right) && + (this.Y <= rectangle.Y) && (rectangle.Bottom <= this.Bottom); + + /// + /// Determines if the specfied intersects the rectangular region defined by + /// this . + /// + /// The other Rectange + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IntersectsWith(Rectangle rectangle) => + (rectangle.X < this.Right) && (this.X < rectangle.Right) && + (rectangle.Y < this.Bottom) && (this.Y < rectangle.Bottom); + + /// + /// Adjusts the location of this rectangle by the specified amount. + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(Point point) => this.Offset(point.X, point.Y); + + /// + /// Adjusts the location of this rectangle by the specified amount. + /// + /// The amount to offset the x-coordinate. + /// The amount to offset the y-coordinate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(int dx, int dy) + { + unchecked + { + this.X += dx; + this.Y += dy; + } + } + + /// + public override int GetHashCode() => this.GetHashCode(this); + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "Rectangle [ Empty ]"; + } + + return $"Rectangle [ X={this.X}, Y={this.Y}, Width={this.Width}, Height={this.Height} ]"; + } + + /// + public override bool Equals(object obj) => obj is Rectangle && this.Equals((Rectangle)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(Rectangle other) => this.X == other.X && this.Y == other.Y && this.Width == other.Width && this.Height == other.Height; + + private int GetHashCode(Rectangle rectangle) + { + unchecked + { + int hashCode = rectangle.X; + hashCode = (hashCode * 397) ^ rectangle.Y; + hashCode = (hashCode * 397) ^ rectangle.Width; + hashCode = (hashCode * 397) ^ rectangle.Height; + return hashCode; + } + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/RectangleF.cs b/src/SixLabors.Primitives/RectangleF.cs new file mode 100644 index 000000000..c7d8b0ebb --- /dev/null +++ b/src/SixLabors.Primitives/RectangleF.cs @@ -0,0 +1,400 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// Stores a set of four single precision floating points that represent the location and size of a rectangle. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct RectangleF : IEquatable + { + /// + /// Represents a that has X, Y, Width, and Height values set to zero. + /// + public static readonly RectangleF Empty = default(RectangleF); + + /// + /// Initializes a new instance of the struct. + /// + /// The horizontal position of the rectangle. + /// The vertical position of the rectangle. + /// The width of the rectangle. + /// The height of the rectangle. + public RectangleF(float x, float y, float width, float height) + { + this.X = x; + this.Y = y; + this.Width = width; + this.Height = height; + } + + /// + /// Initializes a new instance of the struct. + /// + /// + /// The which specifies the rectangles point in a two-dimensional plane. + /// + /// + /// The which specifies the rectangles height and width. + /// + public RectangleF(PointF point, SizeF size) + { + this.X = point.X; + this.Y = point.Y; + this.Width = size.Width; + this.Height = size.Height; + } + + /// + /// Gets or sets the x-coordinate of this . + /// + public float X { get; set; } + + /// + /// Gets or sets the y-coordinate of this . + /// + public float Y { get; set; } + + /// + /// Gets or sets the width of this . + /// + public float Width { get; set; } + + /// + /// Gets or sets the height of this . + /// + public float Height { get; set; } + + /// + /// Gets or sets the coordinates of the upper-left corner of the rectangular region represented by this . + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public PointF Location + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new PointF(this.X, this.Y); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + this.X = value.X; + this.Y = value.Y; + } + } + + /// + /// Gets or sets the size of this . + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public SizeF Size + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get => new SizeF(this.Width, this.Height); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set + { + this.Width = value.Width; + this.Height = value.Height; + } + } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => (this.Width <= 0) || (this.Height <= 0); + + /// + /// Gets the y-coordinate of the top edge of this . + /// + public float Top + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.Y; + } + } + + /// + /// Gets the x-coordinate of the right edge of this . + /// + public float Right + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.X + this.Width; + } + } + + /// + /// Gets the y-coordinate of the bottom edge of this . + /// + public float Bottom + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.Y + this.Height; + } + } + + /// + /// Gets the x-coordinate of the left edge of this . + /// + public float Left + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get + { + return this.X; + } + } + + /// + /// Creates a with the coordinates of the specified by truncating each coordinate. + /// + /// The rectangle + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Rectangle(RectangleF rectangle) => Rectangle.Truncate(rectangle); + + /// + /// Compares two objects for equality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(RectangleF left, RectangleF right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// The on the left side of the operand. + /// The on the right side of the operand. + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(RectangleF left, RectangleF right) => !left.Equals(right); + + /// + /// Creates a new with the specified location and size. + /// The left coordinate of the rectangle + /// The top coordinate of the rectangle + /// The right coordinate of the rectangle + /// The bottom coordinate of the rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + + // ReSharper disable once InconsistentNaming + public static RectangleF FromLTRB(float left, float top, float right, float bottom) => new RectangleF(left, top, right - left, bottom - top); + + /// + /// Returns the center point of the given + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static PointF Center(RectangleF rectangle) => new PointF(rectangle.Left + (rectangle.Width / 2), rectangle.Top + (rectangle.Height / 2)); + + /// + /// Creates a rectangle that represents the intersection between and + /// . If there is no intersection, an empty rectangle is returned. + /// + /// The first rectangle + /// The second rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static RectangleF Intersect(RectangleF a, RectangleF b) + { + float x1 = MathF.Max(a.X, b.X); + float x2 = MathF.Min(a.Right, b.Right); + float y1 = MathF.Max(a.Y, b.Y); + float y2 = MathF.Min(a.Bottom, b.Bottom); + + if (x2 >= x1 && y2 >= y1) + { + return new RectangleF(x1, y1, x2 - x1, y2 - y1); + } + + return Empty; + } + + /// + /// Creates a that is inflated by the specified amount. + /// + /// The rectangle + /// The amount to inflate the width by + /// The amount to inflate the height by + /// A new + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static RectangleF Inflate(RectangleF rectangle, float x, float y) + { + RectangleF r = rectangle; + r.Inflate(x, y); + return r; + } + + /// + /// Creates a rectangle that represents the union between and . + /// + /// The first rectangle + /// The second rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static RectangleF Union(RectangleF a, RectangleF b) + { + float x1 = MathF.Min(a.X, b.X); + float x2 = MathF.Max(a.Right, b.Right); + float y1 = MathF.Min(a.Y, b.Y); + float y2 = MathF.Max(a.Bottom, b.Bottom); + + return new RectangleF(x1, y1, x2 - x1, y2 - y1); + } + + /// + /// Creates a RectangleF that represents the intersection between this RectangleF and the . + /// + /// The rectangle + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Intersect(RectangleF rectangle) + { + RectangleF result = Intersect(rectangle, this); + + this.X = result.X; + this.Y = result.Y; + this.Width = result.Width; + this.Height = result.Height; + } + + /// + /// Inflates this by the specified amount. + /// + /// The width + /// The height + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Inflate(float width, float height) + { + this.X -= width; + this.Y -= height; + + this.Width += 2 * width; + this.Height += 2 * height; + } + + /// + /// Inflates this by the specified amount. + /// + /// The size + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Inflate(SizeF size) => this.Inflate(size.Width, size.Height); + + /// + /// Determines if the specfied point is contained within the rectangular region defined by + /// this . + /// + /// The x-coordinate of the given point. + /// The y-coordinate of the given point. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(float x, float y) => this.X <= x && x < this.Right && this.Y <= y && y < this.Bottom; + + /// + /// Determines if the specified point is contained within the rectangular region defined by this . + /// + /// The point + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(PointF point) => this.Contains(point.X, point.Y); + + /// + /// Determines if the rectangular region represented by is entirely contained + /// within the rectangular region represented by this . + /// + /// The rectangle + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Contains(RectangleF rectangle) => + (this.X <= rectangle.X) && (rectangle.Right <= this.Right) && + (this.Y <= rectangle.Y) && (rectangle.Bottom <= this.Bottom); + + /// + /// Determines if the specfied intersects the rectangular region defined by + /// this . + /// + /// The other Rectange + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IntersectsWith(RectangleF rectangle) => + (rectangle.X < this.Right) && (this.X < rectangle.Right) && + (rectangle.Y < this.Bottom) && (this.Y < rectangle.Bottom); + + /// + /// Adjusts the location of this rectangle by the specified amount. + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(PointF point) => this.Offset(point.X, point.Y); + + /// + /// Adjusts the location of this rectangle by the specified amount. + /// + /// The amount to offset the x-coordinate. + /// The amount to offset the y-coordinate. + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Offset(float dx, float dy) + { + this.X += dx; + this.Y += dy; + } + + /// + public override int GetHashCode() => this.GetHashCode(this); + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "RectangleF [ Empty ]"; + } + + return $"RectangleF [ X={this.X}, Y={this.Y}, Width={this.Width}, Height={this.Height} ]"; + } + + /// + public override bool Equals(object obj) => obj is RectangleF && this.Equals((RectangleF)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(RectangleF other) => this.X.Equals(other.X) && this.Y.Equals(other.Y) && this.Width.Equals(other.Width) && this.Height.Equals(other.Height); + + private int GetHashCode(RectangleF rectangle) + { + unchecked + { + int hashCode = rectangle.X.GetHashCode(); + hashCode = (hashCode * 397) ^ rectangle.Y.GetHashCode(); + hashCode = (hashCode * 397) ^ rectangle.Width.GetHashCode(); + hashCode = (hashCode * 397) ^ rectangle.Height.GetHashCode(); + return hashCode; + } + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/SignedRational.cs b/src/SixLabors.Primitives/SignedRational.cs new file mode 100644 index 000000000..07fd105da --- /dev/null +++ b/src/SixLabors.Primitives/SignedRational.cs @@ -0,0 +1,189 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.Globalization; + + /// + /// Represents a number that can be expressed as a fraction. + /// + /// + /// This is a very simplified implementation of a rational number designed for use with metadata only. + /// + public struct SignedRational : IEquatable + { + /// + /// Initializes a new instance of the struct. + /// + /// The to create the rational from. + public SignedRational(int value) + : this(value, 1) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. + /// The number below the line in a vulgar fraction; a divisor. + public SignedRational(int numerator, int denominator) + : this(numerator, denominator, true) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. + /// The number below the line in a vulgar fraction; a divisor. + /// Specified if the rational should be simplified. + public SignedRational(int numerator, int denominator, bool simplify) + { + LongRational rational = new LongRational(numerator, denominator, simplify); + + this.Numerator = (int)rational.Numerator; + this.Denominator = (int)rational.Denominator; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The to create the instance from. + public SignedRational(double value) + : this(value, false) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// The to create the instance from. + /// Whether to use the best possible precision when parsing the value. + public SignedRational(double value, bool bestPrecision) + { + LongRational rational = new LongRational(value, bestPrecision); + + this.Numerator = (int)rational.Numerator; + this.Denominator = (int)rational.Denominator; + } + + /// + /// Gets the numerator of a number. + /// + public int Numerator { get; } + + /// + /// Gets the denominator of a number. + /// + public int Denominator { get; } + + /// + /// Determines whether the specified instances are considered equal. + /// + /// The first to compare. + /// The second to compare. + /// The + public static bool operator ==(SignedRational left, SignedRational right) + { + return SignedRational.Equals(left, right); + } + + /// + /// Determines whether the specified instances are not considered equal. + /// + /// The first to compare. + /// The second to compare. + /// The + public static bool operator !=(SignedRational left, SignedRational right) + { + return !SignedRational.Equals(left, right); + } + + /// + /// Converts the specified to an instance of this type. + /// + /// The to convert to an instance of this type. + /// + /// The . + /// + public static SignedRational FromDouble(double value) + { + return new SignedRational(value, false); + } + + /// + /// Converts the specified to an instance of this type. + /// + /// The to convert to an instance of this type. + /// Whether to use the best possible precision when parsing the value. + /// + /// The . + /// + public static SignedRational FromDouble(double value, bool bestPrecision) + { + return new SignedRational(value, bestPrecision); + } + + /// + public override bool Equals(object obj) + { + if (obj is SignedRational) + { + return this.Equals((SignedRational)obj); + } + + return false; + } + + /// + public bool Equals(SignedRational other) + { + LongRational left = new LongRational(this.Numerator, this.Denominator); + LongRational right = new LongRational(other.Numerator, other.Denominator); + + return left.Equals(right); + } + + /// + public override int GetHashCode() + { + LongRational self = new LongRational(this.Numerator, this.Denominator); + return self.GetHashCode(); + } + + /// + /// Converts a rational number to the nearest . + /// + /// + /// The . + /// + public double ToDouble() + { + return this.Numerator / (double)this.Denominator; + } + + /// + public override string ToString() + { + return this.ToString(CultureInfo.InvariantCulture); + } + + /// + /// Converts the numeric value of this instance to its equivalent string representation using + /// the specified culture-specific format information. + /// + /// + /// An object that supplies culture-specific formatting information. + /// + /// The + public string ToString(IFormatProvider provider) + { + LongRational rational = new LongRational(this.Numerator, this.Denominator); + return rational.ToString(provider); + } + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/SixLabors.Primitives.csproj b/src/SixLabors.Primitives/SixLabors.Primitives.csproj new file mode 100644 index 000000000..3a1265cff --- /dev/null +++ b/src/SixLabors.Primitives/SixLabors.Primitives.csproj @@ -0,0 +1,40 @@ + + + + Low level primitives for use across Six Labors projects.. + SixLabors.Primitives + $(packageversion) + 0.1.0-alpha1 + Six Labors + netstandard1.1 + true + true + SixLabors.Primitives + SixLabors.Primitives + rectangle;point;size,primitives + https://raw.githubusercontent.com/SixLabors/Home/master/logo.png + https://github.com/SixLabors/Primitives + http://www.apache.org/licenses/LICENSE-2.0 + git + https://github.com/SixLabors/Primitives + false + false + false + false + false + false + false + false + false + full + + + + + + + + + + + \ No newline at end of file diff --git a/src/SixLabors.Primitives/Size.cs b/src/SixLabors.Primitives/Size.cs new file mode 100644 index 000000000..1605232b1 --- /dev/null +++ b/src/SixLabors.Primitives/Size.cs @@ -0,0 +1,225 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Runtime.CompilerServices; + + /// + /// Stores an ordered pair of integers, which specify a height and width. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct Size : IEquatable + { + /// + /// Represents a that has Width and Height values set to zero. + /// + public static readonly Size Empty = default(Size); + + /// + /// Initializes a new instance of the struct. + /// + /// The width and height of the size + public Size(int value) + : this() + { + this.Width = value; + this.Height = value; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The width of the size. + /// The height of the size. + public Size(int width, int height) + { + this.Width = width; + this.Height = height; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The size + public Size(Size size) + : this() + { + this.Width = size.Width; + this.Height = size.Height; + } + + /// + /// Initializes a new instance of the struct from the given . + /// + /// The point + public Size(Point point) + { + this.Width = point.X; + this.Height = point.Y; + } + + /// + /// Gets or sets the width of this . + /// + public int Width { get; set; } + + /// + /// Gets or sets the height of this . + /// + public int Height { get; set; } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Creates a with the dimensions of the specified . + /// + /// The point + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator SizeF(Size size) => new SizeF(size.Width, size.Height); + + /// + /// Converts the given into a . + /// + /// The size + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Point(Size size) => new Point(size.Width, size.Height); + + /// + /// Computes the sum of adding two sizes. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size operator +(Size left, Size right) => Add(left, right); + + /// + /// Computes the difference left by subtracting one size from another. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size operator -(Size left, Size right) => Subtract(left, right); + + /// + /// Compares two objects for equality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(Size left, Size right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// + /// The on the left side of the operand. + /// + /// + /// The on the right side of the operand. + /// + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(Size left, Size right) => !left.Equals(right); + + /// + /// Performs vector addition of two objects. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size Add(Size left, Size right) => new Size(unchecked(left.Width + right.Width), unchecked(left.Height + right.Height)); + + /// + /// Contracts a by another + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size Subtract(Size left, Size right) => new Size(unchecked(left.Width - right.Width), unchecked(left.Height - right.Height)); + + /// + /// Converts a to a by performing a ceiling operation on all the dimensions. + /// + /// The size + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size Ceiling(SizeF size) => new Size(unchecked((int)MathF.Ceiling(size.Width)), unchecked((int)MathF.Ceiling(size.Height))); + + /// + /// Converts a to a by performing a round operation on all the dimensions. + /// + /// The size + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size Round(SizeF size) => new Size(unchecked((int)MathF.Round(size.Width)), unchecked((int)MathF.Round(size.Height))); + + /// + /// Converts a to a by performing a round operation on all the dimensions. + /// + /// The size + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Size Truncate(SizeF size) => new Size(unchecked((int)size.Width), unchecked((int)size.Height)); + + /// + public override int GetHashCode() => this.GetHashCode(this); + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "Size [ Empty ]"; + } + + return $"Size [ Width={this.Width}, Height={this.Height} ]"; + } + + /// + public override bool Equals(object obj) => obj is Size && this.Equals((Size)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(Size other) => this.Width == other.Width && this.Height == other.Height; + + /// + /// Returns the hash code for this instance. + /// + /// + /// The instance of to return the hash code for. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + private int GetHashCode(Size size) => size.Width ^ size.Height; + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/SizeF.cs b/src/SixLabors.Primitives/SizeF.cs new file mode 100644 index 000000000..a11d2e443 --- /dev/null +++ b/src/SixLabors.Primitives/SizeF.cs @@ -0,0 +1,190 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives +{ + using System; + using System.ComponentModel; + using System.Numerics; + using System.Runtime.CompilerServices; + + /// + /// Stores an ordered pair of single precision floating points, which specify a height and width. + /// + /// + /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, + /// as it avoids the need to create new values for modification operations. + /// + public struct SizeF : IEquatable + { + /// + /// Represents a that has Width and Height values set to zero. + /// + public static readonly SizeF Empty = default(SizeF); + + /// + /// Initializes a new instance of the struct. + /// + /// The width of the size. + /// The height of the size. + public SizeF(float width, float height) + { + this.Width = width; + this.Height = height; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The size + public SizeF(SizeF size) + : this() + { + this.Width = size.Width; + this.Height = size.Height; + } + + /// + /// Initializes a new instance of the struct from the given . + /// + /// The point + public SizeF(PointF point) + { + this.Width = point.X; + this.Height = point.Y; + } + + /// + /// Gets or sets the width of this . + /// + public float Width { get; set; } + + /// + /// Gets or sets the height of this . + /// + public float Height { get; set; } + + /// + /// Gets a value indicating whether this is empty. + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public bool IsEmpty => this.Equals(Empty); + + /// + /// Creates a with the dimensions of the specified by truncating each of the dimensions. + /// + /// The size. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Size(SizeF size) => new Size(unchecked((int)size.Width), unchecked((int)size.Height)); + + /// + /// Converts the given into a . + /// + /// The size + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator PointF(SizeF size) => new PointF(size.Width, size.Height); + + /// + /// Computes the sum of adding two sizes. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static SizeF operator +(SizeF left, SizeF right) => Add(left, right); + + /// + /// Computes the difference left by subtracting one size from another. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// The + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static SizeF operator -(SizeF left, SizeF right) => Subtract(left, right); + + /// + /// Compares two objects for equality. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// True if the current left is equal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator ==(SizeF left, SizeF right) => left.Equals(right); + + /// + /// Compares two objects for inequality. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// + /// True if the current left is unequal to the parameter; otherwise, false. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool operator !=(SizeF left, SizeF right) => !left.Equals(right); + + /// + /// Performs vector addition of two objects. + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static SizeF Add(SizeF left, SizeF right) => new SizeF(left.Width + right.Width, left.Height + right.Height); + + /// + /// Contracts a by another + /// + /// The size on the left hand of the operand. + /// The size on the right hand of the operand. + /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static SizeF Subtract(SizeF left, SizeF right) => new SizeF(left.Width - right.Width, left.Height - right.Height); + + /// + public override int GetHashCode() + { + return this.GetHashCode(this); + } + + /// + public override string ToString() + { + if (this.IsEmpty) + { + return "SizeF [ Empty ]"; + } + + return $"SizeF [ Width={this.Width}, Height={this.Height} ]"; + } + + /// + public override bool Equals(object obj) => obj is SizeF && this.Equals((SizeF)obj); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool Equals(SizeF other) => this.Width.Equals(other.Width) && this.Height.Equals(other.Height); + + private int GetHashCode(SizeF size) => size.Width.GetHashCode() ^ size.Height.GetHashCode(); + + /// + /// Creates a with the coordinates of the specified . + /// + /// The point. + /// + /// The . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static implicit operator Vector2(SizeF point) => new Vector2(point.Width, point.Height); + } +} \ No newline at end of file diff --git a/src/SixLabors.Primitives/stylecop.json b/src/SixLabors.Primitives/stylecop.json new file mode 100644 index 000000000..de88a8bfe --- /dev/null +++ b/src/SixLabors.Primitives/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "Six Labors", + "copyrightText": "Copyright (c) Six Labors and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/tests/CodeCoverage/CodeCoverage.cmd b/tests/CodeCoverage/CodeCoverage.cmd new file mode 100644 index 000000000..498e55b36 --- /dev/null +++ b/tests/CodeCoverage/CodeCoverage.cmd @@ -0,0 +1,21 @@ +@echo off + +cd tests\CodeCoverage + +nuget restore packages.config -PackagesDirectory . + +cd .. +cd .. + +dotnet restore SixLabors.Primitives.sln +dotnet build SixLabors.Primitives.sln --no-incremental -c debug /p:codecov=true + +rem The -threshold options prevents this taking ages... +rem tests\CodeCoverage\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test tests\SixLabors.Shapes.Tests\SixLabors.Shapes.Tests.csproj --no-build -c Release /p:codecov=true" -threshold:10 -register:user -filter:"+[SixLabors.Shapes*]*" -excludebyattribute:*.ExcludeFromCodeCoverage* -hideskipped:All -returntargetcode -output:.\SixLabors.Shapes.Coverage.xml +tests\CodeCoverage\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test tests\SixLabors.Primitives.Tests\SixLabors.Primitives.Tests.csproj --no-build -c debug" -searchdirs:"tests\SixLabors.Shapes.Tests\bin\Release\netcoreapp1.1" -register:user -output:.\SixLabors.Shapes.Coverage.xml -hideskipped:All -returntargetcode -oldStyle -filter:"+[SixLabors.Primitives*]*" + +if %errorlevel% neq 0 exit /b %errorlevel% + +SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH% +pip install codecov +codecov -f "SixLabors.Primitives.Coverage.xml" \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/License.rtf b/tests/CodeCoverage/OpenCover.4.6.519/License.rtf new file mode 100644 index 000000000..0916f4d61 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/License.rtf @@ -0,0 +1,166 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang3081\deflangfe3081\themelang3081\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} +{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f387\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} +{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;} +{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0; +\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp +\f31506\fs22\lang3081\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive +\ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid11275983\rsid14818796\rsid15367925\rsid16724145}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Shaun}{\operator Shaun} +{\creatim\yr2012\mo1\dy5\hr7\min52}{\revtim\yr2012\mo2\dy21\hr8\min10}{\version3}{\edmins2}{\nofpages1}{\nofwords157}{\nofchars900}{\*\company Microsoft}{\nofcharsws1055}{\vern49273}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/word +ml}}\paperw11906\paperh16838\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale60\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot15367925\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14818796 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14818796 Copyright (c) 2011}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16724145 -2012}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14818796 Shaun Wilde +\par Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is fu +rnished to do so, subject to the following conditions: +\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11275983 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f +7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87 +615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad +79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b +5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab +999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9 +699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586 +8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6 +0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f +9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be +15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979 +3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d +32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a +f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86 +e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90 +fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2 +ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae +a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1 +399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5 +4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84 +0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b +c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7 +689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20 +5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0 +aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d +316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840 +545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a +c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100 +0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7 +8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89 +d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500 +1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f +bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6 +a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a +0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021 +0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008 +00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; +\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000e00b +b50e14f0cc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.MSBuild.dll b/tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.MSBuild.dll new file mode 100644 index 0000000000000000000000000000000000000000..4e5b94aaf085b8bf29f639361809f7216d39d51e GIT binary patch literal 10240 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 T?}OP1_r=xp|DOL3_Q3xDcd->A literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.targets b/tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.targets new file mode 100644 index 000000000..caf2b79ba --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/MSBuild/OpenCover.targets @@ -0,0 +1,10 @@ + + + + + $(MSBuildExtensionsPath32)\OpenCover + $(OpenCoverMSBuildTasksPath)\OpenCover.MSBuild.dll + + + + diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/.nuget/packages.config b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/.nuget/packages.config new file mode 100644 index 000000000..cfe9c46fb --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/.nuget/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Bom.csproj b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Bom.csproj new file mode 100644 index 000000000..400bb251a --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Bom.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605} + Library + Properties + Bom + Bom + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/BomManager.cs b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/BomManager.cs new file mode 100644 index 000000000..ad91490d3 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/BomManager.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Bom +{ + public class BomManager + { + public int MethodToTest(IEnumerable collection) + { + return (collection ?? new int[0]).Sum(); + } + } +} diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Properties/AssemblyInfo.cs b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..cc769d0e4 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/Bom/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Bom")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Bom")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2b4e3956-c04a-42f8-a367-87bc16ffa08d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomSample.sln b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomSample.sln new file mode 100644 index 000000000..f5edc5b2d --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomSample.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bom", "Bom\Bom.csproj", "{0C1E1E72-A92D-4B64-83B1-FEF1D05B8605}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BomTest", "BomTest\BomTest.csproj", "{E25E828A-5D71-4E95-AEBC-7AD21315DFEC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{A3CD3B1D-4C14-4A8C-A57F-A265BC49FB29}" + ProjectSection(SolutionItems) = preProject + .nuget\packages.config = .nuget\packages.config + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605}.Release|Any CPU.Build.0 = Release|Any CPU + {E25E828A-5D71-4E95-AEBC-7AD21315DFEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E25E828A-5D71-4E95-AEBC-7AD21315DFEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E25E828A-5D71-4E95-AEBC-7AD21315DFEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E25E828A-5D71-4E95-AEBC-7AD21315DFEC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomManagerTests.cs b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomManagerTests.cs new file mode 100644 index 000000000..486e2b389 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomManagerTests.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Bom; +using NUnit.Framework; + +namespace BomTest +{ + [TestFixture] + public class BomManagerTests + { + [Test] + public void Sum_Is_Zero_When_No_Entries() + { + var bomManager = new BomManager(); + Assert.AreEqual(0, bomManager.MethodToTest(new Collection())); + } + + [Test] + [TestCase(new[] { 0 }, 0)] + [TestCase(new[] { 1 }, 1)] + [TestCase(new[] { 1, 2, 3 }, 6)] + public void Sum_Is_Calculated_Correctly_When_Entries_Supplied(int[] data, int expected) + { + var bomManager = new BomManager(); + Assert.AreEqual(expected, bomManager.MethodToTest(new Collection(data))); + } + + [Test] + public void Sum_Is_Zero_When_Null_Collection() + { + var bomManager = new BomManager(); + Assert.AreEqual(0, bomManager.MethodToTest(null)); + } + } +} diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomTest.csproj b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomTest.csproj new file mode 100644 index 000000000..4942e9f28 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/BomTest.csproj @@ -0,0 +1,65 @@ + + + + + Debug + AnyCPU + {E25E828A-5D71-4E95-AEBC-7AD21315DFEC} + Library + Properties + BomTest + BomTest + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + + + + + + + + + + + + + + + + + + {0C1E1E72-A92D-4B64-83B1-FEF1D05B8605} + Bom + + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/Properties/AssemblyInfo.cs b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..60d4b26d9 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BomTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BomTest")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("688e9792-727d-4e39-a0ae-93461aa13b49")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/packages.config b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/packages.config new file mode 100644 index 000000000..c714ef3a2 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/BomTest/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/coverage.bat b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/coverage.bat new file mode 100644 index 000000000..02415f7e3 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/SampleSln/coverage.bat @@ -0,0 +1,5 @@ +.\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -register:user "-filter:+[Bom]* -[*Test]*" "-target:.\packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" "-targetargs:/noshadow .\BomTest\bin\Debug\BomTest.dll" + +.\packages\ReportGenerator.2.1.8.0\tools\ReportGenerator.exe "-reports:results.xml" "-targetdir:.\coverage" + +pause \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/docs/ReleaseNotes.txt b/tests/CodeCoverage/OpenCover.4.6.519/docs/ReleaseNotes.txt new file mode 100644 index 000000000..cc71c4a16 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/docs/ReleaseNotes.txt @@ -0,0 +1,137 @@ +Version 4.6.519 +#528 -safemode:on to address incomplete coverage due to thread based buffers (feature) +#521 add exclude paths (feature) +#376 protect buffer allocation in multithreaded environment (fix) +#335 allow short wait timeout to be configured (feature) +#310 improved reporting - hide branches due to iterators (feature) +#352 improved reporting - hide branches due to async (feature) +#363 calculate npath comlexity (feature) +#282 exclude by process (feature) +#246 auto crash reports (feature) +#329 address ArgumentOutOfRangeException (potentially related to #274) (fix for VS2015) +#335 error on unrecognized arguments/prefixes (fix) +#328 exclude types when declaredtype is excluded (fix-feature) +#302 ignore branches in known autogenerated sequences (feature) + +Version 4.6.166 +#323 push releases and candidates to github via appveyor (prj-mgmt) +#315 update nuget package (fix for VS2015) +#320 update packages (fix for VS2015) +#304 add switch to control timeout wait (feature) +#307 add -version to args (feature) +#305 add corclr_profiler_path support (feature) +#303 support for test cases and theories during track by test (feature) +#295 exclude assembly by attribute (feature) +#288 report (to console) if can't ready body of method (diag) +#287 fix crash (fix) +#283 Add visited class/method to summary entity (feature) +#274 Use thread based buffers for performance improvement (fix) + +Version 4.5.3723 +#244 support ApplicationUnderTest.Launch to propagate required OPENCOVER environment variables (feature) +#256 support Microsoft Fakes (feature) - beta support until we bed feature in (feature) +#248 address issue with Mono.Cecil and latest PDB (.NET 4.6) version (fix) +#252 use AppVeyor for building code and pull requests (prj-mgmt) + +Version 4.5.3522 +#243 null reference exception when excluding branch point in using finally block (fix) + +Version 4.5.3427 +#234 improved IIS support (fix) +#237 handle multiple files for a method e.g. during code contract re-writes (fix) +#228 add MDB support (feature) +#226 remove branch points on methods without sequence points (fix) +#225 Enable filters to use regular expressions (feature) +#218 Auto tag release notes (prj-mgmt) +#116 output results to accumulate with previous coverage file activate by -mergeoutput (feature) + +Version 4.5.3207 +#209 The number of WaitHandles must be less than or equal to 64 (fix) +#208 Line Number for Branch Points (feature) +#207 "using" statement causes incorrect Branch Coverage (fix) +#201 NETWORK SERVICE support (feature) + +Version 4.5.2506 +#188 Bring back COR_PRF_DISABLE_ALL_NGEN_IMAGES +#190 Compiler generated "Empty" Branch Points feature high close on next release +#191 SequencePoint FileID [CodeContractClass/For] + +Version 4.5.2316 +#170 - Overflow fixed +#188 - re-introduced COR_PRF_DISABLE_ALL_NGEN_IMAGES +#174 / #176 - pass arguments as multiple variable + +Version 4.5.1923 +#168 - skip auto implemented properties +#164 - allow registryless loading +#163 - improved error messages + +Version 4.5.1604 +#156 - prepend targetdir when applying test strategies (silverlight) + +Version 4.5.1528 +#158 - fix app domain crash due to timeout of proxy + +Version 4.5.1403 +#154 - Add xUnit to the list of supported strategies for the Cover by Test feature +#150 - fix for Xslt issue +Build Environment now uses BDD tests to ensure the packages have all assemblies required to run + +Version 4.5.1314 +#148 - Fix issue with nuget and zip packages and missing Autofac assembly. + +Version 4.5.1313 +#118 - Fix communication issue between profiler and host when many processes are vying for the channel + - improved thread management + - only check if method needs tracing if coverbytest option is utilised + +Version 4.5.1310 +#128 - Add threshold limits (optional commandline) to reduce reporting of visits +#135 - Add performance counters (admin privileges required) around the memory processing queues + +Version 4.5.1302 +Update version number to reflect 4.5 support +Fix bug in summaries + +Version 4.0.1229 +Supports .NET 4.5 (not windows store apps) +#120 - Built in Summary Reports - useful for build systems + +Version 4.0.1128 +#125 - Hide compiler generated method when no source remains after skipping +#107 - fix 'sporadic' crash when dealing with Generic methods. + +Version 4.0.1118 +#137 - Fix instrumentation issue when dealing with typed clauses +#107 - fix 'sporadic' crash when dealing with Generic methods. + +Version 4.0.1107 +#133 - Remove skipped File/Module/Class/Methods from report +#130 - Support for 'returntargetcode' switch in msbuild task +#126, #127, #132 - ReportGenerator upgrades +#122 - filter from file instead of command line list option (#123 patch) + +Version 4.0.804 +#117 - fix filter crash with anonymous types +#110 - fix timeout issues due to performance woes in dealing with large number of types/methods + +Version 4.0.724 +#94 - remove thread that "may" have been the cause of the nunit-agent.exe closedown issue - switched to a shared memory buffer per child process/profiler object instantiated +#108 - merge pull request - ToolPath property for MSBuild command + +Version 4.0.519 +#102 - add msbuild parts to zip and nuget package +#99 - exclude anonymous functions if containing method is excluded +#97 - fix crash based on receiving corrupt data (sequence point with id==0) +#88 - only use COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST if oldStyle instrumentation + +Version 4.0.408 +#83 - build a zip package +#88 - provide a switch for "old school" instrumentation +#95 - fix for namespaces with spaces + +Version 4.0.301.10 +#78 - fix for endfault/endfinally +#71 - detect disabled service + + diff --git a/tests/CodeCoverage/OpenCover.4.6.519/docs/Usage.rtf b/tests/CodeCoverage/OpenCover.4.6.519/docs/Usage.rtf new file mode 100644 index 000000000..a078a647e --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/docs/Usage.rtf @@ -0,0 +1,1138 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang3081\deflangfe3081\themelang3081\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} +{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} +{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f39\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\f40\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f61\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f62\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} +{\f64\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f65\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f66\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f67\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} +{\f68\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f69\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f81\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;}{\f82\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;} +{\f84\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f85\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f86\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f87\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);} +{\f88\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f89\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f381\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f382\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} +{\f384\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f385\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f388\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f389\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} +{\f411\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f412\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f414\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f415\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\f418\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f419\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f431\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\f432\fbidi \froman\fcharset204\fprq2 Cambria Cyr;} +{\f434\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\f435\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\f438\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\f439\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);} +{\f441\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f442\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}{\f444\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}{\f445\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;} +{\f448\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f449\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;} +{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0; +\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192; +\caccentone\ctint255\cshade191\red54\green95\blue145;\caccentone\ctint255\cshade255\red79\green129\blue189;\ctexttwo\ctint255\cshade191\red23\green54\blue93;\cfollowedhyperlink\ctint255\cshade255\red128\green0\blue128; +\ctextone\ctint255\cshade255\red0\green0\blue0;\red51\green51\blue51;\red43\green145\blue175;\cbackgroundone\ctint255\cshade191\red191\green191\blue191;}{\*\defchp \f31506\fs22\lang3081\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\sb480\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 +\ab\af0\afs28\alang1025 \ltrch\fcs0 \b\fs28\cf17\lang3081\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid13184707 heading 1;}{\s2\ql \li0\ri0\sb200\sl276\slmult1 +\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 \b\fs26\cf18\lang3081\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 +\sbasedon0 \snext0 \slink16 \sunhideused \sqformat \spriority9 \styrsid12068581 heading 2;}{\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 +\ab\af0\afs22\alang1025 \ltrch\fcs0 \b\fs22\cf18\lang3081\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 \sbasedon0 \snext0 \slink17 \sunhideused \sqformat \spriority9 \styrsid12068581 heading 3;}{\*\cs10 \additive +\sunhideused \spriority1 Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv +\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext11 \ssemihidden \sunhideused +Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\fs28\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid13184707 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af0\afs26 \ltrch\fcs0 +\b\fs26\cf18\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \spriority9 \styrsid12068581 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\cf18\loch\f31502\hich\af31502\dbch\af31501 +\sbasedon10 \slink3 \slocked \spriority9 \styrsid12068581 Heading 3 Char;}{\s18\ql \li0\ri0\sb480\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs28\alang1025 \ltrch\fcs0 +\b\fs28\cf17\lang1033\langfe1041\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1041 \sbasedon1 \snext0 \ssemihidden \sunhideused \sqformat \spriority39 \styrsid7372180 TOC Heading;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 +\sbasedon10 \sunhideused \styrsid8939988 Hyperlink;}{\s20\ql \li0\ri0\sa100\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \sbasedon0 \snext0 \sautoupd \sunhideused \spriority39 \styrsid7372180 toc 1;}{\s21\ql \li220\ri0\sa100\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \sbasedon0 \snext0 \sautoupd \sunhideused \spriority39 \styrsid7372180 +toc 2;}{\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 +\sbasedon0 \snext0 \sautoupd \sunhideused \spriority39 \styrsid7372180 toc 3;}{\s23\ql \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf18 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\contextualspace \rtlch\fcs1 +\af0\afs52\alang1025 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\lang3081\langfe1033\kerning28\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 \sbasedon0 \snext0 \slink24 \sqformat \spriority10 \styrsid7372180 Title;}{\*\cs24 \additive +\rtlch\fcs1 \af0\afs52 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf19\kerning28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink23 \slocked \spriority10 \styrsid7372180 Title Char;}{\s25\ql \li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 +\sbasedon0 \snext25 \sqformat \spriority34 \styrsid6453762 List Paragraph;}{\s26\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 +\fs24\lang3081\langfe3081\cgrid\langnp3081\langfenp3081 \sbasedon0 \snext26 \ssemihidden \sunhideused \styrsid11687369 Normal (Web);}{\*\cs27 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \spriority0 \styrsid11687369 apple-converted-space;}{\* +\ts28\tsrowd\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 +\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv +\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af37\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \sbasedon11 \snext28 \spriority59 \styrsid5114927 +Table Grid;}{\*\cs29 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf20 \sbasedon10 \styrsid11032164 FollowedHyperlink;}}{\*\listtable{\list\listtemplateid740077246\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 +{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid382339409}{\list\listtemplateid1903328102\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201916417\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid201916419\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid201916421\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916417 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916419\'01o;}{\levelnumbers;} +\f2\fbias0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916421\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 +\fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916417\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\lin5040 } +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916419\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916421\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\lin6480 }{\listname ;}\listid401637325}{\list\listtemplateid508579338 +\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid201916433\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li720\lin720 }{\listlevel +\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2 +\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0 +\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0 +\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid405616751}{\list\listtemplateid1306685724\listhybrid{\listlevel\levelnfc4\levelnfcn4\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid201916439\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 +{\leveltext\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid484125747}{\list\listtemplateid1826631064{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 +{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers +\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 +\ltrch\fcs0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li4320 +\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\jclisttab\tx5040\lin5040 } +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc0 +\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid723678808} +{\list\listtemplateid-842228772\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-1138174080\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 +\fi-360\li1080\lin1080 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li2520\lin2520 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li3240\lin3240 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li3960\lin3960 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li4680\lin4680 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li5400\lin5400 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li6120\lin6120 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li6840\lin6840 }{\listname ;}\listid950892184}{\list\listtemplateid-1038568524\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201916431 +\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;} +\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li2880\lin2880 } +{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3600\lin3600 }{\listlevel +\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0 +\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2 +\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6480\lin6480 }{\listname ;}\listid1199853486} +{\list\listtemplateid-1235995406\listhybrid{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid201916439\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 +\fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 +\fi-180\li6480\lin6480 }{\listname ;}\listid1997226378}{\list\listtemplateid-2031863006\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid1313997542 +\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li1080\lin1080 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441 +\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443 +\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li2520\lin2520 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431 +\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3240\lin3240 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441 +\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li3960\lin3960 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443 +\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li4680\lin4680 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916431 +\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li5400\lin5400 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916441 +\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-360\li6120\lin6120 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid201916443 +\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fi-180\li6840\lin6840 }{\listname ;}\listid2120176231}}{\*\listoverridetable{\listoverride\listid405616751\listoverridecount0\ls1}{\listoverride\listid2120176231\listoverridecount0\ls2} +{\listoverride\listid950892184\listoverridecount0\ls3}{\listoverride\listid484125747\listoverridecount0\ls4}{\listoverride\listid1997226378\listoverridecount0\ls5}{\listoverride\listid723678808\listoverridecount0\ls6}{\listoverride\listid1199853486 +\listoverridecount0\ls7}{\listoverride\listid382339409\listoverridecount0\ls8}{\listoverride\listid401637325\listoverridecount0\ls9}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}} +{\*\rsidtbl \rsid97460\rsid221265\rsid284426\rsid537180\rsid664540\rsid735477\rsid735614\rsid738226\rsid879886\rsid935281\rsid1070110\rsid1510934\rsid1583585\rsid1586953\rsid1598011\rsid1775295\rsid1841268\rsid1903893\rsid1926955\rsid1967093\rsid2060806 +\rsid2177067\rsid2243939\rsid2312332\rsid2783484\rsid2827362\rsid2846494\rsid2890017\rsid2959880\rsid2981254\rsid3290111\rsid3490457\rsid3741585\rsid3829756\rsid4010500\rsid4327818\rsid4477453\rsid4484449\rsid4522593\rsid4545630\rsid5050788\rsid5114927 +\rsid5794820\rsid5921453\rsid6438937\rsid6453762\rsid6518571\rsid6886783\rsid7160127\rsid7237901\rsid7289096\rsid7292194\rsid7372180\rsid7816154\rsid8091909\rsid8145172\rsid8329235\rsid8339308\rsid8475156\rsid8479050\rsid8651410\rsid8728997\rsid8847473 +\rsid8852142\rsid8939988\rsid9049101\rsid9068514\rsid9132688\rsid9137041\rsid9332253\rsid9639182\rsid9639869\rsid10224112\rsid10314410\rsid10845574\rsid11032164\rsid11212548\rsid11687369\rsid11802269\rsid12024666\rsid12060006\rsid12068581\rsid12129336 +\rsid12348517\rsid12584760\rsid13184707\rsid13261933\rsid13513498\rsid13586263\rsid13596290\rsid13722641\rsid13847658\rsid14041828\rsid14097242\rsid14228117\rsid14243083\rsid14371182\rsid14497238\rsid14513928\rsid14565649\rsid14684873\rsid14885541 +\rsid15205038\rsid15221525\rsid15280621\rsid15795287\rsid15819295\rsid15938139\rsid16071677\rsid16142742\rsid16259852\rsid16349201\rsid16469695\rsid16712264}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1 +\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Shaun}{\operator Shaun Wilde}{\creatim\yr2012\mo1\dy3\hr1\min4}{\revtim\yr2016\mo1\dy31\hr14\min3}{\printim\yr2016\mo1\dy31\hr14\min2}{\version61}{\edmins4613}{\nofpages11}{\nofwords3439}{\nofchars19608} +{\*\company Microsoft}{\nofcharsws23001}{\vern57439}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1 +\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot284426\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s23\ql \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf18 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7372180\contextualspace \rtlch\fcs1 \af0\afs52\alang1025 \ltrch\fcs0 +\fs52\expnd1\expndtw5\cf19\lang3081\langfe1033\kerning28\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13184707 \hich\af31502\dbch\af31501\loch\f31502 OpenCover Usage Guide}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid12068581 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid1775295 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 {\*\bkmkstart _Toc442012125}\hich\af31502\dbch\af31501\loch\f31502 Intro{\*\bkmkend _Toc442012125} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1775295 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 The following guide describes how to use }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11032164 HYPERLINK "https://github.com/OpenCover/opencover"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11032164 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b66000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004f00700065006e0043006f007600650072002f006f00700065006e0063006f007600650072000000795881f4 +3b1d7f48af2c825dc485276300000000a5ab000000000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid1775295\charrsid879886 OpenCover}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid221265 (also available on }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid221265 HYPERLINK "http://nuget.org/packages/OpenCover/" }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6200000068007400740070003a002f002f006e0075006700650074002e006f00720067002f007000610063006b0061006700650073002f004f00700065006e0043006f007600650072002f000000795881f43b1d7f48 +af2c825dc485276300000000a5ab0000004500000000ff00ffe65b0000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid221265\charrsid221265 NUGET}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid221265 ) }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 to gather coverage statistics of your application. +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid879886 \hich\af31506\dbch\af0\loch\f31506 a)\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0\pararsid879886\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid879886 C}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 an handle 32 and 64 bit .NET processes running on the .NET 2 and .NET 4}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 +}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 frameworks. }{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid879886 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid879886 \hich\af31506\dbch\af0\loch\f31506 b)\tab}W}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 ill gather sequence and branch coverage informatio +n of your assemblies that match the filters and for which the PDB files can be found.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid879886 \hich\af31506\dbch\af0\loch\f31506 c)\tab}Can gather coverage reports of Silverlight applications +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid879886 \hich\af31506\dbch\af0\loch\f31506 d)\tab}Can gather coverage reports of Windows Service applications. +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid879886 \hich\af31506\dbch\af0\loch\f31506 e)\tab}Can record which tests where executing at a particular time when a coverage point was visited \endash + only MSTest and NUnit supported (requests accepted for others).}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1775295 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 Currently OpenCover has no }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid735477 full }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 presentation of results other than the XML output file; }{\field{\*\fldinst { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 HYPERLINK "http://www.palmmedia.de/Net/ReportGenerator" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7000000068007400740070003a002f002f007700770077002e00700061006c006d006d0065006400690061002e00640065002f004e00650074002f005200650070006f0072007400470065006e006500720061007400 +6f0072000000795881f43b1d7f48af2c825dc485276300000000a5ab00006c0000000000ff00ff00000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid1775295\charrsid879886 ReportGenerator}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 (also available on }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 + HYPERLINK "http://nuget.org/packages/ReportGenerator/" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f006e0075006700650074002e006f00720067002f007000610063006b0061006700650073002f005200650070006f0072007400470065006e0065007200610074006f007200 +2f000000795881f43b1d7f48af2c825dc485276300000000a5ab0000005600000000ff00ff00000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid879886\charrsid879886 NUGET}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid879886 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 is currently the recommended tool for visualizing the results. +\par NOTE: }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 When there is n}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 o PDB for an assembly then no coverage data will be gathered; this is different to }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid879886 HYPERLINK "https://github.com/sawilde/partcover.net4" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0073006100770069006c00640065002f00700061007200740063006f007600650072002e006e00650074003400 +0000795881f43b1d7f48af2c825dc485276300000000a5ab0000da0000000000ff00ff1f000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid1775295\charrsid879886 PartCover}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 which will default to IL coverage under this situation but it + was considered as not required as this is supposed to be a code-coverage tool which can relate such coverage to }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\i\insrsid1775295\charrsid4484449 your}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 code. +\par }\pard\plain \ltrpar\s18\ql \li0\ri0\sb480\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs28\alang1025 \ltrch\fcs0 +\b\fs28\cf17\lang1033\langfe1041\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1041 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7372180 \hich\af31502\dbch\af31501\loch\f31502 Table of Contents +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7372180 TOC \\o "1-3" \\h \\z \\u }}{\fldrslt {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012125"}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +{\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320035000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 +\cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Intro}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 +\af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012125 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320035000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 1}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012126"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320036000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Command Arguments}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012126 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320036000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 2}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012127"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320037000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Mandatory}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012127 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320037000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 2}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012128"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320038000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Optional}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012128 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320038000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 2}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012129"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320039000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Handling Spaces}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012129 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100320039000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 5}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012130"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330030000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Understanding Filters}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 +PAGEREF _Toc442012130 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330030000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 6}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012131"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330031000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Examples}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012131 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330031000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 6}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012132"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330032000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Regular Expressions in Filters}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012132 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330032000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 6}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012133"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330033000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Examples}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012133 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330033000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 6}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012134"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330034000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Running against IIS}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 +PAGEREF _Toc442012134 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330034000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 7}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012135"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330035000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Running against an application}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 +\tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012135 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330035000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 7}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012136"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330036000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Sample}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012136 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330036000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 7}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012137"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330037000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Running against a Silverlight application}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012137 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330037000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 7}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012138"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330038000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Sample}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012138 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330038000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 8}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012139"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330039000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Running against a Service application}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012139 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100330039000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 8}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012140"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340030000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Sample}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF +_Toc442012140 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340030000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 8}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012141"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340031000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Using the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\i\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 -excludeb\hich\af31506\dbch\af31501\loch\f31506 +yattribute}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 option}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012141 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340031000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid16712264 8}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012142"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340032000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Using the }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\cs19\i\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 -excludebyfile}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 option}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 +\af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012142 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340032000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 8}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012143"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340033000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Shimming support}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012143 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340033000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012144"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340034000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Microsoft Moles support}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 +PAGEREF _Toc442012144 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340034000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012145"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340035000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 Microsoft Fakes support}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012145 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340035000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012146"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340036000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 TypeMock support}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012146 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340036000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012147"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340037000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 JustMock support}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012147 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340037000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012148"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340038000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Build system integration}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 + PAGEREF _Toc442012148 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340038000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 9}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012149"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340039000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 all-users (32-bit)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 +PAGEREF _Toc442012149 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100340039000000}}}{\fldrslt { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012150"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350030000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 all-users (64-bit)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012150 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350030000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012151"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350031000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 single-user}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab } +{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012151 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350031000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s21\ql \li220\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin220\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012152"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350032000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 R\hich\af31506\dbch\af31501\loch\f31506 eporting}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012152 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350032000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012153"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350033000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 FAQ}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst { +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012153 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350033000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s22\ql \li440\ri0\sa100\sl276\slmult1\widctlpar\tqr\tldot\tx9016\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin440\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012154"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350034000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 +\hich\af31506\dbch\af31501\loch\f31506 Why do I have no results?}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012154 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield +08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350034000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid16712264 10}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\insrsid664540 HYPERLINK \\l "_Toc442012155"}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 }{\rtlch\fcs1 \af0 +\ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350035000000}}}{\fldrslt {\rtlch\fcs1 +\af0 \ltrch\fcs0 \cs19\ul\cf2\lang1024\langfe1024\dbch\af31501\noproof\insrsid664540\charrsid16737848 \hich\af31506\dbch\af31501\loch\f31506 All my tests are failing and I am getting MissingMethodException}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 \tab }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1024\langfe1024\noproof\webhidden\insrsid664540 PAGEREF _Toc442012155 \\h }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid664540 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003400340032003000310032003100350035000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 +\lang1024\langfe1024\noproof\webhidden\insrsid16712264 11}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj }}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\dbch\af31505\noproof\langfenp3081\insrsid664540 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12129336 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 }}\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1 +\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12129336 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 +{\*\bkmkstart _Toc442012126}\hich\af31502\dbch\af31501\loch\f31502 Command Arguments{\*\bkmkend _Toc442012126} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8939988 OpenCover has a number of arguments that can be used to control the code coverage gathering. If an argument requires s}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8939988\charrsid8939988 paces}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \insrsid8939988\charrsid8939988 then use "}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8939988 \rquote s to wrap the argument, where they are applicable they will be indicated with an optional syntax [].}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid4484449 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12068581 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid8728997 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16349201 {\*\bkmkstart _Toc442012127}\hich\af31502\dbch\af31501\loch\f31502 Mandatory{\*\bkmkend _Toc442012127} + +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8939988\charrsid5050788 ["]-target:<}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid16349201\charrsid5050788 target application}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8939988\charrsid5050788 >["] +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid8728997 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid16349201 +The name of the target application or service that will be started; this can also be a path to the target application. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8728997 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8728997 Alternatively use }{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid8728997\charrsid5050788 -?}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2060806 to show command line help, or }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2060806\charrsid2060806 -version}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2060806 + to print the current version and exit.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8728997 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid8728997 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16349201 {\*\bkmkstart _Toc442012128}\hich\af31502\dbch\af31501\loch\f31502 Optional}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid8939988 {\*\bkmkend _Toc442012128} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16349201 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid16349201\charrsid5050788 ["]-targetdir:["] +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid8728997 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16349201 +The path to the target directory; if the target argument already contains a path then this argument can be used to provide an alternate path wh}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8728997 ere PDB files may be found. }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid16349201 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8728997\charrsid5050788 ["]}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid8728997\charrsid5050788 -targetargs:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8728997\charrsid5050788 ["]}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8728997\charrsid5050788 +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8728997 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8728997 Arguments to be passed to the target process.}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid1841268 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9639182 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid9639182\charrsid9639182 [\'93]-searchdirs:[;[\'93] + +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639182 \tab Additional locations to check for PDB files.\page +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8728997\charrsid5050788 -register[:user}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid9639182 |path32|path64}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8728997\charrsid5050788 ] +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid9639182 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8728997 Use this switch to register and d +e-register the code coverage profiler. Alternatively use the optional }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8728997\charrsid9639182 user}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8728997 + argument to do per-user registration where the user account does not have administrative permissions. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639182 +\par If access to registry is limited then try the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid9639182\charrsid9639182 path32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639182 or }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid9639182\charrsid9639182 path64}{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid9639182 , depending on your application (32- or 64-bit), to use an alternate method to load the profiler; unfortunately you cannot profile 32- and 64-bit processes at the same time using these switches.}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid9639182\charrsid9639182 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8728997 Alternatively use an administrative account to register the profi}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639182 lers using t +he regsvr32 utility; this is the recommended option when running on a build server especially if \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid9639182\charrsid9639182 \endash register:user}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639182 does not work. + +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1586953 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid1586953\charrsid13513498 -returntargetcode[:] + +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid1586953 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid1586953\charrsid2783484 +Return the target process return code instead of the OpenCover console return code. Use the offset to return the OpenCover console at a value outside the range returned by the target process. }{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid1586953\charrsid1586953 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15205038 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid15205038\charrsid15205038 -safemode:on|off|yes|no +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid15205038 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid15205038 Use this switch to disable safe mode (default is }{\rtlch\fcs1 +\af0 \ltrch\fcs0 \b\insrsid15205038\charrsid15205038 on}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid15205038 /yes). When in safe mode the profiler will use a common buffer for all threads which may have performance impacts if you code or tests use threads he +avily. When safe mode is disabled, there may on occasions be some data loss if the runtime closes the application under profile before the profiler has been able to retrieve the visit count data. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid5050788\charrsid13513498 ["]}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid5050788\charrsid13513498 -output:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid5050788\charrsid13513498 ["]}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12068581\charrsid13513498 +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid664540 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid5050788 +The location and name of the output xml file. If no value is supplied then the current directory will be used and the outpu}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 t filename will be results.xml.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid9639869 + +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1586953 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid1586953\charrsid2312332 -threshold: +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid1586953 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid1586953 +Limits the number of visit counts recorded/reported for an instrumentation point. May have some performance gains as it can reduce the number of messages sent fr +om the profiler. Coverage results should not be affected but will have an obvious impact on the Visit Counts reported.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 +\par +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid664540 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid13513498 ["]}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid664540\charrsid13513498 -filter:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid13513498 ["] +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid664540 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 A list of filters to apply to selectively include or +exclude assemblies and classes from coverage results. Filters have their own form}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540\charrsid9332253 at }{\rtlch\fcs1 \af37 \ltrch\fcs0 \b\insrsid664540 \'b1[module}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\b\insrsid664540\charrsid9332253 -filter]class-filter}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 . If no filter(s) are supplied then a default include all filter is applied +[*]*. As can be seen you can use an * as a wildcard. +\par +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \b\insrsid664540\charrsid13261933 NOTE}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 : Also an }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid13261933 exclusion}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 (-) +filter takes precedence over an }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid13261933 inclusion}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540\charrsid13261933 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 (+) filter.}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \insrsid664540 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid664540 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid664540 \page +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9639869 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid9639869\charrsid9639869 -regex +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid9639869 \tab +\par \tab Filters are supplied using regular expressions rather than wildcards. +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid1586953 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid9639869 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9332253 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid14243083\charrsid13513498 -nodefaultfilters +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14243083 +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14243083\charrsid2783484 A list of default exclusion filters are usually applied}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid10314410\charrsid2783484 , this option can be used to turn them off. The default filters are:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14243083\charrsid2783484 +\par }\pard \ltrpar\ql \li1440\ri0\widctlpar\wrapdefault\faauto\rin0\lin1440\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10314410\charrsid2783484 -[mscorlib]* +\par -[mscorlib.*]* +\par -[System]* +\par -[System.*]* +\par -[Microsoft.VisualBasic]* +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9332253 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10314410\charrsid2783484 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid10314410\charrsid13513498 -mergebyhash +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10314410\charrsid2783484 +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10314410\charrsid2783484 +Under some scenarios e.g. using MSTest, an assembly may be loaded many times from different locations. This option is used to merge the coverage results for an assembly regardless of where it was loaded as +suming the assembly has the same file-hash in each location. +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9332253 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2846494 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494\charrsid2846494 -skipautoprops}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid10314410\charrsid2846494 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2846494 +\par }\pard \ltrpar\ql \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid2846494 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2846494 Neither track nor record Auto-Implemented properties. +\par +\par i.e. skip getters and setters like these +\par +\par }{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf2\highlight8\insrsid2846494 public}{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\highlight8\insrsid2846494 }{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf2\highlight8\insrsid2846494 bool}{ +\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\highlight8\insrsid2846494 Service \{ }{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf2\highlight8\insrsid2846494 get}{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\highlight8\insrsid2846494 ; }{ +\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf2\highlight8\insrsid2846494 set}{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\highlight8\insrsid2846494 ; \}}{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\insrsid2846494 +\par }{\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\cf1\insrsid664540 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid664540 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid13513498 -showunvisited +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540\charrsid2783484 +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid664540 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540\charrsid2783484 Show a list of unvisited methods and classes after the coverage run is finished}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \insrsid664540 and the results are presented.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15205038 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540\charrsid664540 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15205038 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid15205038\charrsid9639182 [\'93]-}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid15205038 excludeddirs:[;[\'93 +] +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid15205038 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid15205038 Any assembly found in an excluded folder (or its children) will be ignored, regardless of any inclusive +filter matches.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2846494 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9332253 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14228117\charrsid2783484 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid10845574\charrsid13513498 -excludebyattribute:[;][;]} +{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2783484\charrsid13513498 +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10845574 +Exclude a class or method by filter(s) that match attributes that have been applied that have been applied.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid4327818 An * can be used as a wildcard.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10845574 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid10845574\charrsid13513498 -excludebyfile:[;][;] + +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid4327818 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid10845574 Exclude a class (or methods) by filter(s)}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \insrsid13513498 that match the filenames.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 An * can be used as a wildcard.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid664540 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid664540 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid664540 \page +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12060006 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 -hideskipped:}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid3490457\charrsid15280621 File|Filter|Attribute|MissingPdb}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494 |}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494\charrsid2846494 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494\charrsid15280621 +MissingPdb }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid3490457\charrsid15280621 |All}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540 |}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540\charrsid664540 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid664540 Excl +udedFolder}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid3490457\charrsid15280621 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 [}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid3490457 {\*\bkmkstart OLE_LINK1}{\*\bkmkstart OLE_LINK2};}{ +\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 File|}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid15280621\charrsid15280621 Filter}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 |Attribute}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid15280621\charrsid15280621 |MissingPdb}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494 |}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494\charrsid2846494 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2846494\charrsid15280621 MissingPdb }{ +\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 |All}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid15205038 {\*\bkmkend OLE_LINK1}{\*\bkmkend OLE_LINK2}|ExcludedFolder}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid15280621 ] + +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid12060006 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 Remove information from output file (}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \i\insrsid12060006\charrsid8475156 -output:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 ) that relates to classes/modules that have been skipped (filtered) due to the use of}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3741585 + the following switches}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid8475156 \endash }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid3741585 excludeb}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid12060006\charrsid8475156 yfile}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8475156 :}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 ,}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15280621 }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid3741585\charrsid3741585 \_}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid15280621\charrsid3741585 e}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid15280621\charrsid8475156 xcludebyattribut}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8475156 e:}{\rtlch\fcs1 +\af37 \ltrch\fcs0 \insrsid3741585 and}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid15280621\charrsid8475156 \endash }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid12060006\charrsid8475156 filter}{\rtlch\fcs1 +\af37 \ltrch\fcs0 \i\insrsid8475156\charrsid8475156 :}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3741585 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15280621 or where the PDB is missing}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid12060006 . +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5794820 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid5794820 -coverbytest}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid5794820\charrsid13513498 :[;][;] +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid1967093 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid5794820 +Gather coverage by test by analysing the assemblies that match these filters for Test m}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15280621 ethods. Currently only }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8339308 MSTest and }{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid5794820 NUnit tests}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15280621 are supported; other frameworks can be added on request \endash please raise support request on GitHub.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid5794820 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12068581 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid13513498\charrsid13513498 -log:[Off|Fatal|Error|Warn|Info|Debug|Verbose|All] + +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid13513498 Change the logging level, default is set to Info. }{\rtlch\fcs1 +\af37 \ltrch\fcs0 \insrsid13513498\charrsid13513498 Logging is based on log4net logging levels and appenders}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid13513498 . +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8145172 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid13513498\charrsid13513498 -service +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid15795287 {\rtlch\fcs1 \af37 \ltrch\fcs0 \b\insrsid15795287\charrsid7816154 NOTE}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid15795287 : \'93Administrator\'94 privileges recommended. +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid13513498 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid13513498 +The value provided in the target parameter is the name of a service rather than a name of a process. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8145172 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8145172\charrsid8145172 -servicestarttimeout:[1m|23s|1m23s] +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid8145172 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8145172 Overrides the default time to wait for the profiled service t +o start. The examples above correspond to a timeout of 1 minute, 23 seconds and 1 minutes and 23 seconds accordingly. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8145172 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid14513928\charrsid13513498 -}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\i\insrsid14513928 oldstyle}{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid14513928\charrsid13513498 +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14513928 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14513928 Use old style instru}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid3490457 mentation \endash the instrumentation}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid14513928 is not Silverlight friendly and is provided to support environments where mscorlib instrumentation is not working. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8145172 {\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid2312332\charrsid2312332 -enableperformancecounters +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2312332 {\rtlch\fcs1 \af37 \ltrch\fcs0 \b\insrsid2312332\charrsid7816154 NOTE}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid2312332 : \'93Administrator\'94 privileges}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid15795287 required}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332 . +\par Allows the monitoring in \'93Performance Monitor\'94 of the following }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid7816154 values}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332 : +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid2312332\charrsid2312332 \hich\af31506\dbch\af0\loch\f31506 1)\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li1080\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin1080\itap0\pararsid2312332\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid2312332\charrsid2312332 \'93messages remaining on the queue}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332 \'94 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid2312332\charrsid2312332 \hich\af31506\dbch\af0\loch\f31506 2)\tab}}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332\charrsid2312332 \'93number of messages processed\'94 +}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332 +\par }\pard\plain \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid7816154 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid7816154 These values are usually cleared at the end of a performance run.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid7816154\charrsid7816154 +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid2312332 {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2312332\charrsid2312332 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4484449 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4484449 {\*\bkmkstart _Toc442012129}\hich\af31502\dbch\af31501\loch\f31502 Handling Spaces}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid14513928 {\*\bkmkend _Toc442012129} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4484449 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4484449 If your argument needs to escape quotes i.e. to pass arguments with spaces to the target process then you can use \\". +\par e.g. +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4484449 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4484449\charrsid8847473 -targetargs:"\\"c:\\program files\\" arg2 arg3" + +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473 Or +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8847473 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid8847473\charrsid8847473 \'93-targetargs:\\"c:\\program files\\ +" arg2 arg3" +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4484449 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473\charrsid4484449 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 {\*\bkmkstart _Toc442012130}\hich\af31502\dbch\af31501\loch\f31502 Understanding Filters +{\*\bkmkend _Toc442012130} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2827362 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 Filters are core to understanding how OpenCover works and how it}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 is determined}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 + which assemblies are to be instrumented to provide coverage results. +\par Filters can be inclusive and exclusive represented by + and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 \endash prefix }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 respectively, }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 where e}{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid2827362 xclusive}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 (-) filters take precedence}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 over inclusive}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 (+)}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid2827362 filters. +\par The next }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 part of a filter}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 +is the module-filter and usually this happens to be the same name as the assembly but without the extension and this rule will normally apply 99.999% of the time. If this filter isn\rquote +t working look in the coverage XML and compare the found entries against the filter.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 The final part of the filter is the class-filter and this also }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 includes}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12348517 the namespace part of the class as well. + +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid3290111 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3290111 {\*\bkmkstart _Toc442012131}\hich\af31502\dbch\af31501\loch\f31502 Examples{\*\bkmkend _Toc442012131} + +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3290111 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111 \line }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111\charrsid3290111 +[Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9639869 .}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111\charrsid3290111 +*]* -[Open.Test]*}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3290111 Include all classes in modules starting with Open.* but exclude all those in modules Open.Test}{\rtlch\fcs1 \af2 \ltrch\fcs0 +\f2\insrsid3290111\charrsid3290111 +\par +[Open]*}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111 -[Open]Data.*\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3290111 Include all classes in module Open but exclude all classes in the Data namespace.}{\rtlch\fcs1 \af2 \ltrch\fcs0 +\f2\insrsid3290111\charrsid3290111 +\par +[Open]* -[Open]*Attribute}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3290111 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3290111 Include all classes in module Open but exclude all classes ending with Attribute. +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid14684873 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 {\*\bkmkstart _Toc442012132}\hich\af31502\dbch\af31501\loch\f31502 Regular Expressions in Filters +{\*\bkmkend _Toc442012132} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14684873 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 It is also possible to use regular expressions instead of wildcards but to do so require that you use the \endash regex swit +ch when specifying the filters. NOTE: When using this feature it is required that all filters use regular expressions rather than wildcards. +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid9639869 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 {\*\bkmkstart _Toc442012133}\hich\af31502\dbch\af31501\loch\f31502 Examples}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid9639869 {\*\bkmkend _Toc442012133}\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873\charrsid9639869 +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14684873 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 +[}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9639869 \\.}{ +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 .}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 ]}{\rtlch\fcs1 +\af2 \ltrch\fcs0 \f2\insrsid14684873 (.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 -[}{\rtlch\fcs1 \af2 +\ltrch\fcs0 \f2\insrsid14684873 (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 \\}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 .Test}{\rtlch\fcs1 \af2 +\ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 ]}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *}{\rtlch\fcs1 \af2 \ltrch\fcs0 +\f2\insrsid14684873 )\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 Include all classes in modules starting with Open.* but exclude all those in modules Open.Test}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 +\par +[}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 ]}{ +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 ) -[(Open)](Data\\..*)\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 +Include all classes in module Open but exclude all classes in the Data namespace.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 +\par +[}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 ]}{ +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 (.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 -[}{\rtlch\fcs1 +\af2 \ltrch\fcs0 \f2\insrsid14684873 (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 Open}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 ]}{\rtlch\fcs1 \af2 +\ltrch\fcs0 \f2\insrsid14684873 (.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873\charrsid3290111 *Attribute}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14684873 )\line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873 +Include all classes in module Open but exclude all classes ending with Attribute.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9639869 \line }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14684873\charrsid3290111 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10224112 {\*\bkmkstart _Toc442012134}\hich\af31502\dbch\af31501\loch\f31502 Running against IIS +{\*\bkmkend _Toc442012134} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14565649 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10224112 Normally I\rquote d suggest running against }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10224112 HYPERLINK "http://www.microsoft.com/en-us/download/details.aspx?id=1038" }{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9200000068007400740070003a002f002f007700770077002e006d006900630072006f0073006f00660074002e0063006f006d002f0065006e002d00750073002f0064006f0077006e006c006f00610064002f006400 +65007400610069006c0073002e0061007300700078003f00690064003d0031003000330038000000795881f43b1d7f48af2c825dc485276300000000a5ab0000000000000039000065960800}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid10224112\charrsid10224112 IISEXPPRESS}}} +\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid10224112 as I think it is easier to automate. However for those}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14565649 + who really want to run against a full blown IIS then the following instructions (supplied by a }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid14565649\charrsid14565649 user) will hopefully suffice.}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\cf21\insrsid11687369\charrsid14565649 +\par \'93}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\insrsid11687369\charrsid14565649 The trick is to start OpenCover to run the}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\insrsid14565649 w3wp.exe process in debug mode}{\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\insrsid11687369\charrsid14565649 e.g. +\par }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 OpenCover.Console.exe -target:C:\\Windows\\System32\\inetsrv\\w3wp.exe -targetargs:-debug\~\line -targetdir:C:\\Inetpub\\wwwwoot\\MyWebApp +\\bin\\ -filter:+[*]* -register:user +\par }{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 There are some prerequisites tho}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid14565649\charrsid14565649 ugh:}{ +\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid14565649 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\cf21\lang3081\langfe3081\langfenp3081\insrsid14565649 \hich\af31506\dbch\af0\loch\f31506 1.\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls7\adjustright\rin0\lin720\itap0\pararsid14565649\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\lang3081\langfe3081\langfenp3081\insrsid14565649 A}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 ll applications running under the site must }{\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\lang3081\langfe3081\langfenp3081\insrsid14565649\charrsid14565649 make use of the same app pool; y}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 ou'll get error}{\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\lang3081\langfe3081\langfenp3081\insrsid14565649\charrsid14565649 s in the EventLog otherwise. +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 \hich\af31506\dbch\af0\loch\f31506 2.\tab}}{\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 inetserver needs to be stopped, before starting w3wp.exe in debug mode. You can use the following command: +\par }\pard\plain \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid14565649 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 +{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 net stop w3svc /y +\par }{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid14565649 A}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 +fter testing/code coverage completion you can close the w3wp.exe proce}{\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid14565649 s}{\rtlch\fcs1 \af4 \ltrch\fcs0 +\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 s and start the inetserver again: +\par }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 net start w3svc +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14565649 {\rtlch\fcs1 \af4 \ltrch\fcs0 \cf21\lang3081\langfe3081\langfenp3081\insrsid11687369\charrsid14565649 +This procedure was tested on a Win2008 machine with IIS7.5}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid11687369\charrsid14565649 \'94}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid11687369 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid12584760 You can also run multiple OpenCover instances against separate IIS sites by using the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\cf21\insrsid12584760 \endash }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\cf21\insrsid12584760\charrsid12584760 s}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid12584760 option when running IIS to choose the siteid e.g.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf21\insrsid12584760\charrsid12584760 +\par }\pard \ltrpar\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid12584760 {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 +OpenCover.Console.exe -target:C:\\Windows\\System32\\inetsrv\\w3wp.exe }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 \line \tab }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 -targetargs:"-debug -s 1" }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 \line \tab }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 -targetdir:%WebSite_Path% }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 \line \tab }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 -filter:+[*]* }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 \line \tab }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 -register:user }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 \line \tab }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 -output:%CoverageResult_Path%}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12584760 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12584760 Then you can use ReportGenerator to merge the coverage results. }{ +\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\cf22\chshdng0\chcfpat0\chcbpat8\insrsid12584760\charrsid12584760 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 {\*\bkmkstart _Toc442012135}\hich\af31502\dbch\af31501\loch\f31502 Running against an application +{\*\bkmkend _Toc442012135} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid7237901 This most common usage }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 of any code coverage utility such as OpenCover }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7237901 is in a testing environment}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid12068581 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid7237901 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13513498 {\*\bkmkstart _Toc442012136}\hich\af31502\dbch\af31501\loch\f31502 Sample{\*\bkmkend _Toc442012136} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13513498 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid13513498\charrsid7237901 OpenCover.Console.exe -register:user -target:..\\..\\..\\tools\\NUnit-2.5.10.11092\\bin\\net-2.0\\nunit-console-x86.exe -targetargs:"OpenCover.Test +.dll /noshadow" -filter:"+[Open*]* -[OpenCover.T*]*" -output:opencovertests.xml +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 {\*\bkmkstart _Toc442012137}\hich\af31502\dbch\af31501\loch\f31502 Running against a Silverlight application +{\*\bkmkend _Toc442012137} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid16469695 To run against a Silverlight application it is necessary to ensure the site hosting the application is runni +ng beforehand. To profile a Silverlight application it is necessary to launch a browser against the site and as the PDB files are not packaged in the XAP files it is necessary to give the console a hint where to look for the PDB files}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid1510934 (using the }{\rtlch\fcs1 \af2 \ltrch\fcs0 \i\insrsid1510934\charrsid1510934 \endash targetdir}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1510934 option)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16469695 . +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid12068581 {\*\bkmkstart _Toc442012138}\hich\af31502\dbch\af31501\loch\f31502 Sample{\*\bkmkend _Toc442012138} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16469695 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 OpenCover.Console.exe -register:user }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581\charrsid12068581 "-target:}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\insrsid16469695\charrsid12068581 C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe" }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581\charrsid12068581 "}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\insrsid16469695\charrsid12068581 -targetar}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581 gs:}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 http://localhost:4128/SampleSilverlightTestPage.aspx}{ +\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581 }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581\charrsid12068581 "}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581 -t}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\insrsid8728997 argetdir:..}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid12068581\charrsid12068581 \\SampleSilverlight\\SampleSilverlight\\Bin\\Debug"}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 {\*\bkmkstart _Toc442012139}\hich\af31502\dbch\af31501\loch\f31502 Running against a Service application +{\*\bkmkend _Toc442012139} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid7289096 It is preferable to run the service in a console mode if it has one rather than as a service however if you do decide to use it against a service then you will nee +d to make sure you use an account that can access the windows synchronisation objects in the Global namespace (rather than Local namespace). \'93Local System\'94 seems to work quite well and so do user accounts w}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid8479050 ith the appropriate permissions;}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7289096 \'93Local Service\'94 is}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050 usually}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7289096 + problematic and is not recommended. The console host will also need to be run from an account that can access the Global namespace as such an Administrator account or an Administrative prompt is recommended}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16469695 +.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid12068581 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16469695 {\*\bkmkstart _Toc442012140}\hich\af31502\dbch\af31501\loch\f31502 Sample{\*\bkmkend _Toc442012140} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16469695 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 OpenCover.Console.exe -target:}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16349201 "}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 +OpenCover Sample Service" -service }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid8479050 \endash }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695\charrsid12068581 register}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid16469695 + +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8479050 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050\charrsid8479050 NOTE}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050 +: Rather than use the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8479050\charrsid8479050 \endash register}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050 switch, it is usually simpler to use the }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid8479050\charrsid8479050 regsvr32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050 utility to pre-register the two profiler assemblies (32 and 64-bit) beforehand.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8479050\charrsid12068581 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid738226 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4327818 {\*\bkmkstart _Toc442012141}\hich\af31502\dbch\af31501\loch\f31502 Using +\hich\af31502\dbch\af31501\loch\f31502 the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid8479050\charrsid8479050 -}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid4327818\charrsid8479050 \hich\af31502\dbch\af31501\loch\f31502 excludebyattribute}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid4327818 \hich\af31502\dbch\af31501\loch\f31502 option}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid97460 {\*\bkmkend _Toc442012141} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid4327818 Normally you would include/exclude modules and classes by using the inclusion/exclusion filters, however there may be situations where you can\rquote t get coverage via testing and you wish to ignore the uncovered method. + +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 First create a \'93public\'94}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 + attribute that you can apply to class/method/property which you use to mark up something to ignore. You can have more than one and you can add other data to provide a reason why you are excluding it. +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1775295 e.g. +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid738226 {\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 [}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 +AttributeUsage}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 (}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 AttributeTargets}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 +\f40\fs16\insrsid738226\charrsid738226 .Class|}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 AttributeTargets}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 .Method|}{\rtlch\fcs1 \af40\afs16 +\ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 AttributeTargets}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226 .Property)] +\par }{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \b\f40\fs16\cf2\insrsid738226\charrsid1775295 public}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 }{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf2\insrsid738226\charrsid738226 class} +{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 }{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 ExcludeFromCoverageAttribute}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 +\f40\fs16\insrsid738226\charrsid738226 : }{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\cf23\insrsid738226\charrsid738226 Attribute}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\insrsid738226\charrsid738226 \{\} +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid738226 {\rtlch\fcs1 \af40\afs19 \ltrch\fcs0 \f40\fs19\insrsid738226 +\par +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 Then you apply this attribute to the class/method/property that you wish to exclude. + +\par Then you add this attribute to the }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid1510934\charrsid1510934 -}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid738226\charrsid1510934 excludebyattribute}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 + option using namespaces and wildcards where necessary. +\par e.g.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9049101 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid738226 {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid738226\charrsid738226 +-excludebyattribute:*.ExcludeFromCoverage* +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4327818 NOTE: Use with care as you could exclude a method which you should be testing}{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 ;}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4327818 also it can become too tempting to ignore a method and not test due to it being difficult and use this option to \lquote skip\rquote it. +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid7372180 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 {\*\bkmkstart _Toc442012142}\hich\af31502\dbch\af31501\loch\f31502 Using the }{\rtlch\fcs1 \af0 \ltrch\fcs0 +\i\insrsid8479050\charrsid8479050 -}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid738226\charrsid8479050 \hich\af31502\dbch\af31501\loch\f31502 excludebyfile}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 \hich\af31502\dbch\af31501\loch\f31502 option}{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4327818 {\*\bkmkend _Toc442012142} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid738226 This is a useful option to use to ignore a}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9049101 uto}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7372180 -}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9049101 generated files}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid738226 . This works on file and pathnames. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid738226 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 e.g.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9049101 + the following would ignore all code in files ending in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\insrsid9049101\charrsid9049101 generated.cs}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 +\par }\pard \ltrpar\ql \fi720\li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid738226 {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid738226 -excludebyfile}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 +\f2\fs16\insrsid738226\charrsid738226 :}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid738226 *\\}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid2177067 *.generated.cs}{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid738226\charrsid738226 + +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid738226 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid738226 +NOTE: Use with care as you could exclude a method which you should be testing; also it can become too tempting to ignore a method and not test due to it being difficult and use this option to \lquote skip\rquote it. +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid5114927 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 {\*\bkmkstart _Toc442012143}\hich\af31502\dbch\af31501\loch\f31502 Shimming support}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid5114927\charrsid5114927 {\*\bkmkend _Toc442012143} +\par \ltrrow}\trowd \irow0\irowband0\lastrow \ltrrow\ts28\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 +\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid5114927\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 +\clbrdrr\brdrs\brdrw10 \clcbpat24\cltxlrtb\clftsWidth3\clwWidth9242\clcbpatraw24 \cellx9134\pard\plain \ltrpar\qj \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid5114927\yts28 \rtlch\fcs1 \af0\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5114927 In comput +er programming, a shim is a small library that transparently intercepts API calls and changes the arguments passed, handles the operation itself, or redirects the operation elsewhere. Shims typically come about when the behavior of an API changes, thereby + +causing compatibility issues for older applications which still rely on the older functionality. In such cases, the older API can still be supported by a thin compatibility layer on top of the newer code. Web polyfills are a related concept. Shims can als +o be used for running programs on different software platforms than they were developed for. +\par - }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5114927 HYPE +RLINK "http://en.wikipedia.org/wiki/Shim_%28computing%29" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c00000068007400740070003a002f002f0065006e002e00770069006b006900700065006400690061002e006f00720067002f00770069006b0069002f005300680069006d005f0025003200380063006f006d007000 +7500740069006e0067002500320039000000795881f43b1d7f48af2c825dc485276300000000a5ab00000465a901000000}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid5114927\charrsid5114927 wikipedia}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5114927 \cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5114927 +\trowd \irow0\irowband0\lastrow \ltrrow\ts28\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 +\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid5114927\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 +\clbrdrr\brdrs\brdrw10 \clcbpat24\cltxlrtb\clftsWidth3\clwWidth9242\clcbpatraw24 \cellx9134\row }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5114927 {\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid5114927 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 Depending on the provider of the Shimming utility will determine on how the OpenCover will be used alongside it}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5114927 :}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid2243939\charrsid2243939 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 {\*\bkmkstart _Toc442012144}\hich\af31502\dbch\af31501\loch\f31502 Microsoft Moles support +{\*\bkmkend _Toc442012144} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 To use Moles with OpenCover requires that you first inform Moles that you are using OpenCover}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5921453 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\insrsid5921453 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin720\itap0\pararsid5921453\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid5921453 Before you run moles you need to set an environment variable +\par }\pard \ltrpar\s25\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5921453\contextualspace {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid5921453\charrsid5921453 +set CLRMONITOR_EXTERNAL_PROFILERS=\{1542C21D-80C3-45E6-A56C-A9C1E4BEB7B8\} +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f3\fs22\insrsid5921453 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin720\itap0\pararsid5921453\contextualspace {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5921453 Then use OpenCover to run the moles runner +\par }\pard \ltrpar\s25\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\pararsid5921453\contextualspace {\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid5921453\charrsid5921453 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 {\*\bkmkstart _Toc442012145}\hich\af31502\dbch\af31501\loch\f31502 Microsoft Fakes support +{\*\bkmkend _Toc442012145} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 OpenCover has support for }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 HYPERLINK "https://msdn.microsoft.com/en-us/library/hh549175.aspx" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b86000000680074007400700073003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f0065006e002d00750073002f006c006900620072006100720079002f00 +680068003500340039003100370035002e0061007300700078000000795881f43b1d7f48af2c825dc485276300000000a5ab00003000000000eb08}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid2243939\charrsid2243939 Microsoft Fakes}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2243939 just use OpenCover to execute vstest.cons +ole.exe and it will detect if the Microsoft Fakes profiler is going to be activated and it will do the rest. +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid5921453 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5921453 {\*\bkmkstart _Toc442012146}\hich\af31502\dbch\af31501\loch\f31502 TypeMock support +{\*\bkmkend _Toc442012146} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5921453 The }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 developers}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid5921453 at TypeMock add}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 ed}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid5921453 OpenCover support several years ago; please review their documentation to get both TypeMock and OpenCover to work correctly with the versions you have installed. +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid8091909 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 {\*\bkmkstart _Toc442012147}\hich\af31502\dbch\af31501\loch\f31502 JustMock support +{\*\bkmkend _Toc442012147} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2243939 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 The developers at JustMock have also added support for OpenCover; please review their }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 + HYPERLINK "http://www.telerik.com/help/justmock/integration-opencover.html" }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9800000068007400740070003a002f002f007700770077002e00740065006c006500720069006b002e0063006f006d002f00680065006c0070002f006a007500730074006d006f0063006b002f0069006e0074006500 +670072006100740069006f006e002d006f00700065006e0063006f007600650072002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0000002f00000700}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid8091909\charrsid8091909 documentation}}} +\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8091909 to get both JustMock and OpenCover to work correctly with the versions you have installed.}{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid8091909\charrsid2243939 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid1926955 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 {\*\bkmkstart _Toc442012148}\hich\af31502\dbch\af31501\loch\f31502 Build system integration}{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid4327818 {\*\bkmkend _Toc442012148} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1926955 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 It is not unexpected that OpenCover will be used in a build environment and that the build will be running under a system account under these scenarios it is recommended that you pre-register the prof +iler DLLs using the regsvr32 utility where applicable for your environment. +\par }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid1926955\charrsid1903893 regsvr32 x86\\OpenCover.Profiler.dll\line regsvr32 x64\\OpenCover.Profiler.dll +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 To assist your build environment when you install OpenCover}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473 using the MSI}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 it will store in the registry a lo +cation of the installation folder. The location in the registry depends on whether it is a single-user or}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 an}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 all-user installation and}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid1903893 also}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 if you}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 are on a 32/64 bit environment. +\par See the following examples based on default settings:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1926955 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 {\*\bkmkstart _Toc442012149}\hich\af31502\dbch\af31501\loch\f31502 all-users +\hich\af31502\dbch\af31501\loch\f31502 (32-bit){\*\bkmkend _Toc442012149} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 Registry Entry: }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 HKLM\\Software\\OpenCover\\Location}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 \line Install Location: }{\rtlch\fcs1 \af2 +\ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 %PROGRAMFILES%\\OpenCover}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 {\*\bkmkstart _Toc442012150}\hich\af31502\dbch\af31501\loch\f31502 all-users (64-bit) +{\*\bkmkend _Toc442012150} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 Registry Entry: }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 HKLM\\Software\\Wow6432Node\\OpenCover\\Location}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 \line Install Location: }{ +\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 %PROGRAMFILES(X86)%\\OpenCover}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 {\*\bkmkstart _Toc442012151}\hich\af31502\dbch\af31501\loch\f31502 single-user{\*\bkmkend _Toc442012151} + +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1903893 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 Registry Entry: }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 HKCU\\Software\\OpenCover\\Location}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 \line Install Location: }{\rtlch\fcs1 \af2 +\ltrch\fcs0 \f2\insrsid1903893\charrsid1903893 %LOCALAPPDATA%\\Apps\\OpenCover}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid1903893 +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid7372180 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 {\*\bkmkstart _Toc442012152}\hich\af31502\dbch\af31501\loch\f31502 Reporting{\*\bkmkend _Toc442012152} + +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7160127 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 It is recommended that ReportGenerator (also available on Nuget) is used to view the coverage results however if you want to make your own reporting then a sample XSLT has been made available by }{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid7160127\charrsid7160127 Pavan Tiwari}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 (}{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 HYPERLINK "}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127\charrsid7160127 +https://github.com/pawan52tiwari}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 " }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16071677 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5a000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0070006100770061006e00350032007400690077006100720069000000795881f43b1d7f48af2c825dc4852763 +00000000a5ab0000006f000000005b5a088700ff00}}}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs19\ul\cf2\insrsid7160127\charrsid2981254 https://github.com/pawan52tiwari}}}\sectd \ltrsect +\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 ). It is simple to use with the supplied powershell script. +\par }{\rtlch\fcs1 \af2\afs16 \ltrch\fcs0 \f2\fs16\insrsid7160127\charrsid7160127 powershell -noexit -file ..\\..\\transform\\transform.ps1 -xsl ..\\..\\transform\\simple_report.xslt -xml opencovertests.xml -output simple_output.html +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7160127 Feel free to extend it to your own requirements. +\par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0\pararsid7372180 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0 +\b\fs26\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14513928 {\*\bkmkstart _Toc442012153}\hich\af31502\dbch\af31501\loch\f31502 FAQ{\*\bkmkend _Toc442012153} +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid14513928 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7372180 {\*\bkmkstart _Toc442012154}\hich\af31502\dbch\af31501\loch\f31502 Why do I have no results?}{\rtlch\fcs1 +\af0 \ltrch\fcs0 \insrsid1903893 {\*\bkmkend _Toc442012154} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8847473 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473 There are two common reasons why this may happen.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473\charrsid8847473 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7372180 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8847473 1) Instrumentation skipped due to filters. +\par The usual reason for no results}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7372180 because OpenCover cannot locate the PDBs for assemblies that match the filters to be profiled i.e. gather c +overage results from. When each assembly is loaded the location and reason the assembly wasn\rquote t profiled is provided in the coverage results file e.g. +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8852142 {\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 \f2\fs14\insrsid8852142 }{\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 +\f2\fs14\insrsid8852142\charrsid8852142 \line }{\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 \f2\fs14\insrsid8852142\charrsid8852142 C:\\Personal\\opencover.git +\\working\\main\\bin\\Debug\\OpenCover.Test.dll\line }{\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 \f2\fs14\insrsid8852142\charrsid8852142 OpenCover.Test\line \line }{\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 \f2\fs14\insrsid8852142\charrsid8852142 }{\rtlch\fcs1 \af2\afs14 \ltrch\fcs0 \f2\fs14\insrsid7372180 +\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 The two most common reasons}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8329235 provided}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 are }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid8852142\charrsid2827362 Filter} +{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid8852142\charrsid2827362 MissingPdb}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 . }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 +\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid8852142\charrsid2827362 Filter}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 is obviously connected to the }{\rtlch\fcs1 \af2 \ltrch\fcs0 \i\insrsid8852142\charrsid1510934 \endash filter:}{\rtlch\fcs1 \af0 +\ltrch\fcs0 \insrsid8852142 argument and that the ModuleName was not matched}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid2827362 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8852142 +\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid2827362\charrsid2827362 MissingPdb}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2827362 is usually because the PDB is not where the assembly is being loaded from}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3290111 +. The most common reason is }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 due to }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3290111 test tools such as NUnit or MSTest which copy the assembly under test to a new location}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid8329235 ; t}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3290111 his can be corrected by either using the /no}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 shadow or /noisolation option. An alternative is to use the }{\rtlch\fcs1 \af2 \ltrch\fcs0 +\i\insrsid8329235\charrsid1510934 \endash targetdir:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 argument to provide an alternative location for OpenCover to use.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid2827362 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 The other reasons are only applicable to classes and are related to the use of \line }{\rtlch\fcs1 \af2 \ltrch\fcs0 \i\insrsid8329235\charrsid1510934 \endash excludebyattribute}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \i\insrsid8329235\charrsid1510934 :}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 \i\insrsid8329235\charrsid1510934 \endash excludebyfile:}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8329235 options. +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 2) Failure to register the profiler assemblies. +\par The profiler assemblies are COM objects and need to be registered in the Registry before the target process is run. +\par This can }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid13596290 usually }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 be solved in }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid13596290 one of }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 two ways}{\rtlch\fcs1 +\af37 \ltrch\fcs0 \insrsid13596290 :}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid8847473 \hich\af31506\dbch\af0\loch\f31506 a)\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0\pararsid8847473\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid8847473 Use the }{\rtlch\fcs1 \af37 \ltrch\fcs0 \i\insrsid8847473\charrsid1510934 \endash register[:user] }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 switch +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid8847473 \hich\af31506\dbch\af0\loch\f31506 b)\tab}}\pard \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0\pararsid5921453\contextualspace {\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid8847473 Pre-register the assemblies using the regsvr32 utility}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid5921453\charrsid5921453 +\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\sl276\slmult1\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid14513928 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0 +\b\fs22\cf18\lang3081\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14513928 {\*\bkmkstart _Toc442012155}\hich\af31502\dbch\af31501\loch\f31502 +All my tests are failing and I am getting MissingMethodException{\*\bkmkend _Toc442012155} +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14513928 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 { +\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14513928 This has been seen on a few systems}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid6453762 where the following command has been executed to improve performance (or something similar)}{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid14513928 +\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6453762\charrsid6453762 ngen install /Profile \'93mscorlib\'94}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6453762 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid6453762 The}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid3490457 re}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid6453762 are two ways to fix or handle this issue +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid6453762 \hich\af31506\dbch\af0\loch\f31506 1)\tab}}\pard\plain \ltrpar\s25\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0\pararsid6453762\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af37 \ltrch\fcs0 +\insrsid6453762 Undo the previous command - }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6453762\charrsid6453762 ngen uninstall /Profile \'93mscorlib\'94}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6453762 .}{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid6453762 + +\par {\listtext\pard\plain\ltrpar \s25 \rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f31506\fs22\insrsid6453762 \hich\af31506\dbch\af0\loch\f31506 2)\tab}Use the }{\rtlch\fcs1 \af2 \ltrch\fcs0 \i\insrsid6453762\charrsid1510934 \endash oldstyle}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \insrsid6453762 switch, note however that this is not Silverlight friendly. }{\rtlch\fcs1 \af37 \ltrch\fcs0 \insrsid6453762\charrsid6453762 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f +7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87 +615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad +79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b +5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab +999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9 +699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586 +8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6 +0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f +9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be +15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979 +3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d +32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a +f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86 +e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90 +fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2 +ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae +a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1 +399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5 +4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84 +0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b +c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7 +689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20 +5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0 +aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d +316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840 +545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a +c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100 +0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7 +8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89 +d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500 +1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f +bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6 +a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a +0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021 +0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008 +00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdpriority59 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e30000000000000000000000e0000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdffffff04000000feffffff05000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e5000000000000000000000000d03b +4506d45bd1010300000080020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff020000000000000000000000000000000000000000000000d03b4506d45bd101 +d03b4506d45bd101000000000000000000000000dc00c600d3004b00c000350050003100c600d400d200d600d1004400c2005900cd00d3004700c300490041003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000d03b4506d45b +d101d03b4506d45bd1010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000 +00000000000000000000000000000000d800000000000000010000000200000003000000feffffff0500000006000000070000000800000009000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c623a536f75726365732053656c65637465645374796c653d225c4150412e58534c22205374796c654e616d653d224150412220786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f7267 +2f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879223e3c2f623a536f75726365733e00000000 +0000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b38314341 +364346322d444246332d344339422d423643342d3338393842373331413332307d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c +64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000400000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f +72654974656d3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/readme.txt b/tests/CodeCoverage/OpenCover.4.6.519/readme.txt new file mode 100644 index 000000000..7e5988f73 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/readme.txt @@ -0,0 +1,21 @@ +Welcome to OpenCover. + +OpenCover is an open source (MIT licence) code coverage utility for all .NET +Frameworks (2 and above, including Silverlight). It can handle all .NET +languages as long as the compiled assemblies use the .NET Runtime. + +It is most commonly used to gather coverage data of code that is being +exercised by unit testing i.e. nunit, mstest etc. + +We recommend that you view the documents that have also been installed +alongside the utility to get started or you can look at the documentation +provided on the wiki https://github.com/OpenCover/opencover/wiki/Usage. + +Currently OpenCover has no visualization of its results and we recommend that +your use ReportGenerator (2.1.8 and above) to view the results against your code. + +A sample project showing a possible way to use OpenCover with ReportGenerator +has also been provided for your convenience. + +If you have any issues or feature requests with OpenCover please raise them +with the project owners on https://github.com/opencover/opencover. diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/Autofac.Configuration.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/Autofac.Configuration.dll new file mode 100644 index 0000000000000000000000000000000000000000..230786aa2498e16803f418a8d2c8a8a3bf349312 GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/CrashReporter.NET.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/CrashReporter.NET.dll new file mode 100644 index 0000000000000000000000000000000000000000..f2d05ec7ac96b4ad498e8edd3214379a08bb61ec GIT binary patch literal 109056 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 OTJMg-`82$=T)n$Y}m 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 whUsj5>c4$9R81c8Q-3^1DHgqevF<7iN% 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 dcQ~f^cj_Ex&Hq%`#-4${vTJ~v8ez6 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/Mono.Cecil.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/Mono.Cecil.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf3acf1795f96526cf4c86b1cb18d1cacfb9dd79 GIT binary patch literal 280576 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 N(3l^$;op`5{~x`C!AAf9 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Console.exe b/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Console.exe new file mode 100644 index 0000000000000000000000000000000000000000..b1c416d5314029b540c5720c85122dd8fec09f5a GIT binary patch literal 80384 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 cfJf}V$Db + + +

+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Extensions.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..cb691377e090bc944deb1dfcd219763c23985093 GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Framework.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/OpenCover.Framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..1accffc18dd5a1b62ef223bcffabc9cb156b3d64 GIT binary patch literal 151040 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 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.config b/tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.config new file mode 100644 index 000000000..d6c61f707 --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.config @@ -0,0 +1,39 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.dll b/tests/CodeCoverage/OpenCover.4.6.519/tools/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..47cd9ad41bd21c765693ef396831e01a13f80f8f GIT binary patch literal 301056 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 literal 0 HcmV?d00001 diff --git a/tests/CodeCoverage/OpenCover.4.6.519/transform/simple_report.xslt b/tests/CodeCoverage/OpenCover.4.6.519/transform/simple_report.xslt new file mode 100644 index 000000000..e8367515a --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/transform/simple_report.xslt @@ -0,0 +1,332 @@ + + + + + + + + + +

Code Coverage Report

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Generated on: + + +
+ Parser: + + Pawan Tiwari's Parser +
+ Assemblies: + + +
+ Files: + + +
+ Coverage: + + % +
+ Covered lines: + + +
+ UnCovered lines: + + +
+ Coverable lines: + + +
+ Total lines: + + Yet To be discovered + +
+

+ Assemblies +

+

+ Collapse all classes | Expand all classes +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + Details +
+ + + + + + + + + + + + + + + + + + + + + +
+ Classes: + + +
+ Covered lines: + + +
+ Coverable lines: + + +
+ Coverage: + + + + % + + + 0 + + +
+
+
+ + % + + + + + + + + +
+   + +   +
+
+

+ Class Name: +

+
+ % + + + + + + + +
+   + +   +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Class: + + +
+ Assembly: + + +
+ File(s): + + + + + + + +
+ Coverage: + + + % +
+ Covered lines: + + +
+ Coverable lines: + + +
+ Total lines: + + 51 +
+
+ + + + + + + + + + + + + + + + + +
+ Method + + Cyclomatic Complexity + + Sequence Coverage + + Branch Coverage + + Static Method +
+ + + + + + + + + + +
+
+ + + diff --git a/tests/CodeCoverage/OpenCover.4.6.519/transform/transform.ps1 b/tests/CodeCoverage/OpenCover.4.6.519/transform/transform.ps1 new file mode 100644 index 000000000..72008aafa --- /dev/null +++ b/tests/CodeCoverage/OpenCover.4.6.519/transform/transform.ps1 @@ -0,0 +1,17 @@ +[CmdletBinding()] +Param( + [Parameter(Mandatory=$True,Position=1)] + [string]$xsl, + + [Parameter(Mandatory=$True)] + [string]$xml, + + [Parameter(Mandatory=$True)] + [string]$output +) + +$xslt = New-Object System.Xml.Xsl.XslCompiledTransform; +$xslt.Load($xsl); +$xslt.Transform($xml, $output); + +Write-Host "The file has been transformed." diff --git a/tests/CodeCoverage/packages.config b/tests/CodeCoverage/packages.config new file mode 100644 index 000000000..973b7f81b --- /dev/null +++ b/tests/CodeCoverage/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/PointFTests.cs b/tests/SixLabors.Primitives.Tests/PointFTests.cs new file mode 100644 index 000000000..b6dd64511 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/PointFTests.cs @@ -0,0 +1,192 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests.Numerics +{ + using System; + using System.Globalization; + using System.Numerics; + using System.Reflection; + using Xunit; + + public class PointFTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(PointF.Empty, new PointF()); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(float.MinValue, float.MaxValue)] + [InlineData(0.0, 0.0)] + public void NonDefaultConstructorTest(float x, float y) + { + var p1 = new PointF(x, y); + + Assert.Equal(x, p1.X); + Assert.Equal(y, p1.Y); + } + + [Fact] + public void IsEmptyDefaultsTest() + { + Assert.True(PointF.Empty.IsEmpty); + Assert.True(new PointF().IsEmpty); + Assert.True(new PointF(0, 0).IsEmpty); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + public void IsEmptyRandomTest(float x, float y) + { + Assert.False(new PointF(x, y).IsEmpty); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void CoordinatesTest(float x, float y) + { + var p = new PointF(x, y); + Assert.Equal(x, p.X); + Assert.Equal(y, p.Y); + + p.X = 10; + Assert.Equal(10, p.X); + + p.Y = -10.123f; + Assert.Equal(-10.123, p.Y, 3); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue, int.MaxValue, int.MinValue)] + [InlineData(float.MinValue, float.MaxValue, int.MinValue, int.MaxValue)] + [InlineData(0, 0, 0, 0)] + public void ArithmeticTestWithSize(float x, float y, int x1, int y1) + { + var p = new PointF(x, y); + var s = new Size(x1, y1); + + var addExpected = new PointF(x + x1, y + y1); + var subExpected = new PointF(x - x1, y - y1); + Assert.Equal(addExpected, p + s); + Assert.Equal(subExpected, p - s); + Assert.Equal(addExpected, PointF.Add(p, s)); + Assert.Equal(subExpected, PointF.Subtract(p, s)); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MaxValue)] + [InlineData(0, 0)] + public void ArithmeticTestWithSizeF(float x, float y) + { + var p = new PointF(x, y); + var s = new SizeF(y, x); + + var addExpected = new PointF(x + y, y + x); + var subExpected = new PointF(x - y, y - x); + Assert.Equal(addExpected, p + s); + Assert.Equal(subExpected, p - s); + Assert.Equal(addExpected, PointF.Add(p, s)); + Assert.Equal(subExpected, PointF.Subtract(p, s)); + } + + [Fact] + public void RotateTest() + { + var p = new PointF(13, 17); + Matrix matrix = Matrix.CreateRotationDegrees(45, PointF.Empty); + + var pout = PointF.Rotate(p, matrix); + + Assert.Equal(new PointF(-2.82842732F, 21.2132034F), pout); + } + + [Fact] + public void SkewTest() + { + var p = new PointF(13, 17); + Matrix matrix = Matrix.CreateSkewDegrees(45, 45, PointF.Empty); + + var pout = PointF.Skew(p, matrix); + Assert.Equal(new PointF(30, 30), pout); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MaxValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void EqualityTest(float x, float y) + { + var pLeft = new PointF(x, y); + var pRight = new PointF(y, x); + + if (x == y) + { + Assert.True(pLeft == pRight); + Assert.False(pLeft != pRight); + Assert.True(pLeft.Equals(pRight)); + Assert.True(pLeft.Equals((object)pRight)); + Assert.Equal(pLeft.GetHashCode(), pRight.GetHashCode()); + return; + } + + Assert.True(pLeft != pRight); + Assert.False(pLeft == pRight); + Assert.False(pLeft.Equals(pRight)); + Assert.False(pLeft.Equals((object)pRight)); + } + + [Fact] + public static void EqualityTest_NotPointF() + { + var point = new PointF(0, 0); + Assert.False(point.Equals(null)); + Assert.False(point.Equals(0)); + + // If PointF implements IEquatable (e.g. in .NET Core), then structs that are implicitly + // convertible to var can potentially be equal. + // See https://github.com/dotnet/corefx/issues/5255. + bool expectsImplicitCastToPointF = typeof(IEquatable).IsAssignableFrom(point.GetType()); + Assert.Equal(expectsImplicitCastToPointF, point.Equals(new Point(0, 0))); + + Assert.False(point.Equals((object)new Point(0, 0))); // No implicit cast + } + + [Fact] + public static void GetHashCodeTest() + { + var point = new PointF(10, 10); + Assert.Equal(point.GetHashCode(), new PointF(10, 10).GetHashCode()); + Assert.NotEqual(point.GetHashCode(), new PointF(20, 10).GetHashCode()); + Assert.NotEqual(point.GetHashCode(), new PointF(10, 20).GetHashCode()); + } + + [Fact] + public void ToStringTest() + { + var p = new PointF(5.1F, -5.123F); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "PointF [ X={0}, Y={1} ]", p.X, p.Y), p.ToString()); + } + + [Fact] + public void ToStringEmptyTest() + { + var p = new PointF(0, 0); + Assert.Equal("PointF [ Empty ]", p.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/PointTests.cs b/tests/SixLabors.Primitives.Tests/PointTests.cs new file mode 100644 index 000000000..150e21987 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/PointTests.cs @@ -0,0 +1,252 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using System.Globalization; + using System.Numerics; + + using Xunit; + + public class PointTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(Point.Empty, new Point()); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void NonDefaultConstructorTest(int x, int y) + { + var p1 = new Point(x, y); + var p2 = new Point(new Size(x, y)); + + Assert.Equal(p1, p2); + } + + [Theory] + [InlineData(int.MaxValue)] + [InlineData(int.MinValue)] + [InlineData(0)] + public void SingleIntConstructorTest(int x) + { + var p1 = new Point(x); + var p2 = new Point(unchecked((short)(x & 0xFFFF)), unchecked((short)((x >> 16) & 0xFFFF))); + + Assert.Equal(p1, p2); + } + + [Fact] + public void IsEmptyDefaultsTest() + { + Assert.True(Point.Empty.IsEmpty); + Assert.True(new Point().IsEmpty); + Assert.True(new Point(0, 0).IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + public void IsEmptyRandomTest(int x, int y) + { + Assert.False(new Point(x, y).IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void CoordinatesTest(int x, int y) + { + var p = new Point(x, y); + Assert.Equal(x, p.X); + Assert.Equal(y, p.Y); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void PointFConversionTest(int x, int y) + { + PointF p = new Point(x, y); + Assert.Equal(new PointF(x, y), p); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void SizeConversionTest(int x, int y) + { + var sz = (Size)new Point(x, y); + Assert.Equal(new Size(x, y), sz); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void ArithmeticTest(int x, int y) + { + Point addExpected, subExpected, p = new Point(x, y); + var s = new Size(y, x); + + unchecked + { + addExpected = new Point(x + y, y + x); + subExpected = new Point(x - y, y - x); + } + + Assert.Equal(addExpected, p + s); + Assert.Equal(subExpected, p - s); + Assert.Equal(addExpected, Point.Add(p, s)); + Assert.Equal(subExpected, Point.Subtract(p, s)); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void PointFMathematicalTest(float x, float y) + { + var pf = new PointF(x, y); + Point pCeiling, pTruncate, pRound; + + unchecked + { + pCeiling = new Point((int)MathF.Ceiling(x), (int)MathF.Ceiling(y)); + pTruncate = new Point((int)x, (int)y); + pRound = new Point((int)MathF.Round(x), (int)MathF.Round(y)); + } + + Assert.Equal(pCeiling, Point.Ceiling(pf)); + Assert.Equal(pRound, Point.Round(pf)); + Assert.Equal(pTruncate, (Point)pf); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void OffsetTest(int x, int y) + { + var p1 = new Point(x, y); + var p2 = new Point(y, x); + + p1.Offset(p2); + + Assert.Equal(unchecked(p2.X + p2.Y), p1.X); + Assert.Equal(p1.X, p1.Y); + + p2.Offset(x, y); + Assert.Equal(p1, p2); + } + + [Fact] + public void RotateTest() + { + var p = new Point(13, 17); + Matrix matrix = Matrix.CreateRotationDegrees(45, Point.Empty); + + var pout = Point.Rotate(p, matrix); + + Assert.Equal(new Point(-3, 21), pout); + } + + [Fact] + public void SkewTest() + { + var p = new Point(13, 17); + Matrix3x2 matrix = Matrix.CreateSkewDegrees(45, 45, Point.Empty); + + var pout = Point.Skew(p, matrix); + Assert.Equal(new Point(30, 30), pout); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void EqualityTest(int x, int y) + { + var p1 = new Point(x, y); + var p2 = new Point(x / 2 - 1, y / 2 - 1); + var p3 = new Point(x, y); + + Assert.True(p1 == p3); + Assert.True(p1 != p2); + Assert.True(p2 != p3); + + Assert.True(p1.Equals(p3)); + Assert.False(p1.Equals(p2)); + Assert.False(p2.Equals(p3)); + + Assert.True(p1.Equals((object)p3)); + Assert.False(p1.Equals((object)p2)); + Assert.False(p2.Equals((object)p3)); + + Assert.Equal(p1.GetHashCode(), p3.GetHashCode()); + } + + [Fact] + public static void EqualityTest_NotPoint() + { + var point = new Point(0, 0); + Assert.False(point.Equals(null)); + Assert.False(point.Equals(0)); + Assert.False(point.Equals(new PointF(0, 0))); + } + + [Fact] + public static void GetHashCodeTest() + { + var point = new Point(10, 10); + Assert.Equal(point.GetHashCode(), new Point(10, 10).GetHashCode()); + Assert.NotEqual(point.GetHashCode(), new Point(20, 10).GetHashCode()); + Assert.NotEqual(point.GetHashCode(), new Point(10, 20).GetHashCode()); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(1, -2, 3, -4)] + public void ConversionTest(int x, int y, int width, int height) + { + var rect = new Rectangle(x, y, width, height); + RectangleF rectF = rect; + Assert.Equal(x, rectF.X); + Assert.Equal(y, rectF.Y); + Assert.Equal(width, rectF.Width); + Assert.Equal(height, rectF.Height); + } + + [Fact] + public void ToStringTest() + { + var p = new Point(5, -5); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "Point [ X={0}, Y={1} ]", p.X, p.Y), p.ToString()); + } + + [Fact] + public void ToStringEmptyTest() + { + var p = new Point(0, 0); + Assert.Equal("Point [ Empty ]", p.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/RationalTests.cs b/tests/SixLabors.Primitives.Tests/RationalTests.cs new file mode 100644 index 000000000..e59505cf5 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/RationalTests.cs @@ -0,0 +1,115 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using Xunit; + + /// + /// Tests the struct. + /// + public class RationalTests + { + /// + /// Tests the equality operators for equality. + /// + [Fact] + public void AreEqual() + { + Rational r1 = new Rational(3, 2); + Rational r2 = new Rational(3, 2); + + Assert.Equal(r1, r2); + Assert.True(r1 == r2); + + Rational r3 = new Rational(7.55); + Rational r4 = new Rational(755, 100); + Rational r5 = new Rational(151, 20); + + Assert.Equal(r3, r4); + Assert.Equal(r4, r5); + } + + /// + /// Tests the equality operators for inequality. + /// + [Fact] + public void AreNotEqual() + { + Rational first = new Rational(0, 100); + Rational second = new Rational(100, 100); + + Assert.NotEqual(first, second); + Assert.True(first != second); + } + + /// + /// Tests whether the Rational constructor correctly assign properties. + /// + [Fact] + public void ConstructorAssignsProperties() + { + Rational rational = new Rational(7, 55); + Assert.Equal(7U, rational.Numerator); + Assert.Equal(55U, rational.Denominator); + + rational = new Rational(755, 100); + Assert.Equal(151U, rational.Numerator); + Assert.Equal(20U, rational.Denominator); + + rational = new Rational(755, 100, false); + Assert.Equal(755U, rational.Numerator); + Assert.Equal(100U, rational.Denominator); + + rational = new Rational(-7.55); + Assert.Equal(151U, rational.Numerator); + Assert.Equal(20U, rational.Denominator); + + rational = new Rational(7); + Assert.Equal(7U, rational.Numerator); + Assert.Equal(1U, rational.Denominator); + } + + [Fact] + public void Fraction() + { + Rational first = new Rational(1.0 / 1600); + Rational second = new Rational(1.0 / 1600, true); + Assert.False(first.Equals(second)); + } + + [Fact] + public void ToDouble() + { + Rational rational = new Rational(0, 0); + Assert.Equal(double.NaN, rational.ToDouble()); + + rational = new Rational(2, 0); + Assert.Equal(double.PositiveInfinity, rational.ToDouble()); + } + + [Fact] + public void ToStringRepresention() + { + Rational rational = new Rational(0, 0); + Assert.Equal("[ Indeterminate ]", rational.ToString()); + + rational = new Rational(double.PositiveInfinity); + Assert.Equal("[ PositiveInfinity ]", rational.ToString()); + + rational = new Rational(double.NegativeInfinity); + Assert.Equal("[ PositiveInfinity ]", rational.ToString()); + + rational = new Rational(0, 1); + Assert.Equal("0", rational.ToString()); + + rational = new Rational(2, 1); + Assert.Equal("2", rational.ToString()); + + rational = new Rational(1, 2); + Assert.Equal("1/2", rational.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/RectangleFTests.cs b/tests/SixLabors.Primitives.Tests/RectangleFTests.cs new file mode 100644 index 000000000..4dc7d9d35 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/RectangleFTests.cs @@ -0,0 +1,267 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using System; + using System.Globalization; + using System.Reflection; + + using Xunit; + + /// + /// Tests the struct. + /// + public class RectangleFTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(RectangleF.Empty, new RectangleF()); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void NonDefaultConstructorTest(float x, float y, float width, float height) + { + var rect1 = new RectangleF(x, y, width, height); + var p = new PointF(x, y); + var s = new SizeF(width, height); + var rect2 = new RectangleF(p, s); + + Assert.Equal(rect1, rect2); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void FromLTRBTest(float left, float top, float right, float bottom) + { + var expected = new RectangleF(left, top, right - left, bottom - top); + var actual = RectangleF.FromLTRB(left, top, right, bottom); + + Assert.Equal(expected, actual); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void DimensionsTest(float x, float y, float width, float height) + { + var rect = new RectangleF(x, y, width, height); + var p = new PointF(x, y); + var s = new SizeF(width, height); + + Assert.Equal(p, rect.Location); + Assert.Equal(s, rect.Size); + Assert.Equal(x, rect.X); + Assert.Equal(y, rect.Y); + Assert.Equal(width, rect.Width); + Assert.Equal(height, rect.Height); + Assert.Equal(x, rect.Left); + Assert.Equal(y, rect.Top); + Assert.Equal(x + width, rect.Right); + Assert.Equal(y + height, rect.Bottom); + } + + [Fact] + public void IsEmptyTest() + { + Assert.True(RectangleF.Empty.IsEmpty); + Assert.True(new RectangleF().IsEmpty); + Assert.True(new RectangleF(1, -2, -10, 10).IsEmpty); + Assert.True(new RectangleF(1, -2, 10, -10).IsEmpty); + Assert.True(new RectangleF(1, -2, 0, 0).IsEmpty); + + Assert.False(new RectangleF(0, 0, 10, 10).IsEmpty); + } + + [Theory] + [InlineData(0, 0)] + [InlineData(float.MaxValue, float.MinValue)] + public static void LocationSetTest(float x, float y) + { + var point = new PointF(x, y); + var rect = new RectangleF(10, 10, 10, 10) { Location = point }; + Assert.Equal(point, rect.Location); + Assert.Equal(point.X, rect.X); + Assert.Equal(point.Y, rect.Y); + } + + [Theory] + [InlineData(0, 0)] + [InlineData(float.MaxValue, float.MinValue)] + public static void SizeSetTest(float x, float y) + { + var size = new SizeF(x, y); + var rect = new RectangleF(10, 10, 10, 10) { Size = size }; + Assert.Equal(size, rect.Size); + Assert.Equal(size.Width, rect.Width); + Assert.Equal(size.Height, rect.Height); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void EqualityTest(float x, float y, float width, float height) + { + var rect1 = new RectangleF(x, y, width, height); + var rect2 = new RectangleF(width, height, x, y); + + Assert.True(rect1 != rect2); + Assert.False(rect1 == rect2); + Assert.False(rect1.Equals(rect2)); + Assert.False(rect1.Equals((object)rect2)); + } + + [Fact] + public static void EqualityTestNotRectangleF() + { + var rectangle = new RectangleF(0, 0, 0, 0); + Assert.False(rectangle.Equals(null)); + Assert.False(rectangle.Equals(0)); + + // If RectangleF implements IEquatable (e.g. in .NET Core), then classes that are implicitly + // convertible to RectangleF can potentially be equal. + // See https://github.com/dotnet/corefx/issues/5255. + bool expectsImplicitCastToRectangleF = typeof(IEquatable).IsAssignableFrom(rectangle.GetType()); + Assert.Equal(expectsImplicitCastToRectangleF, rectangle.Equals(new Rectangle(0, 0, 0, 0))); + + Assert.False(rectangle.Equals((object)new Rectangle(0, 0, 0, 0))); // No implicit cast + } + + [Fact] + public static void GetHashCodeTest() + { + var rect1 = new RectangleF(10, 10, 10, 10); + var rect2 = new RectangleF(10, 10, 10, 10); + Assert.Equal(rect1.GetHashCode(), rect2.GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new RectangleF(20, 10, 10, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new RectangleF(10, 20, 10, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new RectangleF(10, 10, 20, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new RectangleF(10, 10, 10, 20).GetHashCode()); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void ContainsTest(float x, float y, float width, float height) + { + var rect = new RectangleF(x, y, width, height); + float X = (x + width) / 2; + float Y = (y + height) / 2; + var p = new PointF(X, Y); + var r = new RectangleF(X, Y, width / 2, height / 2); + + Assert.False(rect.Contains(X, Y)); + Assert.False(rect.Contains(p)); + Assert.False(rect.Contains(r)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue / 2, float.MinValue / 2, float.MinValue / 2, float.MaxValue / 2)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void InflateTest(float x, float y, float width, float height) + { + var rect = new RectangleF(x, y, width, height); + var inflatedRect = new RectangleF(x - width, y - height, width + 2 * width, height + 2 * height); + + rect.Inflate(width, height); + Assert.Equal(inflatedRect, rect); + + var s = new SizeF(x, y); + inflatedRect = RectangleF.Inflate(rect, x, y); + + rect.Inflate(s); + Assert.Equal(inflatedRect, rect); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue, float.MaxValue / 2, float.MinValue / 2)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void IntersectTest(float x, float y, float width, float height) + { + var rect1 = new RectangleF(x, y, width, height); + var rect2 = new RectangleF(y, x, width, height); + var expectedRect = RectangleF.Intersect(rect1, rect2); + rect1.Intersect(rect2); + Assert.Equal(expectedRect, rect1); + Assert.False(rect1.IntersectsWith(expectedRect)); + } + + [Fact] + public static void IntersectIntersectingRectsTest() + { + var rect1 = new RectangleF(0, 0, 5, 5); + var rect2 = new RectangleF(1, 1, 3, 3); + var expected = new RectangleF(1, 1, 3, 3); + + Assert.Equal(expected, RectangleF.Intersect(rect1, rect2)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void UnionTest(float x, float y, float width, float height) + { + var a = new RectangleF(x, y, width, height); + var b = new RectangleF(width, height, x, y); + + float x1 = Math.Min(a.X, b.X); + float x2 = Math.Max(a.X + a.Width, b.X + b.Width); + float y1 = Math.Min(a.Y, b.Y); + float y2 = Math.Max(a.Y + a.Height, b.Y + b.Height); + + var expectedRectangle = new RectangleF(x1, y1, x2 - x1, y2 - y1); + + Assert.Equal(expectedRectangle, RectangleF.Union(a, b)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(float.MaxValue, float.MinValue, float.MinValue, float.MaxValue)] + [InlineData(float.MaxValue, 0, 0, float.MaxValue)] + [InlineData(0, float.MinValue, float.MaxValue, 0)] + public void OffsetTest(float x, float y, float width, float height) + { + var r1 = new RectangleF(x, y, width, height); + var expectedRect = new RectangleF(x + width, y + height, width, height); + var p = new PointF(width, height); + + r1.Offset(p); + Assert.Equal(expectedRect, r1); + + expectedRect.Offset(p); + r1.Offset(width, height); + Assert.Equal(expectedRect, r1); + } + + [Fact] + public void ToStringTest() + { + var r = new RectangleF(5, 5.1F, 1.3F, 1); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "RectangleF [ X={0}, Y={1}, Width={2}, Height={3} ]", r.X, r.Y, r.Width, r.Height), r.ToString()); + } + + [InlineData(0, 0, 0, 0)] + [InlineData(5, -5, 0.2, -1.3)] + public void ToStringTestEmpty(float x, float y, float width, float height) + { + var r = new RectangleF(x, y, width, height); + Assert.Equal("RectangleF [ Empty ]", r.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/RectangleTests.cs b/tests/SixLabors.Primitives.Tests/RectangleTests.cs new file mode 100644 index 000000000..24ac4fae1 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/RectangleTests.cs @@ -0,0 +1,308 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using System; + using System.Globalization; + + using Xunit; + + /// + /// Tests the struct. + /// + public class RectangleTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(Rectangle.Empty, new Rectangle()); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MaxValue, int.MinValue)] + [InlineData(int.MaxValue, 0, int.MinValue, 0)] + [InlineData(0, 0, 0, 0)] + [InlineData(0, int.MinValue, 0, int.MaxValue)] + public void NonDefaultConstructorTest(int x, int y, int width, int height) + { + var rect1 = new Rectangle(x, y, width, height); + var rect2 = new Rectangle(new Point(x, y), new Size(width, height)); + + Assert.Equal(rect1, rect2); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MaxValue, int.MinValue)] + [InlineData(int.MaxValue, 0, int.MinValue, 0)] + [InlineData(0, 0, 0, 0)] + [InlineData(0, int.MinValue, 0, int.MaxValue)] + public void FromLTRBTest(int left, int top, int right, int bottom) + { + var rect1 = new Rectangle(left, top, unchecked(right - left), unchecked(bottom - top)); + var rect2 = Rectangle.FromLTRB(left, top, right, bottom); + + Assert.Equal(rect1, rect2); + } + + [Fact] + public void EmptyTest() + { + Assert.True(Rectangle.Empty.IsEmpty); + Assert.True(new Rectangle(0, 0, 0, 0).IsEmpty); + Assert.True(new Rectangle().IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MaxValue, int.MinValue)] + [InlineData(int.MaxValue, 0, int.MinValue, 0)] + [InlineData(int.MinValue, int.MaxValue, int.MinValue, int.MaxValue)] + [InlineData(0, int.MinValue, 0, int.MaxValue)] + public void NonEmptyTest(int x, int y, int width, int height) + { + Assert.False(new Rectangle(x, y, width, height).IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MaxValue, int.MinValue)] + [InlineData(int.MaxValue, 0, int.MinValue, 0)] + [InlineData(0, 0, 0, 0)] + [InlineData(0, int.MinValue, 0, int.MaxValue)] + [InlineData(int.MinValue, int.MaxValue, int.MinValue, int.MaxValue)] + public void DimensionsTest(int x, int y, int width, int height) + { + var rect = new Rectangle(x, y, width, height); + Assert.Equal(new Point(x, y), rect.Location); + Assert.Equal(new Size(width, height), rect.Size); + + Assert.Equal(x, rect.X); + Assert.Equal(y, rect.Y); + Assert.Equal(width, rect.Width); + Assert.Equal(height, rect.Height); + Assert.Equal(x, rect.Left); + Assert.Equal(y, rect.Top); + Assert.Equal(unchecked(x + width), rect.Right); + Assert.Equal(unchecked(y + height), rect.Bottom); + + var p = new Point(width, height); + var s = new Size(x, y); + rect.Location = p; + rect.Size = s; + + Assert.Equal(p, rect.Location); + Assert.Equal(s, rect.Size); + + Assert.Equal(width, rect.X); + Assert.Equal(height, rect.Y); + Assert.Equal(x, rect.Width); + Assert.Equal(y, rect.Height); + Assert.Equal(width, rect.Left); + Assert.Equal(height, rect.Top); + Assert.Equal(unchecked(x + width), rect.Right); + Assert.Equal(unchecked(y + height), rect.Bottom); + } + + [Theory] + [InlineData(0, 0)] + [InlineData(int.MaxValue, int.MinValue)] + public static void LocationSetTest(int x, int y) + { + var point = new Point(x, y); + var rect = new Rectangle(10, 10, 10, 10) { Location = point }; + Assert.Equal(point, rect.Location); + Assert.Equal(point.X, rect.X); + Assert.Equal(point.Y, rect.Y); + } + + [Theory] + [InlineData(0, 0)] + [InlineData(int.MaxValue, int.MinValue)] + public static void SizeSetTest(int x, int y) + { + var size = new Size(x, y); + var rect = new Rectangle(10, 10, 10, 10) { Size = size }; + Assert.Equal(size, rect.Size); + Assert.Equal(size.Width, rect.Width); + Assert.Equal(size.Height, rect.Height); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MaxValue, int.MinValue)] + [InlineData(int.MaxValue, 0, int.MinValue, 0)] + [InlineData(0, int.MinValue, 0, int.MaxValue)] + [InlineData(int.MinValue, int.MaxValue, int.MinValue, int.MaxValue)] + public void EqualityTest(int x, int y, int width, int height) + { + var rect1 = new Rectangle(x, y, width, height); + var rect2 = new Rectangle(width / 2, height / 2, x, y); + + Assert.True(rect1 != rect2); + Assert.False(rect1 == rect2); + Assert.False(rect1.Equals(rect2)); + Assert.False(rect1.Equals((object)rect2)); + } + + [Fact] + public static void EqualityTestNotRectangle() + { + var rectangle = new Rectangle(0, 0, 0, 0); + Assert.False(rectangle.Equals(null)); + Assert.False(rectangle.Equals(0)); + Assert.False(rectangle.Equals(new RectangleF(0, 0, 0, 0))); + } + + [Fact] + public static void GetHashCodeTest() + { + var rect1 = new Rectangle(10, 10, 10, 10); + var rect2 = new Rectangle(10, 10, 10, 10); + Assert.Equal(rect1.GetHashCode(), rect2.GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new Rectangle(20, 10, 10, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new Rectangle(10, 20, 10, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new Rectangle(10, 10, 20, 10).GetHashCode()); + Assert.NotEqual(rect1.GetHashCode(), new Rectangle(10, 10, 10, 20).GetHashCode()); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue, float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MaxValue, float.MinValue, float.MaxValue)] + [InlineData(0, 0, 0, 0)] + public void RectangleFConversionTest(float x, float y, float width, float height) + { + var rect = new RectangleF(x, y, width, height); + Rectangle rCeiling, rTruncate, rRound; + + unchecked + { + rCeiling = new Rectangle((int)Math.Ceiling(x), (int)Math.Ceiling(y), + (int)Math.Ceiling(width), (int)Math.Ceiling(height)); + rTruncate = new Rectangle((int)x, (int)y, (int)width, (int)height); + rRound = new Rectangle((int)Math.Round(x), (int)Math.Round(y), + (int)Math.Round(width), (int)Math.Round(height)); + } + + Assert.Equal(rCeiling, Rectangle.Ceiling(rect)); + Assert.Equal(rTruncate, Rectangle.Truncate(rect)); + Assert.Equal(rRound, Rectangle.Round(rect)); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue, int.MinValue, int.MaxValue)] + [InlineData(0, int.MinValue, int.MaxValue, 0)] + public void ContainsTest(int x, int y, int width, int height) + { + var rect = new Rectangle(unchecked(2 * x - width), unchecked(2 * y - height), width, height); + var p = new Point(x, y); + var r = new Rectangle(x, y, width / 2, height / 2); + + Assert.False(rect.Contains(x, y)); + Assert.False(rect.Contains(p)); + Assert.False(rect.Contains(r)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(int.MaxValue, int.MinValue, int.MinValue, int.MaxValue)] + [InlineData(0, int.MinValue, int.MaxValue, 0)] + public void InflateTest(int x, int y, int width, int height) + { + Rectangle inflatedRect, rect = new Rectangle(x, y, width, height); + unchecked + { + inflatedRect = new Rectangle(x - width, y - height, width + 2 * width, height + 2 * height); + } + + Assert.Equal(inflatedRect, Rectangle.Inflate(rect, width, height)); + + rect.Inflate(width, height); + Assert.Equal(inflatedRect, rect); + + var s = new Size(x, y); + unchecked + { + inflatedRect = new Rectangle(rect.X - x, rect.Y - y, rect.Width + 2 * x, rect.Height + 2 * y); + } + + rect.Inflate(s); + Assert.Equal(inflatedRect, rect); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(int.MaxValue, int.MinValue, int.MinValue, int.MaxValue)] + [InlineData(0, int.MinValue, int.MaxValue, 0)] + public void IntersectTest(int x, int y, int width, int height) + { + var rect = new Rectangle(x, y, width, height); + var expectedRect = Rectangle.Intersect(rect, rect); + rect.Intersect(rect); + Assert.Equal(expectedRect, rect); + Assert.False(rect.IntersectsWith(expectedRect)); + } + + [Fact] + public static void IntersectIntersectingRectsTest() + { + var rect1 = new Rectangle(0, 0, 5, 5); + var rect2 = new Rectangle(1, 1, 3, 3); + var expected = new Rectangle(1, 1, 3, 3); + + Assert.Equal(expected, Rectangle.Intersect(rect1, rect2)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(int.MaxValue, int.MinValue, int.MinValue, int.MaxValue)] + [InlineData(int.MaxValue, 0, 0, int.MaxValue)] + [InlineData(0, int.MinValue, int.MaxValue, 0)] + public void UnionTest(int x, int y, int width, int height) + { + var a = new Rectangle(x, y, width, height); + var b = new Rectangle(width, height, x, y); + + int x1 = Math.Min(a.X, b.X); + int x2 = Math.Max(a.X + a.Width, b.X + b.Width); + int y1 = Math.Min(a.Y, b.Y); + int y2 = Math.Max(a.Y + a.Height, b.Y + b.Height); + + var expectedRectangle = new Rectangle(x1, y1, x2 - x1, y2 - y1); + + Assert.Equal(expectedRectangle, Rectangle.Union(a, b)); + } + + [Theory] + [InlineData(0, 0, 0, 0)] + [InlineData(int.MaxValue, int.MinValue, int.MinValue, int.MaxValue)] + [InlineData(int.MaxValue, 0, 0, int.MaxValue)] + [InlineData(0, int.MinValue, int.MaxValue, 0)] + public void OffsetTest(int x, int y, int width, int height) + { + var r1 = new Rectangle(x, y, width, height); + var expectedRect = new Rectangle(x + width, y + height, width, height); + var p = new Point(width, height); + + r1.Offset(p); + Assert.Equal(expectedRect, r1); + + expectedRect.Offset(p); + r1.Offset(width, height); + Assert.Equal(expectedRect, r1); + } + + [Fact] + public void ToStringTest() + { + var r = new Rectangle(5, -5, 0, 1); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "Rectangle [ X={0}, Y={1}, Width={2}, Height={3} ]", r.X, r.Y, r.Width, r.Height), r.ToString()); + } + + [Fact] + public void ToStringTestEmpty() + { + var r = new Rectangle(0, 0, 0, 0); + Assert.Equal("Rectangle [ Empty ]", r.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/SignedRationalTests.cs b/tests/SixLabors.Primitives.Tests/SignedRationalTests.cs new file mode 100644 index 000000000..bc7a5b810 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/SignedRationalTests.cs @@ -0,0 +1,122 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using Xunit; + + /// + /// Tests the struct. + /// + public class SignedRationalTests + { + /// + /// Tests the equality operators for equality. + /// + [Fact] + public void AreEqual() + { + SignedRational r1 = new SignedRational(3, 2); + SignedRational r2 = new SignedRational(3, 2); + + Assert.Equal(r1, r2); + Assert.True(r1 == r2); + + SignedRational r3 = new SignedRational(7.55); + SignedRational r4 = new SignedRational(755, 100); + SignedRational r5 = new SignedRational(151, 20); + + Assert.Equal(r3, r4); + Assert.Equal(r4, r5); + } + + /// + /// Tests the equality operators for inequality. + /// + [Fact] + public void AreNotEqual() + { + SignedRational first = new SignedRational(0, 100); + SignedRational second = new SignedRational(100, 100); + + Assert.NotEqual(first, second); + Assert.True(first != second); + } + + /// + /// Tests whether the Rational constructor correctly assign properties. + /// + [Fact] + public void ConstructorAssignsProperties() + { + SignedRational rational = new SignedRational(7, -55); + Assert.Equal(7, rational.Numerator); + Assert.Equal(-55, rational.Denominator); + + rational = new SignedRational(-755, 100); + Assert.Equal(-151, rational.Numerator); + Assert.Equal(20, rational.Denominator); + + rational = new SignedRational(-755, -100, false); + Assert.Equal(-755, rational.Numerator); + Assert.Equal(-100, rational.Denominator); + + rational = new SignedRational(-151, -20); + Assert.Equal(-151, rational.Numerator); + Assert.Equal(-20, rational.Denominator); + + rational = new SignedRational(-7.55); + Assert.Equal(-151, rational.Numerator); + Assert.Equal(20, rational.Denominator); + + rational = new SignedRational(7); + Assert.Equal(7, rational.Numerator); + Assert.Equal(1, rational.Denominator); + } + + [Fact] + public void Fraction() + { + SignedRational first = new SignedRational(1.0 / 1600); + SignedRational second = new SignedRational(1.0 / 1600, true); + Assert.False(first.Equals(second)); + } + + [Fact] + public void ToDouble() + { + SignedRational rational = new SignedRational(0, 0); + Assert.Equal(double.NaN, rational.ToDouble()); + + rational = new SignedRational(2, 0); + Assert.Equal(double.PositiveInfinity, rational.ToDouble()); + + rational = new SignedRational(-2, 0); + Assert.Equal(double.NegativeInfinity, rational.ToDouble()); + } + + [Fact] + public void ToStringRepresention() + { + SignedRational rational = new SignedRational(0, 0); + Assert.Equal("[ Indeterminate ]", rational.ToString()); + + rational = new SignedRational(double.PositiveInfinity); + Assert.Equal("[ PositiveInfinity ]", rational.ToString()); + + rational = new SignedRational(double.NegativeInfinity); + Assert.Equal("[ NegativeInfinity ]", rational.ToString()); + + rational = new SignedRational(0, 1); + Assert.Equal("0", rational.ToString()); + + rational = new SignedRational(2, 1); + Assert.Equal("2", rational.ToString()); + + rational = new SignedRational(1, 2); + Assert.Equal("1/2", rational.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/SixLabors.Primitives.Tests.csproj b/tests/SixLabors.Primitives.Tests/SixLabors.Primitives.Tests.csproj new file mode 100644 index 000000000..a300a0b06 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/SixLabors.Primitives.Tests.csproj @@ -0,0 +1,34 @@ + + + + 0.0.0 + netcoreapp1.1 + SixLabors.Shapes.Tests + SixLabors.Shapes.Tests + true + false + false + false + false + false + false + full + + + + + + + + + + + + + + + + + + + diff --git a/tests/SixLabors.Primitives.Tests/SizeFTests.cs b/tests/SixLabors.Primitives.Tests/SizeFTests.cs new file mode 100644 index 000000000..baa16c7e4 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/SizeFTests.cs @@ -0,0 +1,163 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using System; + using System.Globalization; + using System.Reflection; + using Xunit; + + public class SizeFTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(SizeF.Empty, new SizeF()); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void NonDefaultConstructorAndDimensionsTest(float width, float height) + { + var s1 = new SizeF(width, height); + var p1 = new PointF(width, height); + var s2 = new SizeF(s1); + + Assert.Equal(s1, s2); + Assert.Equal(s1, new SizeF(p1)); + Assert.Equal(s2, new SizeF(p1)); + + Assert.Equal(width, s1.Width); + Assert.Equal(height, s1.Height); + + s1.Width = 10; + Assert.Equal(10, s1.Width); + + s1.Height = -10.123f; + Assert.Equal(-10.123, s1.Height, 3); + } + + [Fact] + public void IsEmptyDefaultsTest() + { + Assert.True(SizeF.Empty.IsEmpty); + Assert.True(new SizeF().IsEmpty); + Assert.True(new SizeF(0, 0).IsEmpty); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + public void IsEmptyRandomTest(float width, float height) + { + Assert.False(new SizeF(width, height).IsEmpty); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void ArithmeticTest(float width, float height) + { + var s1 = new SizeF(width, height); + var s2 = new SizeF(height, width); + var addExpected = new SizeF(width + height, width + height); + var subExpected = new SizeF(width - height, height - width); + + Assert.Equal(addExpected, s1 + s2); + Assert.Equal(addExpected, SizeF.Add(s1, s2)); + + Assert.Equal(subExpected, s1 - s2); + Assert.Equal(subExpected, SizeF.Subtract(s1, s2)); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void EqualityTest(float width, float height) + { + var sLeft = new SizeF(width, height); + var sRight = new SizeF(height, width); + + if (width == height) + { + Assert.True(sLeft == sRight); + Assert.False(sLeft != sRight); + Assert.True(sLeft.Equals(sRight)); + Assert.True(sLeft.Equals((object)sRight)); + Assert.Equal(sLeft.GetHashCode(), sRight.GetHashCode()); + return; + } + + Assert.True(sLeft != sRight); + Assert.False(sLeft == sRight); + Assert.False(sLeft.Equals(sRight)); + Assert.False(sLeft.Equals((object)sRight)); + } + + [Fact] + public static void EqualityTest_NotSizeF() + { + var size = new SizeF(0, 0); + Assert.False(size.Equals(null)); + Assert.False(size.Equals(0)); + + // If SizeF implements IEquatable (e.g in .NET Core), then classes that are implicitly + // convertible to SizeF can potentially be equal. + // See https://github.com/dotnet/corefx/issues/5255. + bool expectsImplicitCastToSizeF = typeof(IEquatable).IsAssignableFrom(size.GetType()); + Assert.Equal(expectsImplicitCastToSizeF, size.Equals(new Size(0, 0))); + + Assert.False(size.Equals((object)new Size(0, 0))); // No implicit cast + } + + [Fact] + public static void GetHashCodeTest() + { + var size = new SizeF(10, 10); + Assert.Equal(size.GetHashCode(), new SizeF(10, 10).GetHashCode()); + Assert.NotEqual(size.GetHashCode(), new SizeF(20, 10).GetHashCode()); + Assert.NotEqual(size.GetHashCode(), new SizeF(10, 20).GetHashCode()); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void ConversionTest(float width, float height) + { + var s1 = new SizeF(width, height); + var p1 = (PointF)s1; + var s2 = new Size(unchecked((int)width), unchecked((int)height)); + + Assert.Equal(new PointF(width, height), p1); + Assert.Equal(p1, (PointF)s1); + Assert.Equal(s2, (Size)s1); + } + + [Fact] + public void ToStringTest() + { + var sz = new SizeF(10, 5); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "SizeF [ Width={0}, Height={1} ]", sz.Width, sz.Height), sz.ToString()); + } + + [Fact] + public void ToStringTestEmpty() + { + var sz = new SizeF(0, 0); + Assert.Equal("SizeF [ Empty ]", sz.ToString()); + } + } +} \ No newline at end of file diff --git a/tests/SixLabors.Primitives.Tests/SizeTests.cs b/tests/SixLabors.Primitives.Tests/SizeTests.cs new file mode 100644 index 000000000..3eabf6221 --- /dev/null +++ b/tests/SixLabors.Primitives.Tests/SizeTests.cs @@ -0,0 +1,195 @@ +// +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace SixLabors.Primitives.Tests +{ + using System.Globalization; + using Xunit; + + /// + /// Tests the struct. + /// + public class SizeTests + { + [Fact] + public void DefaultConstructorTest() + { + Assert.Equal(Size.Empty, new Size()); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void NonDefaultConstructorTest(int width, int height) + { + var s1 = new Size(width, height); + var s2 = new Size(new Point(width, height)); + + Assert.Equal(s1, s2); + + s1.Width = 10; + Assert.Equal(10, s1.Width); + + s1.Height = -10; + Assert.Equal(-10, s1.Height); + } + + [Fact] + public void IsEmptyDefaultsTest() + { + Assert.True(Size.Empty.IsEmpty); + Assert.True(new Size().IsEmpty); + Assert.True(new Size(0, 0).IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + public void IsEmptyRandomTest(int width, int height) + { + Assert.False(new Size(width, height).IsEmpty); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void DimensionsTest(int width, int height) + { + var p = new Size(width, height); + Assert.Equal(width, p.Width); + Assert.Equal(height, p.Height); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void PointFConversionTest(int width, int height) + { + SizeF sz = new Size(width, height); + Assert.Equal(new SizeF(width, height), sz); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void SizeConversionTest(int width, int height) + { + var sz = (Point)new Size(width, height); + Assert.Equal(new Point(width, height), sz); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void ArithmeticTest(int width, int height) + { + var sz1 = new Size(width, height); + var sz2 = new Size(height, width); + Size addExpected, subExpected; + + unchecked + { + addExpected = new Size(width + height, height + width); + subExpected = new Size(width - height, height - width); + } + + Assert.Equal(addExpected, sz1 + sz2); + Assert.Equal(subExpected, sz1 - sz2); + Assert.Equal(addExpected, Size.Add(sz1, sz2)); + Assert.Equal(subExpected, Size.Subtract(sz1, sz2)); + } + + [Theory] + [InlineData(float.MaxValue, float.MinValue)] + [InlineData(float.MinValue, float.MinValue)] + [InlineData(float.MaxValue, float.MaxValue)] + [InlineData(0, 0)] + public void PointFMathematicalTest(float width, float height) + { + var szF = new SizeF(width, height); + Size pCeiling, pTruncate, pRound; + + unchecked + { + pCeiling = new Size((int)MathF.Ceiling(width), (int)MathF.Ceiling(height)); + pTruncate = new Size((int)width, (int)height); + pRound = new Size((int)MathF.Round(width), (int)MathF.Round(height)); + } + + Assert.Equal(pCeiling, Size.Ceiling(szF)); + Assert.Equal(pRound, Size.Round(szF)); + Assert.Equal(pTruncate, (Size)szF); + } + + [Theory] + [InlineData(int.MaxValue, int.MinValue)] + [InlineData(int.MinValue, int.MinValue)] + [InlineData(int.MaxValue, int.MaxValue)] + [InlineData(0, 0)] + public void EqualityTest(int width, int height) + { + var p1 = new Size(width, height); + var p2 = new Size(unchecked(width - 1), unchecked(height - 1)); + var p3 = new Size(width, height); + + Assert.True(p1 == p3); + Assert.True(p1 != p2); + Assert.True(p2 != p3); + + Assert.True(p1.Equals(p3)); + Assert.False(p1.Equals(p2)); + Assert.False(p2.Equals(p3)); + + Assert.True(p1.Equals((object)p3)); + Assert.False(p1.Equals((object)p2)); + Assert.False(p2.Equals((object)p3)); + + Assert.Equal(p1.GetHashCode(), p3.GetHashCode()); + } + + [Fact] + public static void EqualityTest_NotSize() + { + var size = new Size(0, 0); + Assert.False(size.Equals(null)); + Assert.False(size.Equals(0)); + Assert.False(size.Equals(new SizeF(0, 0))); + } + + [Fact] + public static void GetHashCodeTest() + { + var size = new Size(10, 10); + Assert.Equal(size.GetHashCode(), new Size(10, 10).GetHashCode()); + Assert.NotEqual(size.GetHashCode(), new Size(20, 10).GetHashCode()); + Assert.NotEqual(size.GetHashCode(), new Size(10, 20).GetHashCode()); + } + + [Fact] + public void ToStringTest() + { + var sz = new Size(10, 5); + Assert.Equal(string.Format(CultureInfo.CurrentCulture, "Size [ Width={0}, Height={1} ]", sz.Width, sz.Height), sz.ToString()); + } + + [Fact] + public void ToStringTestEmpty() + { + var sz = new Size(0, 0); + Assert.Equal("Size [ Empty ]", sz.ToString()); + } + } +} \ No newline at end of file