Mark Seemann

This commit is contained in:
Jakub Fojtl
2015-04-11 20:39:48 +02:00
parent a1fb71b7d8
commit 1e24e656e7
29 changed files with 8192 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FizzBuzz", "FizzBuzz\FizzBuzz.fsproj", "{522A65F5-EFF8-487B-9A1B-F5BB64D9B087}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{522A65F5-EFF8-487B-9A1B-F5BB64D9B087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{522A65F5-EFF8-487B-9A1B-F5BB64D9B087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{522A65F5-EFF8-487B-9A1B-F5BB64D9B087}.Release|Any CPU.ActiveCfg = Release|Any CPU
{522A65F5-EFF8-487B-9A1B-F5BB64D9B087}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,51 @@
// Copyright (c) 2014 Mark Seemann.
// Permission to reproduce or modify is granted for personal, educational use.
// No warranty implied.
namespace Ploeh.Samples
open Xunit.Extensions
open FsCheck
open FsCheck.Xunit
module FizzBuzz =
let transform number =
match number % 3, number % 5 with
| 0, 0 -> "FizzBuzz"
| _, 0 -> "Buzz"
| 0, _ -> "Fizz"
| _ -> number.ToString()
module Tests =
[<Property(QuietOnSuccess = true)>]
let ``FizzBuzz.transform returns number`` (number : int) =
(number % 3 <> 0 && number % 5 <> 0) ==> lazy
let actual = FizzBuzz.transform number
let expected = number.ToString()
expected = actual
[<Property(QuietOnSuccess = true)>]
let ``FizzBuzz.transform returns Fizz`` (number : int) =
(number % 3 = 0 && number % 5 <> 0) ==> lazy
let actual = FizzBuzz.transform number
let expected = "Fizz"
expected = actual
[<Property(QuietOnSuccess = true)>]
let ``FizzBuzz.transform returns Buzz`` (number : int) =
(number % 5 = 0 && number % 3 <> 0) ==> lazy
let actual = FizzBuzz.transform number
let expected = "Buzz"
expected = actual
type DivisibleByThreeAndFive =
static member Int() =
Arb.Default.Int32()
|> Arb.mapFilter (fun x -> x * 3 * 5) (fun _ -> true)
[<Property(Arbitrary = [| typeof<DivisibleByThreeAndFive> |], QuietOnSuccess = true)>]
let ``FizzBuzz.transform returns FizzBuzz`` (number : int) =
let actual = FizzBuzz.transform number
let expected = "FizzBuzz"
expected = actual

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>522a65f5-eff8-487b-9a1b-f5bb64d9b087</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>FizzBuzz</RootNamespace>
<AssemblyName>FizzBuzz</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<TargetFSharpCoreVersion>4.3.1.0</TargetFSharpCoreVersion>
<Name>FizzBuzz</Name>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<Tailcalls>false</Tailcalls>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<WarningLevel>3</WarningLevel>
<DocumentationFile>bin\Debug\FizzBuzz.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<Tailcalls>true</Tailcalls>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<WarningLevel>3</WarningLevel>
<DocumentationFile>bin\Release\FizzBuzz.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup>
<MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion>
</PropertyGroup>
<Choose>
<When Condition="'$(VisualStudioVersion)' == '11.0'">
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</Otherwise>
</Choose>
<Import Project="$(FSharpTargetsPath)" />
<ItemGroup>
<Compile Include="FizzBuzz.fs" />
<Content Include="packages.config" />
<Content Include="app.config" />
</ItemGroup>
<ItemGroup>
<Reference Include="FsCheck">
<HintPath>..\packages\FsCheck.1.0.3\lib\net45\FsCheck.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="FsCheck.Xunit">
<HintPath>..\packages\FsCheck.Xunit.1.0.3\lib\net45\FsCheck.Xunit.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="FSharp.Core, Version=$(TargetFSharpCoreVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="Unquote">
<HintPath>..\packages\Unquote.2.2.2\lib\net40\Unquote.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="xunit">
<HintPath>..\packages\xunit.1.9.2\lib\net20\xunit.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="xunit.extensions">
<HintPath>..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FsCheck" version="1.0.3" targetFramework="net451" />
<package id="FsCheck.Xunit" version="1.0.3" targetFramework="net451" />
<package id="Unquote" version="2.2.2" targetFramework="net451" />
<package id="xunit" version="1.9.2" targetFramework="net451" />
<package id="xunit.extensions" version="1.9.2" targetFramework="net451" />
</packages>

View File

@@ -0,0 +1,8 @@
# Equivalence Classes, xUnit.net, FsCheck, Property-Based Testing
Original code can be found at [github.com/ploeh/EquivalenceClassesFsCheckFizzBuzz](https://github.com/ploeh/EquivalenceClassesFsCheckFizzBuzz).
This is essentially the same code that I write in my *Equivalence Classes, xUnit.net, FsCheck, Property-Based Testing* presentation, of which live recordings exist:
- [NDC London 2014](https://vimeo.com/113588391)
- [YSoft Technology Hour, Prague 2015](https://youtu.be/2oN9caQflJ8)

View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Mark Seemann
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
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
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.

View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly><name>FsCheck.Xunit</name></assembly>
<members>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Verbose(System.Boolean)">
<summary>
Output all generated arguments.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.StartSize(System.Int32)">
<summary>
The size to use for the first test.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Replay(System.String)">
<summary>
If set, the seed to use to start testing. Allows reproduction of previous runs. You can just paste
the tuple from the output window, e.g. 12344,12312 or (123,123).
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.QuietOnSuccess(System.Boolean)">
<summary>
If set, suppresses the output from the test if the test is successful. This can be useful when running tests
with TestDriven.net, because TestDriven.net pops up the Output window in Visual Studio if a test fails; thus,
when conditioned to that behaviour, it&apos;s always a bit jarring to receive output from passing tests.
The default is false, which means that FsCheck will also output test results on success, but if set to true,
FsCheck will suppress output in the case of a passing test. This setting doesn&apos;t affect the behaviour in case of
test failures.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.MaxTest(System.Int32)">
<summary>
The maximum number of tests that are run.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.MaxFail(System.Int32)">
<summary>
The maximum number of tests where values are rejected, e.g. as the result of ==&gt;
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.EndSize(System.Int32)">
<summary>
The size to use for the last test, when all the tests are passing. The size increases linearly between Start- and EndSize.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Arbitrary(System.Type[])">
<summary>
The Arbitrary instances to use for this test method. The Arbitrary instances
are merged in back to front order i.e. instances for the same generated type
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Verbose">
<summary>
Output all generated arguments.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.StartSize">
<summary>
The size to use for the first test.
</summary>
</member>
<member name="">
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Replay">
<summary>
If set, the seed to use to start testing. Allows reproduction of previous runs. You can just paste
the tuple from the output window, e.g. 12344,12312 or (123,123).
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.QuietOnSuccess">
<summary>
If set, suppresses the output from the test if the test is successful. This can be useful when running tests
with TestDriven.net, because TestDriven.net pops up the Output window in Visual Studio if a test fails; thus,
when conditioned to that behaviour, it&apos;s always a bit jarring to receive output from passing tests.
The default is false, which means that FsCheck will also output test results on success, but if set to true,
FsCheck will suppress output in the case of a passing test. This setting doesn&apos;t affect the behaviour in case of
test failures.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.MaxTest">
<summary>
The maximum number of tests that are run.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.MaxFail">
<summary>
The maximum number of tests where values are rejected, e.g. as the result of ==&gt;
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.EndSize">
<summary>
The size to use for the last test, when all the tests are passing. The size increases linearly between Start- and EndSize.
</summary>
</member>
<member name="P:FsCheck.Xunit.PropertyAttribute.Arbitrary">
<summary>
The Arbitrary instances to use for this test method. The Arbitrary instances
are merged in back to front order i.e. instances for the same generated type
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:FsCheck.Xunit.PropertyAttribute">
<summary>
Run this method as an FsCheck test.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:FsCheck.Xunit.ArbitraryAttribute">
<summary>
Override Arbitrary instances for FsCheck tests within the attributed class
or module.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:System.AssemblyVersionInformation">
</member>
</members>
</doc>

View File

@@ -0,0 +1,898 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly><name>Unquote</name></assembly>
<members>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.AssertionFailedException">
<summary>
Exception used to signal assertion failure to be caught by any exception framework
(used when not NUnit or xUnit.net or when compiled for Silverlight)
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.EvaluationException">
<summary>
Exception used to distinguish an error in the quotation evaluation engine.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Assertions.raisesWith``1(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Quotations.FSharpExpr{System.Boolean}})">
<summary>
Test wether the given expr fails with the given expected exception (or a subclass thereof) when the additional assertion on the exception object holds.
</summary>
</member>
<member name="M:Swensen.Unquote.Assertions.raises``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test wether the given expr fails with the given expected exception (or a subclass thereof).
</summary>
</member>
<member name="M:Swensen.Unquote.Assertions.test(Microsoft.FSharp.Quotations.FSharpExpr{System.Boolean})">
<summary>
Evaluate the given boolean expression: if false output incremental eval steps using
1) stdout if fsi mode
2) framework fail methods if Xunit or Nunit present
3) System.Exception if release mode.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Assertions.Internal">
<summary>
Functions and values public inline Operator functions rely on (and therefore must be public,
even though we do not want to expose them publically).
</summary>
</member>
<member name="T:Swensen.Unquote.Assertions">
<summary>
Operators on Expr and Expr&lt;&apos;a&gt; for performing unit test assertions.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Decompilation.CustomContext">
</member>
<member name="T:Swensen.Unquote.Decompilation">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeExplicitOpDynamic(System.Type,System.Type,System.Object)">
<summary>
aty is the arg type, bty is the return type, x is the arg
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeUnaryOpDynamic(System.String,System.Type,System.Object)">
<summary>
name is the name of the unary op method, aty is the arg type, x is the arg
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeShiftBinOp(System.String,Microsoft.FSharp.Core.FSharpFunc`2{System.SByte,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.SByte}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int16,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int16}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int32}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int64,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int64}},Microsoft.FSharp.Core.FSharpFunc`2{System.IntPtr,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.IntPtr}},Microsoft.FSharp.Core.FSharpFunc`2{System.Byte,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Byte}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt16,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt16}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt32}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt64,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt64}},Microsoft.FSharp.Core.FSharpFunc`2{System.UIntPtr,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UIntPtr}},System.Type,System.Type,System.Type,System.Object,System.Object)">
<summary>
Binary ops of the form &apos;a-&gt;int-&gt;&apos;a
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeBinOpDynamic(System.String,System.Type,System.Type,System.Object,System.Object)">
<summary>
name is the name of the method, aty is the type of the first arg, bty is the type of the second arg,
x is the first arg, y is the second arg.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.DynamicOperators.Checked">
</member>
<member name="T:Swensen.Unquote.DynamicOperators">
<summary>
The purpose of these operator implementations is two fold 1) many F# operators do not include dynamic impls,
so we must give them. 2) even those operators which are given dynamic impls do not perform well since they
need to be accessed via reflection, so we give &quot;native&quot; impls here.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Evaluation.reraisePreserveStackTrace``1(System.Exception)">
<summary>
&quot;reraise&quot; the given exception, preserving the stacktrace (e.g. for InnerExceptions of TargetInvocation exceptions)
</summary>
</member>
<member name="M:Swensen.Unquote.Evaluation.stripTargetInvocationException(System.Exception)">
<summary>
Strip possibly nested target invocation exception
</summary>
</member>
<member name="T:Swensen.Unquote.Evaluation">
</member>
<member name="M:Swensen.Unquote.Extensions.Type.get_FSharpName(System.Type)">
<summary>
The F#-style signature. Note: this property is out-of-place in this assembly and may be moved elsewhere in future versions.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.IsReduced(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Determine whether this expression is reduced.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.ReduceFully(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.ReduceFully(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Convert this expression with the given variable environment to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Reduce(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce this expression by one step: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Reduce(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Reduce this expression by one step with the given variable environment: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Decompile(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Decompile this expression to its source code representation. Sub-expressions which are
not currently supported will fallback on the default Expr.ToString() implementation.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate this untyped expression.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Evaluate this untyped expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr`1.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0},Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Evaluate this typed expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr`1.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate this typed expression.
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Extensions">
<summary>
Extensions methods on Expr and Expr&lt;&apos;a&gt; for decompiling, evaluating, and incrementally reducing quotation expressions. Also includes a bonus
extension method on Type for getting the short, F#-style name of a type.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|NumericLiteral|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match Call(None, ...) patterns for NumericLiterals, returning the literal value as a string and suffix on success
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|RangeStep|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match a sequence, list, or array op_RangeStep expression, return (startToken, endToken, startExpression, stepExpression, endExpression). Must come before Call patterns.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|Range|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match a sequence, list, or array op_Range expression, return (startToken, endToken, startExpression, endExpression). Must come before Call patterns.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|IncompleteLambdaCall|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Partial application and zero application of Lambda call (e.g. List.map (+), or id).
Must come before Let and Lambdas patterns.
Cases: 1) Let .. Lambdas .. Call
2) Lambdas .. Call
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|TupleLet|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test whether the given expression represents a tuple let binding: e.g. let x,y = 1,2.
Must come before Let pattern and after IncompleteLambdaCall pattern.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.isVarOfExpr(Microsoft.FSharp.Quotations.FSharpVar,Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test whether the Expr is a Var and equals the given Var property-wise
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|InfixCallOrApplication|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match non-custom binary infix Call patterns.
Must come before Call pattern.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|LambdaValue|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Matches lambda values, returning the demanged (but not source) name of the lambda
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.ExtraPatterns">
<summary>
Extra Quoation patterns for sprinting and reducing Quotation Expressions
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sprintGenericArgsIfNotInferable(System.Reflection.MethodInfo)">
<summary>
sprints the generic arguments of a call if definitely not inferable.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.genericArgsInferable(System.Reflection.MethodInfo)">
<summary>
Determine whether the generic args for a call are inferable
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sprintSig(System.Type)">
<summary>
Sprint the F#-style type signature of the given Type. Handles known type abbreviations,
simple types, arbitrarily complex generic types (multiple parameters and nesting),
lambdas, tuples, and arrays.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sourceName(System.Reflection.MemberInfo)">
<summary>
get the source name for the Module or F# Function represented by the given MemberInfo
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.isFsiModule(System.Type)">
<summary>
is the top-level FSI module
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.SymbolicOps.tryMapAsFirstClassByName(System.String)">
<summary>
try to find the first class symbolic function representation of a &quot;op_&quot; function name
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.ExtraReflection.SymbolicOps">
</member>
<member name="T:Swensen.Unquote.ExtraReflection">
<summary>
Extra reflection functions sprinting and reducing Quotation Expressions
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="P:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence.Precedence">
<summary>
Precedence
</summary>
</member>
<member name="P:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence.Associativity">
<summary>
Associativity
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence">
<summary>
Represents an operator&apos;s precedence. The lower the precedence value, the lower the binding.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.OperatorPrecedence">
</member>
<member name="M:Swensen.Unquote.Operators.unquote(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Print the newline concated source code reduce steps of the given expression to stdout.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.isReduced(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Determine whether the given expression is reduced.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceFullyWith(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression with the given variable environment to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceWith(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce the given expression by one step with the given variable environment: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalWith``1(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate the given typed expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalRawWith``1(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate the given untyped expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceFully(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduce(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce by one step: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.decompile(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Decompile given expression to its source code representation. Sub-expressions which are
not currently supported will fallback on the default Expr.ToString() implementation.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate the given typed expression.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalRaw``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate the given untyped expression.
</summary>
</member>
<member name="T:Swensen.Unquote.Operators">
<summary>
Operators on Expr and Expr&lt;&apos;a&gt; for decompiling, evaluating, and incrementally reducing quotation expressions.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Reduction.evalValue(Microsoft.FSharp.Collections.FSharpList{Swensen.Unquote.Evaluation.EnvVar},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Construct a Value from an evaluated expression
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Reduction">
</member>
</members>
</doc>

View File

@@ -0,0 +1,892 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly><name>Unquote</name></assembly>
<members>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.AssertionFailedException">
<summary>
Exception used to signal assertion failure to be caught by any exception framework
(used when not NUnit or xUnit.net or when compiled for Silverlight)
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.EvaluationException">
<summary>
Exception used to distinguish an error in the quotation evaluation engine.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Assertions.raisesWith``1(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Quotations.FSharpExpr{System.Boolean}})">
<summary>
Test wether the given expr fails with the given expected exception (or a subclass thereof) when the additional assertion on the exception object holds.
</summary>
</member>
<member name="M:Swensen.Unquote.Assertions.raises``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test wether the given expr fails with the given expected exception (or a subclass thereof).
</summary>
</member>
<member name="M:Swensen.Unquote.Assertions.test(Microsoft.FSharp.Quotations.FSharpExpr{System.Boolean})">
<summary>
Evaluate the given boolean expression: if false output incremental eval steps using
1) stdout if fsi mode
2) framework fail methods if Xunit or Nunit present
3) System.Exception if release mode.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Assertions.Internal">
<summary>
Functions and values public inline Operator functions rely on (and therefore must be public,
even though we do not want to expose them publically).
</summary>
</member>
<member name="T:Swensen.Unquote.Assertions">
<summary>
Operators on Expr and Expr&lt;&apos;a&gt; for performing unit test assertions.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Decompilation.CustomContext">
</member>
<member name="T:Swensen.Unquote.Decompilation">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeExplicitOpDynamic(System.Type,System.Type,System.Object)">
<summary>
aty is the arg type, bty is the return type, x is the arg
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeUnaryOpDynamic(System.String,System.Type,System.Object)">
<summary>
name is the name of the unary op method, aty is the arg type, x is the arg
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeShiftBinOp(System.String,Microsoft.FSharp.Core.FSharpFunc`2{System.SByte,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.SByte}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int16,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int16}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int32}},Microsoft.FSharp.Core.FSharpFunc`2{System.Int64,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int64}},Microsoft.FSharp.Core.FSharpFunc`2{System.IntPtr,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.IntPtr}},Microsoft.FSharp.Core.FSharpFunc`2{System.Byte,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Byte}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt16,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt16}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt32}},Microsoft.FSharp.Core.FSharpFunc`2{System.UInt64,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UInt64}},Microsoft.FSharp.Core.FSharpFunc`2{System.UIntPtr,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.UIntPtr}},System.Type,System.Type,System.Type,System.Object,System.Object)">
<summary>
Binary ops of the form &apos;a-&gt;int-&gt;&apos;a
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.DynamicOperators.invokeBinOpDynamic(System.String,System.Type,System.Type,System.Object,System.Object)">
<summary>
name is the name of the method, aty is the type of the first arg, bty is the type of the second arg,
x is the first arg, y is the second arg.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.DynamicOperators.Checked">
</member>
<member name="T:Swensen.Unquote.DynamicOperators">
<summary>
The purpose of these operator implementations is two fold 1) many F# operators do not include dynamic impls,
so we must give them. 2) even those operators which are given dynamic impls do not perform well since they
need to be accessed via reflection, so we give &quot;native&quot; impls here.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Evaluation.reraisePreserveStackTrace``1(System.Exception)">
<summary>
&quot;reraise&quot; the given exception, preserving the stacktrace (e.g. for InnerExceptions of TargetInvocation exceptions)
</summary>
</member>
<member name="M:Swensen.Unquote.Evaluation.stripTargetInvocationException(System.Exception)">
<summary>
Strip possibly nested target invocation exception
</summary>
</member>
<member name="T:Swensen.Unquote.Evaluation">
</member>
<member name="M:Swensen.Unquote.Extensions.Type.get_FSharpName(System.Type)">
<summary>
The F#-style signature. Note: this property is out-of-place in this assembly and may be moved elsewhere in future versions.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.IsReduced(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Determine whether this expression is reduced.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.ReduceFully(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.ReduceFully(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Convert this expression with the given variable environment to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Reduce(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce this expression by one step: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Reduce(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Reduce this expression by one step with the given variable environment: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Decompile(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Decompile this expression to its source code representation. Sub-expressions which are
not currently supported will fallback on the default Expr.ToString() implementation.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate this untyped expression.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr,Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Evaluate this untyped expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr`1.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0},Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object})">
<summary>
Evaluate this typed expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Extensions.Expr`1.Eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate this typed expression.
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Extensions">
<summary>
Extensions methods on Expr and Expr&lt;&apos;a&gt; for decompiling, evaluating, and incrementally reducing quotation expressions. Also includes a bonus
extension method on Type for getting the short, F#-style name of a type.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|NumericLiteral|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match Call(None, ...) patterns for NumericLiterals, returning the literal value as a string and suffix on success
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|RangeStep|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match a sequence, list, or array op_RangeStep expression, return (startToken, endToken, startExpression, stepExpression, endExpression). Must come before Call patterns.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|Range|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match a sequence, list, or array op_Range expression, return (startToken, endToken, startExpression, endExpression). Must come before Call patterns.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|IncompleteLambdaCall|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Partial application and zero application of Lambda call (e.g. List.map (+), or id).
Must come before Let and Lambdas patterns.
Cases: 1) Let .. Lambdas .. Call
2) Lambdas .. Call
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|TupleLet|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test whether the given expression represents a tuple let binding: e.g. let x,y = 1,2.
Must come before Let pattern and after IncompleteLambdaCall pattern.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.isVarOfExpr(Microsoft.FSharp.Quotations.FSharpVar,Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Test whether the Expr is a Var and equals the given Var property-wise
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|InfixCallOrApplication|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Match non-custom binary infix Call patterns.
Must come before Call pattern.
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraPatterns.|LambdaValue|_|(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Matches lambda values, returning the demanged (but not source) name of the lambda
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.ExtraPatterns">
<summary>
Extra Quoation patterns for sprinting and reducing Quotation Expressions
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sprintGenericArgsIfNotInferable(System.Reflection.MethodInfo)">
<summary>
sprints the generic arguments of a call if definitely not inferable.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.genericArgsInferable(System.Reflection.MethodInfo)">
<summary>
Determine whether the generic args for a call are inferable
</summary>
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sprintSig(System.Type)">
<summary>
Sprint the F#-style type signature of the given Type. Handles known type abbreviations,
simple types, arbitrarily complex generic types (multiple parameters and nesting),
lambdas, tuples, and arrays.
</summary>
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.sourceName(System.Reflection.MemberInfo)">
<summary>
get the source name for the Module or F# Function represented by the given MemberInfo
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.isFsiModule(System.Type)">
<summary>
is the top-level FSI module
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.ExtraReflection.SymbolicOps.tryMapAsFirstClassByName(System.String)">
<summary>
try to find the first class symbolic function representation of a &quot;op_&quot; function name
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.ExtraReflection.SymbolicOps">
</member>
<member name="T:Swensen.Unquote.ExtraReflection">
<summary>
Extra reflection functions sprinting and reducing Quotation Expressions
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="P:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence.Precedence">
<summary>
Precedence
</summary>
</member>
<member name="P:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence.Associativity">
<summary>
Associativity
</summary>
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.OperatorPrecedence.OperatorPrecedence">
<summary>
Represents an operator&apos;s precedence. The lower the precedence value, the lower the binding.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.OperatorPrecedence">
</member>
<member name="M:Swensen.Unquote.Operators.unquote(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Print the newline concated source code reduce steps of the given expression to stdout.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.isReduced(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Determine whether the given expression is reduced.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceFullyWith(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression with the given variable environment to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceWith(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce the given expression by one step with the given variable environment: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalWith``1(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate the given typed expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalRawWith``1(Microsoft.FSharp.Collections.FSharpMap{System.String,System.Object},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate the given untyped expression with the given variable environment.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduceFully(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Convert the given expression to a list of all of its Reduce steps in order.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.reduce(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Reduce by one step: convert each branch of the given expression to a Value expression of its
evaluation if each sub-branch of the branch is reduced.
If this expression is already reduced, or cannot be reduced, returns itself.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.decompile(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Decompile given expression to its source code representation. Sub-expressions which are
not currently supported will fallback on the default Expr.ToString() implementation.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.eval``1(Microsoft.FSharp.Quotations.FSharpExpr{``0})">
<summary>
Evaluate the given typed expression.
</summary>
</member>
<member name="M:Swensen.Unquote.Operators.evalRaw``1(Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Evaluate the given untyped expression.
</summary>
</member>
<member name="T:Swensen.Unquote.Operators">
<summary>
Operators on Expr and Expr&lt;&apos;a&gt; for decompiling, evaluating, and incrementally reducing quotation expressions.
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="">
</member>
<member name="M:Swensen.Unquote.Reduction.evalValue(Microsoft.FSharp.Collections.FSharpList{Swensen.Unquote.Evaluation.EnvVar},Microsoft.FSharp.Quotations.FSharpExpr)">
<summary>
Construct a Value from an evaluated expression
</summary>
</member>
<member name="">
</member>
<member name="">
</member>
<member name="T:Swensen.Unquote.Reduction">
</member>
</members>
</doc>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<repositories>
<repository path="..\FizzBuzz\packages.config" />
</repositories>

View File

@@ -0,0 +1,5 @@
<TestRunner>
<FriendlyName>xUnit.net {0}.{1}.{2} build {3}</FriendlyName>
<AssemblyPath>xunit.runner.tdnet.dll</AssemblyPath>
<TypeName>Xunit.Runner.TdNet.TdNetRunner</TypeName>
</TestRunner>

View File

@@ -0,0 +1,811 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>xunit.extensions</name>
</assembly>
<members>
<member name="T:Xunit.Extensions.Assertions">
<summary>
A wrapper for Assert which is used by <see cref="T:Xunit.Extensions.TestClass"/>.
</summary>
</member>
<member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0})">
<summary>
Verifies that a collection contains a given object.
</summary>
<typeparam name="T">The type of the object to be verified</typeparam>
<param name="expected">The object expected to be in the collection</param>
<param name="collection">The collection to be inspected</param>
<exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
<summary>
Verifies that a collection contains a given object, using an equality comparer.
</summary>
<typeparam name="T">The type of the object to be verified</typeparam>
<param name="expected">The object expected to be in the collection</param>
<param name="collection">The collection to be inspected</param>
<param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
<exception cref="T:Xunit.Sdk.ContainsException">Thrown when the object is not present in the collection</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String)">
<summary>
Verifies that a string contains a given sub-string, using the current culture.
</summary>
<param name="expectedSubstring">The sub-string expected to be in the string</param>
<param name="actualString">The string to be inspected</param>
<exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Contains(System.String,System.String,System.StringComparison)">
<summary>
Verifies that a string contains a given sub-string, using the given comparison type.
</summary>
<param name="expectedSubstring">The sub-string expected to be in the string</param>
<param name="actualString">The string to be inspected</param>
<param name="comparisonType">The type of string comparison to perform</param>
<exception cref="T:Xunit.Sdk.ContainsException">Thrown when the sub-string is not present inside the string</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0})">
<summary>
Verifies that a collection does not contain a given object.
</summary>
<typeparam name="T">The type of the object to be compared</typeparam>
<param name="expected">The object that is expected not to be in the collection</param>
<param name="collection">The collection to be inspected</param>
<exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
<summary>
Verifies that a collection does not contain a given object, using an equality comparer.
</summary>
<typeparam name="T">The type of the object to be compared</typeparam>
<param name="expected">The object that is expected not to be in the collection</param>
<param name="collection">The collection to be inspected</param>
<param name="comparer">The comparer used to equate objects in the collection with the expected object</param>
<exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the object is present inside the container</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String)">
<summary>
Verifies that a string does not contain a given sub-string, using the current culture.
</summary>
<param name="expectedSubstring">The sub-string which is expected not to be in the string</param>
<param name="actualString">The string to be inspected</param>
<exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the string</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String,System.StringComparison)">
<summary>
Verifies that a string does not contain a given sub-string, using the current culture.
</summary>
<param name="expectedSubstring">The sub-string which is expected not to be in the string</param>
<param name="actualString">The string to be inspected</param>
<param name="comparisonType">The type of string comparison to perform</param>
<exception cref="T:Xunit.Sdk.DoesNotContainException">Thrown when the sub-string is present inside the given string</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.DoesNotThrow(Xunit.Assert.ThrowsDelegate)">
<summary>
Verifies that a block of code does not throw any exceptions.
</summary>
<param name="testCode">A delegate to the code to be tested</param>
</member>
<member name="M:Xunit.Extensions.Assertions.Empty(System.Collections.IEnumerable)">
<summary>
Verifies that a collection is empty.
</summary>
<param name="collection">The collection to be inspected</param>
<exception cref="T:System.ArgumentNullException">Thrown when the collection is null</exception>
<exception cref="T:Xunit.Sdk.EmptyException">Thrown when the collection is not empty</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0)">
<summary>
Verifies that two objects are equal, using a default comparer.
</summary>
<typeparam name="T">The type of the objects to be compared</typeparam>
<param name="expected">The expected value</param>
<param name="actual">The value to be compared against</param>
<exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Equal``1(``0,``0,System.Collections.Generic.IEqualityComparer{``0})">
<summary>
Verifies that two objects are equal, using a custom equatable comparer.
</summary>
<typeparam name="T">The type of the objects to be compared</typeparam>
<param name="expected">The expected value</param>
<param name="actual">The value to be compared against</param>
<param name="comparer">The comparer used to compare the two objects</param>
<exception cref="T:Xunit.Sdk.EqualException">Thrown when the objects are not equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Equal(System.Double,System.Double,System.Int32)">
<summary>
Verifies that two <see cref="T:System.Double"/> values are equal, within the number of decimal
places given by <paramref name="precision"/>.
</summary>
<param name="expected">The expected value</param>
<param name="actual">The value to be compared against</param>
<param name="precision">The number of decimal places (valid values: 0-15)</param>
<exception cref="T:Xunit.Sdk.EqualException">Thrown when the values are not equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Equal(System.Decimal,System.Decimal,System.Int32)">
<summary>
Verifies that two <see cref="T:System.Decimal"/> values are equal, within the number of decimal
places given by <paramref name="precision"/>.
</summary>
<param name="expected">The expected value</param>
<param name="actual">The value to be compared against</param>
<param name="precision">The number of decimal places (valid values: 0-15)</param>
<exception cref="T:Xunit.Sdk.EqualException">Thrown when the values are not equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.False(System.Boolean)">
<summary>
Verifies that the condition is false.
</summary>
<param name="condition">The condition to be tested</param>
<exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.False(System.Boolean,System.String)">
<summary>
Verifies that the condition is false.
</summary>
<param name="condition">The condition to be tested</param>
<param name="userMessage">The message to show when the condition is not false</param>
<exception cref="T:Xunit.Sdk.FalseException">Thrown if the condition is not false</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0)">
<summary>
Verifies that a value is within a given range.
</summary>
<typeparam name="T">The type of the value to be compared</typeparam>
<param name="actual">The actual value to be evaluated</param>
<param name="low">The (inclusive) low value of the range</param>
<param name="high">The (inclusive) high value of the range</param>
<exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
<summary>
Verifies that a value is within a given range, using a comparer.
</summary>
<typeparam name="T">The type of the value to be compared</typeparam>
<param name="actual">The actual value to be evaluated</param>
<param name="low">The (inclusive) low value of the range</param>
<param name="high">The (inclusive) high value of the range</param>
<param name="comparer">The comparer used to evaluate the value's range</param>
<exception cref="T:Xunit.Sdk.InRangeException">Thrown when the value is not in the given range</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsAssignableFrom``1(System.Object)">
<summary>
Verifies that an object is of the given type or a derived type.
</summary>
<typeparam name="T">The type the object should be</typeparam>
<param name="object">The object to be evaluated</param>
<returns>The object, casted to type T when successful</returns>
<exception cref="T:Xunit.Sdk.IsAssignableFromException">Thrown when the object is not the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsAssignableFrom(System.Type,System.Object)">
<summary>
Verifies that an object is of the given type or a derived type.
</summary>
<param name="expectedType">The type the object should be</param>
<param name="object">The object to be evaluated</param>
<exception cref="T:Xunit.Sdk.IsAssignableFromException">Thrown when the object is not the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsNotType``1(System.Object)">
<summary>
Verifies that an object is not exactly the given type.
</summary>
<typeparam name="T">The type the object should not be</typeparam>
<param name="object">The object to be evaluated</param>
<exception cref="T:Xunit.Sdk.IsNotTypeException">Thrown when the object is the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsNotType(System.Type,System.Object)">
<summary>
Verifies that an object is not exactly the given type.
</summary>
<param name="expectedType">The type the object should not be</param>
<param name="object">The object to be evaluated</param>
<exception cref="T:Xunit.Sdk.IsNotTypeException">Thrown when the object is the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsType``1(System.Object)">
<summary>
Verifies that an object is exactly the given type (and not a derived type).
</summary>
<typeparam name="T">The type the object should be</typeparam>
<param name="object">The object to be evaluated</param>
<returns>The object, casted to type T when successful</returns>
<exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.IsType(System.Type,System.Object)">
<summary>
Verifies that an object is exactly the given type (and not a derived type).
</summary>
<param name="expectedType">The type the object should be</param>
<param name="object">The object to be evaluated</param>
<exception cref="T:Xunit.Sdk.IsTypeException">Thrown when the object is not the given type</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotEmpty(System.Collections.IEnumerable)">
<summary>
Verifies that a collection is not empty.
</summary>
<param name="collection">The collection to be inspected</param>
<exception cref="T:System.ArgumentNullException">Thrown when a null collection is passed</exception>
<exception cref="T:Xunit.Sdk.NotEmptyException">Thrown when the collection is empty</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0)">
<summary>
Verifies that two objects are not equal, using a default comparer.
</summary>
<typeparam name="T">The type of the objects to be compared</typeparam>
<param name="expected">The expected object</param>
<param name="actual">The actual object</param>
<exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0,System.Collections.Generic.IEqualityComparer{``0})">
<summary>
Verifies that two objects are not equal, using a custom equality comparer.
</summary>
<typeparam name="T">The type of the objects to be compared</typeparam>
<param name="expected">The expected object</param>
<param name="actual">The actual object</param>
<param name="comparer">The comparer used to examine the objects</param>
<exception cref="T:Xunit.Sdk.NotEqualException">Thrown when the objects are equal</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0)">
<summary>
Verifies that a value is not within a given range, using the default comparer.
</summary>
<typeparam name="T">The type of the value to be compared</typeparam>
<param name="actual">The actual value to be evaluated</param>
<param name="low">The (inclusive) low value of the range</param>
<param name="high">The (inclusive) high value of the range</param>
<exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})">
<summary>
Verifies that a value is not within a given range, using a comparer.
</summary>
<typeparam name="T">The type of the value to be compared</typeparam>
<param name="actual">The actual value to be evaluated</param>
<param name="low">The (inclusive) low value of the range</param>
<param name="high">The (inclusive) high value of the range</param>
<param name="comparer">The comparer used to evaluate the value's range</param>
<exception cref="T:Xunit.Sdk.NotInRangeException">Thrown when the value is in the given range</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotNull(System.Object)">
<summary>
Verifies that an object reference is not null.
</summary>
<param name="object">The object to be validated</param>
<exception cref="T:Xunit.Sdk.NotNullException">Thrown when the object is not null</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.NotSame(System.Object,System.Object)">
<summary>
Verifies that two objects are not the same instance.
</summary>
<param name="expected">The expected object instance</param>
<param name="actual">The actual object instance</param>
<exception cref="T:Xunit.Sdk.NotSameException">Thrown when the objects are the same instance</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Null(System.Object)">
<summary>
Verifies that an object reference is null.
</summary>
<param name="object">The object to be inspected</param>
<exception cref="T:Xunit.Sdk.NullException">Thrown when the object reference is not null</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Same(System.Object,System.Object)">
<summary>
Verifies that two objects are the same instance.
</summary>
<param name="expected">The expected object instance</param>
<param name="actual">The actual object instance</param>
<exception cref="T:Xunit.Sdk.SameException">Thrown when the objects are not the same instance</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Single(System.Collections.IEnumerable)">
<summary>
Verifies that the given collection contains only a single
element of the given type.
</summary>
<param name="collection">The collection.</param>
<returns>The single item in the collection.</returns>
<exception cref="T:Xunit.Sdk.SingleException">Thrown when the collection does not contain
exactly one element.</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Single``1(System.Collections.Generic.IEnumerable{``0})">
<summary>
Verifies that the given collection contains only a single
element of the given type.
</summary>
<typeparam name="T">The collection type.</typeparam>
<param name="collection">The collection.</param>
<returns>The single item in the collection.</returns>
<exception cref="T:Xunit.Sdk.SingleException">Thrown when the collection does not contain
exactly one element.</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegate)">
<summary>
Verifies that the exact exception is thrown (and not a derived exception type).
</summary>
<typeparam name="T">The type of the exception expected to be thrown</typeparam>
<param name="testCode">A delegate to the code to be tested</param>
<returns>The exception that was thrown, when successful</returns>
<exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegateWithReturn)">
<summary>
Verifies that the exact exception is thrown (and not a derived exception type).
Generally used to test property accessors.
</summary>
<typeparam name="T">The type of the exception expected to be thrown</typeparam>
<param name="testCode">A delegate to the code to be tested</param>
<returns>The exception that was thrown, when successful</returns>
<exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Throws(System.Type,Xunit.Assert.ThrowsDelegate)">
<summary>
Verifies that the exact exception is thrown (and not a derived exception type).
</summary>
<param name="exceptionType">The type of the exception expected to be thrown</param>
<param name="testCode">A delegate to the code to be tested</param>
<returns>The exception that was thrown, when successful</returns>
<exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.Throws(System.Type,Xunit.Assert.ThrowsDelegateWithReturn)">
<summary>
Verifies that the exact exception is thrown (and not a derived exception type).
Generally used to test property accessors.
</summary>
<param name="exceptionType">The type of the exception expected to be thrown</param>
<param name="testCode">A delegate to the code to be tested</param>
<returns>The exception that was thrown, when successful</returns>
<exception cref="T:Xunit.Sdk.ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.True(System.Boolean)">
<summary>
Verifies that an expression is true.
</summary>
<param name="condition">The condition to be inspected</param>
<exception cref="T:Xunit.Sdk.TrueException">Thrown when the condition is false</exception>
</member>
<member name="M:Xunit.Extensions.Assertions.True(System.Boolean,System.String)">
<summary>
Verifies that an expression is true.
</summary>
<param name="condition">The condition to be inspected</param>
<param name="userMessage">The message to be shown when the condition is false</param>
<exception cref="T:Xunit.Sdk.TrueException">Thrown when the condition is false</exception>
</member>
<member name="T:Xunit.Extensions.TestClass">
<summary>
A class which can be derived from for test classes, which bring an overridable version
of Assert (using the <see cref="T:Xunit.Extensions.Assertions"/> class.
</summary>
</member>
<member name="P:Xunit.Extensions.TestClass.Assert">
<summary>
Gets a class which provides assertions.
</summary>
</member>
<member name="T:Xunit.Extensions.AssumeIdentityAttribute">
<summary>
Apply this attribute to your test method to replace the
<see cref="P:System.Threading.Thread.CurrentPrincipal"/> with another role.
</summary>
</member>
<member name="M:Xunit.Extensions.AssumeIdentityAttribute.#ctor(System.String)">
<summary>
Replaces the identity of the current thread with <paramref name="name"/>.
</summary>
<param name="name">The role's name</param>
</member>
<member name="M:Xunit.Extensions.AssumeIdentityAttribute.After(System.Reflection.MethodInfo)">
<summary>
Restores the original <see cref="P:System.Threading.Thread.CurrentPrincipal"/>.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
<member name="M:Xunit.Extensions.AssumeIdentityAttribute.Before(System.Reflection.MethodInfo)">
<summary>
Stores the current <see cref="P:System.Threading.Thread.CurrentPrincipal"/> and replaces it with
a new role identified in constructor.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
<member name="P:Xunit.Extensions.AssumeIdentityAttribute.Name">
<summary>
Gets the name.
</summary>
</member>
<member name="T:Xunit.Extensions.AutoRollbackAttribute">
<summary>
Apply this attribute to your test method to automatically create a
<see cref="T:System.Transactions.TransactionScope"/> that is rolled back when the test is
finished.
</summary>
</member>
<member name="M:Xunit.Extensions.AutoRollbackAttribute.After(System.Reflection.MethodInfo)">
<summary>
Rolls back the transaction.
</summary>
</member>
<member name="M:Xunit.Extensions.AutoRollbackAttribute.Before(System.Reflection.MethodInfo)">
<summary>
Creates the transaction.
</summary>
</member>
<member name="P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel">
<summary>
Gets or sets the isolation level of the transaction.
Default value is <see cref="P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel"/>.Unspecified.
</summary>
</member>
<member name="P:Xunit.Extensions.AutoRollbackAttribute.ScopeOption">
<summary>
Gets or sets the scope option for the transaction.
Default value is <see cref="T:System.Transactions.TransactionScopeOption"/>.Required.
</summary>
</member>
<member name="P:Xunit.Extensions.AutoRollbackAttribute.TimeoutInMS">
<summary>
Gets or sets the timeout of the transaction, in milliseconds.
By default, the transaction will not timeout.
</summary>
</member>
<member name="T:Xunit.Extensions.ClassDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming from a class
which must implement IEnumerable&lt;object[]&gt;.
</summary>
</member>
<member name="T:Xunit.Extensions.DataAttribute">
<summary>
Abstract attribute which represents a data source for a data theory.
Data source providers derive from this attribute and implement GetData
to return the data for the theory.
</summary>
</member>
<member name="M:Xunit.Extensions.DataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
<summary>
Returns the data to be used to test the theory.
</summary>
<remarks>
The <paramref name="parameterTypes"/> parameter is provided so that the
test data can be converted to the destination parameter type when necessary.
Generally, data should NOT be automatically converted, UNLESS the source data
format does not have rich types (for example, all numbers in Excel spreadsheets
are returned as <see cref="T:System.Double"/> even if they are integers). Derivers of
this class should NOT throw exceptions for mismatched types or mismatched number
of parameters; the test framework will throw these exceptions at the correct
time.
</remarks>
<param name="methodUnderTest">The method that is being tested</param>
<param name="parameterTypes">The types of the parameters for the test method</param>
<returns>The theory data</returns>
</member>
<member name="P:Xunit.Extensions.DataAttribute.TypeId">
<inheritdoc/>
</member>
<member name="M:Xunit.Extensions.ClassDataAttribute.#ctor(System.Type)">
<summary>
Initializes a new instance of the <see cref="T:Xunit.Extensions.ClassDataAttribute"/> class.
</summary>
<param name="class">The class that provides the data.</param>
</member>
<member name="M:Xunit.Extensions.ClassDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
<inheritdoc/>
</member>
<member name="P:Xunit.Extensions.ClassDataAttribute.Class">
<summary>
Gets the type of the class that provides the data.
</summary>
</member>
<member name="T:Xunit.Extensions.DataAdapterDataAttribute">
<summary>
Represents an implementation of <see cref="T:Xunit.Extensions.DataAttribute"/> which uses an
instance of <see cref="T:System.Data.IDataAdapter"/> to get the data for a <see cref="T:Xunit.Extensions.TheoryAttribute"/>
decorated test method.
</summary>
</member>
<member name="M:Xunit.Extensions.DataAdapterDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
<inheritdoc/>
</member>
<member name="M:Xunit.Extensions.DataAdapterDataAttribute.ConvertParameter(System.Object,System.Type)">
<summary>
Converts a parameter to its destination parameter type, if necessary.
</summary>
<param name="parameter">The parameter value</param>
<param name="parameterType">The destination parameter type (null if not known)</param>
<returns>The converted parameter value</returns>
</member>
<member name="P:Xunit.Extensions.DataAdapterDataAttribute.DataAdapter">
<summary>
Gets the data adapter to be used to retrieve the test data.
</summary>
</member>
<member name="T:Xunit.Extensions.InlineDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming from inline values.
</summary>
</member>
<member name="M:Xunit.Extensions.InlineDataAttribute.#ctor(System.Object[])">
<summary>
Initializes a new instance of the <see cref="T:Xunit.Extensions.InlineDataAttribute"/> class.
</summary>
<param name="dataValues">The data values to pass to the theory</param>
</member>
<member name="M:Xunit.Extensions.InlineDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
<summary>
Returns the data to be used to test the theory.
</summary>
<param name="methodUnderTest">The method that is being tested</param>
<param name="parameterTypes">The types of the parameters for the test method</param>
<returns>The theory data, in table form</returns>
</member>
<member name="P:Xunit.Extensions.InlineDataAttribute.DataValues">
<summary>
Gets the data values.
</summary>
</member>
<member name="T:Xunit.Extensions.OleDbDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming from an OLEDB connection.
</summary>
</member>
<member name="M:Xunit.Extensions.OleDbDataAttribute.#ctor(System.String,System.String)">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.OleDbDataAttribute"/>.
</summary>
<param name="connectionString">The OLEDB connection string to the data</param>
<param name="selectStatement">The SELECT statement used to return the data for the theory</param>
</member>
<member name="P:Xunit.Extensions.OleDbDataAttribute.ConnectionString">
<summary>
Gets the connection string.
</summary>
</member>
<member name="P:Xunit.Extensions.OleDbDataAttribute.SelectStatement">
<summary>
Gets the select statement.
</summary>
</member>
<member name="P:Xunit.Extensions.OleDbDataAttribute.DataAdapter">
<inheritdoc/>
</member>
<member name="T:Xunit.Extensions.PropertyDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming from a public static property on the test class.
The property must return IEnumerable&lt;object[]&gt; with the test data.
</summary>
</member>
<member name="M:Xunit.Extensions.PropertyDataAttribute.#ctor(System.String)">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.PropertyDataAttribute"/>/
</summary>
<param name="propertyName">The name of the public static property on the test class that will provide the test data</param>
</member>
<member name="M:Xunit.Extensions.PropertyDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])">
<summary>
Returns the data to be used to test the theory.
</summary>
<param name="methodUnderTest">The method that is being tested</param>
<param name="parameterTypes">The types of the parameters for the test method</param>
<returns>The theory data, in table form</returns>
</member>
<member name="P:Xunit.Extensions.PropertyDataAttribute.PropertyName">
<summary>
Gets the property name.
</summary>
</member>
<member name="P:Xunit.Extensions.PropertyDataAttribute.PropertyType">
<summary>
Gets or sets the type to retrieve the property data from. If not set, then the property will be
retrieved from the unit test class.
</summary>
</member>
<member name="T:Xunit.Extensions.SqlServerDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming a Microsoft SQL Server.
</summary>
</member>
<member name="M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String)">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.SqlServerDataAttribute"/>, using a trusted connection.
</summary>
<param name="serverName">The server name of the Microsoft SQL Server</param>
<param name="databaseName">The database name</param>
<param name="selectStatement">The SQL SELECT statement to return the data for the data theory</param>
</member>
<member name="M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String,System.String,System.String)">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.SqlServerDataAttribute"/>, using the provided username and password.
</summary>
<param name="serverName">The server name of the Microsoft SQL Server</param>
<param name="databaseName">The database name</param>
<param name="username">The username for the server</param>
<param name="password">The password for the server</param>
<param name="selectStatement">The SQL SELECT statement to return the data for the data theory</param>
</member>
<member name="T:Xunit.Extensions.ExcelDataAttribute">
<summary>
Provides a data source for a data theory, with the data coming a Microsoft Excel (.xls) spreadsheet.
</summary>
</member>
<member name="M:Xunit.Extensions.ExcelDataAttribute.#ctor(System.String,System.String)">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.ExcelDataAttribute"/>.
</summary>
<param name="filename">The filename of the XLS spreadsheet file; if the filename provided
is relative, then it is relative to the location of xunit.extensions.dll.</param>
<param name="selectStatement">The SELECT statement that returns the data for the theory</param>
</member>
<member name="M:Xunit.Extensions.ExcelDataAttribute.ConvertParameter(System.Object,System.Type)">
<inheritdoc/>
</member>
<member name="T:Xunit.Extensions.Clock">
<summary>
A wrapper around the static operations on <see cref="T:System.DateTime"/> which allows time
to be frozen using the <see cref="T:Xunit.Extensions.FreezeClockAttribute"/>. The clock begins in the
thawed state; that is, calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
<see cref="P:Xunit.Extensions.Clock.UtcNow"/> return current (non-frozen) values.
</summary>
</member>
<member name="M:Xunit.Extensions.Clock.Freeze">
<summary>
Freezes the clock with the current time.
Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
<see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
</summary>
</member>
<member name="M:Xunit.Extensions.Clock.FreezeLocal(System.DateTime)">
<summary>
Freezes the clock with the given date and time, considered to be local time.
Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
<see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
</summary>
<param name="localDateTime">The local date and time to freeze to</param>
</member>
<member name="M:Xunit.Extensions.Clock.FreezeUtc(System.DateTime)">
<summary>
Freezes the clock with the given date and time, considered to be Coordinated Universal Time (UTC).
Until <see cref="M:Xunit.Extensions.Clock.Thaw"/> is called, all calls to <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and
<see cref="P:Xunit.Extensions.Clock.UtcNow"/> will return the exact same values.
</summary>
<param name="utcDateTime">The UTC date and time to freeze to</param>
</member>
<member name="M:Xunit.Extensions.Clock.Thaw">
<summary>
Thaws the clock so that <see cref="P:Xunit.Extensions.Clock.Now"/>, <see cref="P:Xunit.Extensions.Clock.Today"/>, and <see cref="P:Xunit.Extensions.Clock.UtcNow"/>
return normal values.
</summary>
</member>
<member name="P:Xunit.Extensions.Clock.Now">
<summary>
Gets a <see cref="T:System.DateTime"/> object that is set to the current date and time on this computer,
expressed as the local time.
</summary>
</member>
<member name="P:Xunit.Extensions.Clock.Today">
<summary>
Gets the current date.
</summary>
</member>
<member name="P:Xunit.Extensions.Clock.UtcNow">
<summary>
Gets a <see cref="T:System.DateTime"/> object that is set to the current date and time on this computer,
expressed as the Coordinated Universal Time (UTC).
</summary>
</member>
<member name="T:Xunit.Extensions.FreezeClockAttribute">
<summary>
Apply this attribute to your test method to freeze the time represented by the
<see cref="T:Xunit.Extensions.Clock"/> class.
</summary>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor">
<summary>
Freeze the clock with the current date and time.
</summary>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Freeze the clock with the given date, considered to be local time.
</summary>
<param name="year">The frozen year</param>
<param name="month">The frozen month</param>
<param name="day">The frozen day</param>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Freeze the clock with the given date and time, considered to be in local time.
</summary>
<param name="year">The frozen year</param>
<param name="month">The frozen month</param>
<param name="day">The frozen day</param>
<param name="hour">The frozen hour</param>
<param name="minute">The frozen minute</param>
<param name="second">The frozen second</param>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)">
<summary>
Freeze the clock with the given date and time, with the given kind of time.
</summary>
<param name="year">The frozen year</param>
<param name="month">The frozen month</param>
<param name="day">The frozen day</param>
<param name="hour">The frozen hour</param>
<param name="minute">The frozen minute</param>
<param name="second">The frozen second</param>
<param name="kind">The frozen time kind</param>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.After(System.Reflection.MethodInfo)">
<summary>
Thaws the clock.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
<member name="M:Xunit.Extensions.FreezeClockAttribute.Before(System.Reflection.MethodInfo)">
<summary>
Freezes the clock.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
<member name="T:Xunit.Extensions.TheoryAttribute">
<summary>
Marks a test method as being a data theory. Data theories are tests which are fed
various bits of data from a data source, mapping to parameters on the test method.
If the data source contains multiple rows, then the test method is executed
multiple times (once with each data row).
</summary>
</member>
<member name="M:Xunit.Extensions.TheoryAttribute.EnumerateTestCommands(Xunit.Sdk.IMethodInfo)">
<summary>
Creates instances of <see cref="T:Xunit.Extensions.TheoryCommand"/> which represent individual intended
invocations of the test method, one per data row in the data source.
</summary>
<param name="method">The method under test</param>
<returns>An enumerator through the desired test method invocations</returns>
</member>
<member name="T:Xunit.Extensions.TheoryCommand">
<summary>
Represents a single invocation of a data theory test method.
</summary>
</member>
<member name="M:Xunit.Extensions.TheoryCommand.#ctor(Xunit.Sdk.IMethodInfo,System.Object[])">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.TheoryCommand"/>.
</summary>
<param name="testMethod">The method under test</param>
<param name="parameters">The parameters to be passed to the test method</param>
</member>
<member name="M:Xunit.Extensions.TheoryCommand.#ctor(Xunit.Sdk.IMethodInfo,System.Object[],System.Type[])">
<summary>
Creates a new instance of <see cref="T:Xunit.Extensions.TheoryCommand"/> based on a generic theory.
</summary>
<param name="testMethod">The method under test</param>
<param name="parameters">The parameters to be passed to the test method</param>
<param name="genericTypes">The generic types that were used to resolved the generic method.</param>
</member>
<member name="M:Xunit.Extensions.TheoryCommand.Execute(System.Object)">
<inheritdoc/>
</member>
<member name="P:Xunit.Extensions.TheoryCommand.Parameters">
<summary>
Gets the parameter values that are passed to the test method.
</summary>
</member>
<member name="T:Xunit.Extensions.TraceAttribute">
<summary>
Apply to a test method to trace the method begin and end.
</summary>
</member>
<member name="M:Xunit.Extensions.TraceAttribute.Before(System.Reflection.MethodInfo)">
<summary>
This method is called before the test method is executed.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
<member name="M:Xunit.Extensions.TraceAttribute.After(System.Reflection.MethodInfo)">
<summary>
This method is called after the test method is executed.
</summary>
<param name="methodUnderTest">The method under test</param>
</member>
</members>
</doc>