Code Monkey home page Code Monkey logo

fuchu's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fuchu's Issues

System.NullReferenceException when building a test in Visual Studio

------ Discover test started ------
NUnit Adapter 3.7.0.0: Test discovery starting
Assembly contains no NUnit 3.0 tests: C:\Users\sanke\OneDrive\code\github\Algorithms\FSharp\FSharp\bin\Debug\FSharp.exe
NUnit Adapter 3.7.0.0: Test discovery complete
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicFunctions.UnboxGeneric[T](Object source)
at [email protected](MemberInfo m) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 343
at Microsoft.FSharp.Primitives.Basics.List.choose[T,TResult](FSharpFunc2 f, FSharpList1 xs)
at Fuchu.Impl.testFromMember(MemberInfo m) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 357
at [email protected](MemberInfo m) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 372
at Microsoft.FSharp.Collections.IEnumerator.choose@205.System-Collections-IEnumerator-MoveNext()
at Microsoft.FSharp.Collections.SeqModule.ToList[T](IEnumerable1 source) at [email protected](Type t) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 368 at Microsoft.FSharp.Collections.IEnumerator.choose@205.System-Collections-IEnumerator-MoveNext() at Microsoft.FSharp.Collections.SeqModule.ToList[T](IEnumerable1 source)
at Fuchu.Impl.testFromAssemblyWithFilter(FSharpFunc2 typeFilter, Assembly a) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 378 at [email protected](Assembly a) in c:\prg\Fuchu\Fuchu\Fuchu.fs:line 385 at Discovery.DiscoverProxy.DiscoverTests(String source) at Discovery.DiscoverProxy.DiscoverTests(String source) at Discovery.Discoverer.Microsoft-VisualStudio-TestPlatform-ObjectModel-Adapter-ITestDiscoverer-DiscoverTests(IEnumerable1 sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
========== Discover test finished: 2 found (0:00:00.6280152) ==========

Source Code

module MaximizeStockProfit

open System
open NUnit.Framework
open FsUnit
open Fuchu

let maxProfit1 p =

let rec loop minSoFar maxProfitSoFar rest =
    match rest with
    | [] -> maxProfitSoFar
    | h :: t ->
        let newMin =
            if (h < minSoFar) then h else minSoFar
        let newMaxProfit =
            let profit = h - minSoFar
            if (profit > maxProfitSoFar) then profit else maxProfitSoFar
        loop newMin newMaxProfit t

match p with
| [] | [_] -> failwith "Not enough datapoints"
| h :: t -> loop h Int32.MinValue t

[]
type Tests () =

[<Test>]
member x.``Basic Tests`` () =
    [ ([2;3], 1); ([3;2], -1); ([5;3;8;0], 5); ([5;4;3;2;1], -1); ([1;2;3;4;3;2;1], 3) ]
    |> List.iter (fun (i, o) -> maxProfit1 i |> should equal o)

[<Test>]
member x.``Negative Tests`` () =
    [ []; [2] ]
    |> List.iter
        (fun (i) ->
            (fun () -> maxProfit1 i |> ignore)
            |> should (throwWithMessage "Not enough datapoints") typeof<Exception>)

[]
let tests =

let expect input output _ =
    maxProfit1 input |> should equal output

let basicTest i (input, output) =
    testCase (sprintf "%i" i) <| expect input output

let shouldFail input _ =
    maxProfit1 input |> should (throwWithMessage "Not enough datapoints") typeof<Exception>

let negativeTest i input =
    testCase (sprintf "%i" i) <| shouldFail input

testList "MaximizeStockProfit" [
    testList "Basic" (
        [ ([2;3], 1); ([3;2], -1); ([5;3;8;0], 5); ([5;4;3;2;1], -1); ([1;2;3;4;3;2;1], 3) ]
        |> List.mapi basicTest
    )
    testList "Negative" (
        [ []; [2] ]
        |> List.mapi negativeTest
    )
]

Mono method missing?

Have you got a clue as to what this might mean?

[19:46:53][Step 3/3] Unhandled Exception:
[19:46:53][Step 3/3] System.TypeInitializationException: An exception was thrown by the type initializer for <StartupCode$Logary-Riemann-Tests>.$Logary.Riemann.Tests ---> System.MissingMethodException: Method not found: 'Fuchu.Test.NewTestCase'.
[19:46:53][Step 3/3] --- End of inner exception stack trace ---
[19:46:53][Step 3/3] at Logary.Riemann.Tests.main (System.String[] args) [0x00000] in <filename unknown>:0
[19:46:53][Step 3/3] [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for <StartupCode$Logary-Riemann-Tests>.$Logary.Riemann.Tests ---> System.MissingMethodException: Method not found: 'Fuchu.Test.NewTestCase'.
[19:46:53][Step 3/3] --- End of inner exception stack trace ---
[19:46:53][Step 3/3] at Logary.Riemann.Tests.main (System.String[] args) [0x00000] in <filename unknown>:0
[19:46:53][Step 3/3] rake aborted!
[19:46:53][Step 3/3] Albacore::CommandFailedError: Command failed with status (1):
[19:46:53][Step 3/3] mono src/Logary.Riemann.Tests/bin/Release/Logary.Riemann.Tests.exe
[19:46:53][Step 3/3] Could not load signature of Fuchu.Test:NewTestCase due to: Could not load file or assembly or one of its dependencies.
[19:46:53][Step 3/3] Could not load signature of Fuchu.Test:NewTestCase due to: Could not load file or assembly or one of its dependencies.
[19:46:53][Step 3/3] Missing method Fuchu.Test::NewTestCase(FSharpFunc`2<Unit, Unit>) in assembly /opt/teamcity-agent/work/87f19f40cdb0dbe/src/Logary.Riemann.Tests/bin/Release/Fuchu.dll, referenced in assembly /opt/teamcity-agent/work/87f19f40cdb0dbe/src/Logary.Riemann.Tests/bin/Release/Logary.Riemann.Tests.exe
[19:46:53][Step 3/3] /opt/teamcity-agent/work/87f19f40cdb0dbe/Rakefile.rb:75:in `block (2 levels) in <top (required)>'
[19:46:53][Step 3/3] /opt/teamcity-agent/work/87f19f40cdb0dbe/Rakefile.rb:72:in `each'
[19:46:53][Step 3/3] /opt/teamcity-agent/work/87f19f40cdb0dbe/Rakefile.rb:72:in `block in <top (required)>'

Move to fsprojects?

I think this library has a lot of potential; wouldn't it be great if it was moved to fsprojects for everyone to contribute to? It would increase its exposure.

FSharpx and PowerPack question

Hello.

By trying to build solution I'm getting:

Error   10  The type referenced through 'Microsoft.FSharp.Collections.LazyList`1' is 
defined in an assembly that is not referenced. You must add a reference to assembly 
'FSharp.PowerPack'. D:\TFS\Fuchu\Fuchu.Tests\Prelude.fs 4   6   Fuchu.Tests
  • Does FSharpx really depending on PowerPack?
  • If So then why NuGet doesn't resolve it?
  • Or should it be added to some packages.conf?

Tests.skiptest not working for FsCheck

serialisation of can roundtrip: Failed: 
can roundtrip-Falsifiable, after 1 test (0 shrinks) (StdGen (1843863707,295999223)):
Transitioned Failed
with exception:
Fuchu.IgnoreException: my msg
  at lalllalaa.fs:203 
  at FsCheck.Testable.evaluate[Evt,Unit] (Microsoft.FSharp.Core.FSharpFunc`2 body, Evt a) [0x00000] in <filename unknown>:0 

FsCheck integration

I'm using the sample from the docs. My whole console app is this:

open Fuchu
open Fuchu.FuchuFsCheck
open FsCheck

module PropertyTests =

let config = { FsCheck.Config.Default with MaxTest = 10000 }

let properties = 
    testList "FsCheck" [
        testProperty "Addition is commutative" <|
            fun a b -> 
                a + b = b + a

        // you can also override the FsCheck config
        testPropertyWithConfig config "Product is distributive over addition" <|
            fun a b c -> 
                a * (b + c) = a * b + a * c
    ]

run properties

[]
let main args = defaultMainThisAssembly args

And I get this error:
The module/namespace 'FsCheck.Fluent' from compilation unit 'FsCheck' did not contain the namespace, module or type 'SpecBuilder`1'

.NET 4.6
FSharp 4.3.1.0
FsCheck 2.1.0
FSharp.Core 3.1.2.5
Fuchu 0.6.0.0
Fuchu.FsCheck 0.6.0.0

Any thoughts? Thanks.

Sign it please?

Could we just put a random Fuchu.snk and sign it? A bit of a PITA to work with unsigned assemblies from signed assemblies. Reverse is OK.

inline ==> clashes with Fakes definition

I note that this definition is obsolete in this project.

Can you delete it from the source? It clashes with Fake; so you can't import both libraries in the same file!

Again, initialisation error, but with App.config

https://ci.appveyor.com/project/haf/logary/build/4.0.7

Unhandled Exception: System.TypeInitializationException: The type initializer for '<StartupCode$Logary-Adapters-Facade-Tests>.$Program' threw an exception. ---> System.MissingMethodException: Method not found: 'Fuchu.Test Fuchu.Test.NewTestCase(Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit,Microsoft.FSharp.Core.Unit>)'.
   at [email protected](Unit unitVar)
   at [email protected](Unit unitVar0)
   at Microsoft.FSharp.Collections.SeqModule.ToList[T](IEnumerable`1 source)
   at <StartupCode$Logary-Adapters-Facade-Tests>.$Program..cctor()
   --- End of inner exception stack trace ---
   at Program.main(String[] argv)

App.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <Paket>True</Paket>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="4.4.0.0" />
  </dependentAssembly>
</assemblyBinding></runtime></configuration>

MissingMethodException in FsCheck

System.MissingMethodException: Method 'Config.get_QuietOnSuccess' not found.
  at <StartupCode$Target-Tests>.$Target.Tests.Serialisation..cctor () <0x10f436ac0 + 0x002bf> in <filename unknown>:0
  --- End of inner exception stack trace ---
  at Target.Tests.Serialisation.get_roundtrip () <0x10f436a80 + 0x00010> in <filename unknown>:0
  at System.Reflection.MonoProperty.StaticGetterAdapterFrame[R] (System.Reflection.StaticGetter`1 getter, System.Object obj) <0x10d21f1c0 + 0x00012> in <filename unknown>:0
  at System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) <0x10d21f3b0 + 0x000d9> in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) <0x10d21f3b0 + 0x00117> in <filename unknown>:0
  at [email protected] (System.Reflection.MemberInfo m) <0x10f435540 + 0x0030d> in <filename unknown>:0
  at Microsoft.FSharp.Collections.ListModule.chooseAllAcc[a,b] (Microsoft.FSharp.Core.FSharpFunc`2 f, Microsoft.FSharp.Collections.FSharpList`1 xs, Microsoft.FSharp.Collections.FSharpList`1 acc) <0x10f433f40 + 0x0005c> in <filename unknown>:0
  at Microsoft.FSharp.Collections.ListModule.Choose[T,TResult] (Microsoft.FSharp.Core.FSharpFunc`2 chooser, Microsoft.FSharp.Collections.FSharpList`1 list) <0x10f433e70 + 0x00092> in <filename unknown>:0
  at Fuchu.Impl.testFromMember (System.Reflection.MemberInfo m) <0x10f432050 + 0x000dd> in <filename unknown>:0
  at [email protected] (System.Reflection.MemberInfo m) <0x10f432020 + 0x00018> in <filename unknown>:0
  at Microsoft.FSharp.Collections.IEnumerator+choose@202[TResult,T].System-Collections-IEnumerator-MoveNext () <0x10f42f1e0 + 0x000fd> in <filename unknown>:0
  at Microsoft.FSharp.Collections.SeqModule.ToList[T] (IEnumerable`1 source) <0x10f42e4d0 + 0x00156> in <filename unknown>:0
  at [email protected] (System.Type t) <0x10f42fcf0 + 0x0023f> in <filename unknown>:0
  at Microsoft.FSharp.Collections.IEnumerator+choose@202[TResult,T].System-Collections-IEnumerator-MoveNext () <0x10f42f1e0 + 0x000fd> in <filename unknown>:0
  at Microsoft.FSharp.Collections.SeqModule.ToList[T] (IEnumerable`1 source) <0x10f42e4d0 + 0x0026e> in <filename unknown>:0
  at Fuchu.Impl.testFromAssemblyWithFilter (Microsoft.FSharp.Core.FSharpFunc`2 typeFilter, System.Reflection.Assembly a) <0x10f42de00 + 0x000a9> in <filename unknown>:0
  at [email protected] (System.Reflection.Assembly a) <0x10f42ddc0 + 0x00025> in <filename unknown>:0
  at Fuchu.Tests.DefaultMainThisAssembly (System.String[] args) <0x10e1f9ac0 + 0x00049> in <filename unknown>:0

How to use the initializer only once for multiple tests?

open Fuchu

let clo f () = 
    printfn "Initializing..."
    let mem = 2 // Allocate some unmanaged resources (like GPU memory for example.)
    f mem
    printfn "Freeing..."

/// Applies a function to a value
let inline testFixture' setup (name, partialTest) = 
    testCase name (setup partialTest)

let test1 x = printfn "Doing something with that memory..."
let test2 x = printfn "Doing something else with that memory..." 
let test3 x = printfn "Third test that uses the memory..."
let testCombined x = test1 x; test2 x; test3 x // How do I get this to count as 3 tests instead of 1?
let tests = testFixture' clo ("3 tests",testCombined)
run tests

Alternatively, just using testFixture, is it possible to use the setup only once, pass the resulting parameters to the tests and dispose of it afterwards? To be honest this is quite a puzzler, and I have no idea how to deal with this. In XUnit or NUnit (assuming there weren't bugs making the adapter unable to find the tests) I would just use a fixture class.

With the example I found on the blog, the setup would have to be triggered each time for every test. I think there should be a middle ground between loading the thing every time and loading it only once outside of the test suite.

Any idea how?

add ability to customize default printers

"run" and "runParallel" customize TestPrinters.Default and use it to print outputs for failed and exceptions. It would be nice to provide a way to either customize TestPrinters.Default or allow run/runParallel take custom TestPrinters.

My goal is to have verbose printing and print information about passed tests.

It would also be nice to somehow print progress. Perhaps pass to BeforeRun # of test about to be run / # of tests total?

Add Fuchu pronunciation to README

Currently there is no pronunciation guide for "Fuchu". Is it like "Foo choo", "Fuh choo", "Fuhkoo", or "foo koo" or something entirely different .

Better formatting of output

As a tester,
When writing failing tests,
I want to quickly be able to see differences between expected and actual output
And I want to quickly see where there the test cases start and stop in the output.

Example output that takes times to parse:

when serialising MetadataRequest/single topic: Failed:
single topic
Expected: [|0uy; 0uy; 0uy; 1uy; 0uy; 6uy; 116uy; 111uy; 112uy; 105uy; 99uy; 49uy|]
Actual: [|0uy; 0uy; 0uy; 1uy; 116uy; 111uy; 112uy; 105uy; 99uy; 49uy|]
  g:\prg\Fuchu\Fuchu\Assertions.fs(8,1): <StartupCode$Fuchu>[email protected](String msg)
 (00:00:00.0090713)
when serialising MetadataRequest/three topics: Failed:
three topics
Expected: [|0uy; 0uy; 0uy; 3uy; 0uy; 3uy; 102uy; 111uy; 111uy; 0uy; 3uy; 98uy; 97uy; 114uy;
  0uy; 3uy; 98uy; 97uy; 122uy|]
Actual: [|0uy; 0uy; 0uy; 3uy; 102uy; 111uy; 111uy; 98uy; 97uy; 114uy; 98uy; 97uy; 122uy|]
  g:\prg\Fuchu\Fuchu\Assertions.fs(8,1): <StartupCode$Fuchu>[email protected](String msg)
 (00:00:00.0022625)
13 tests run: 11 passed, 0 ignored, 2 failed, 0 errored (00:00:00.0878414)
``

Config..ctor not found

Upgrading to latest Fuchu + FsCheck yields:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: Method 'Config..ctor' not found.
  at Suave.Tests.HttpVerbs.gets (Suave.SuaveConfig cfg) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/HttpVerbs.fs:22
  at at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr5/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.5/mcs/class/corlib/System.Reflection/MonoMethod.cs:230
  --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00069] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr5/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.5/mcs/class/corlib/System.Reflection/MonoMethod.cs:238
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr5/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.5/mcs/class/corlib/System.Reflection/MethodBase.cs:114
  at Suave.Tests.FuchuExtensions+testFromMemberWithParam@15-1[Suave.Web+SuaveConfig].Invoke (System.Reflection.MemberInfo m) [0x00064] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:23
  at Microsoft.FSharp.Collections.ListModule.chooseAllAcc[MemberInfo,Test] (Microsoft.FSharp.Core.FSharpFunc`2 f, Microsoft.FSharp.Collections.FSharpList`1 xs, Microsoft.FSharp.Collections.FSharpList`1 acc) [0x00019] in <filename unknown>:0
  at Microsoft.FSharp.Collections.ListModule.Choose[MemberInfo,Test] (Microsoft.FSharp.Core.FSharpFunc`2 chooser, Microsoft.FSharp.Collections.FSharpList`1 list) [0x00008] in <filename unknown>:0
  at Suave.Tests.FuchuExtensions.testFromMemberWithParam[SuaveConfig] (Suave.SuaveConfig param, System.Reflection.MemberInfo m) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:30
  at Suave.Tests.FuchuExtensions+testFromTypeWithParam@45-1[Suave.Web+SuaveConfig].Invoke (System.Reflection.MemberInfo m) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:45
  at Microsoft.FSharp.Collections.IEnumerator+choose@154[Fuchu.Test,System.Reflection.MemberInfo].System-Collections-IEnumerator-MoveNext () [0x00064] in <filename unknown>:0
  at Microsoft.FSharp.Collections.SeqModule.ToList[Test] (IEnumerable`1 source) [0x00047] in <filename unknown>:0
  at Suave.Tests.FuchuExtensions+testFromTypeWithParam@40[Suave.Web+SuaveConfig].Invoke (System.Type t) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:41
  at Microsoft.FSharp.Collections.IEnumerator+choose@154[Fuchu.Test,System.Type].System-Collections-IEnumerator-MoveNext () [0x00064] in <filename unknown>:0
  at Microsoft.FSharp.Collections.SeqModule.ToList[Test] (IEnumerable`1 source) [0x00047] in <filename unknown>:0
  at Suave.Tests.FuchuExtensions.testFromAssemblyWithFilterAndParam[SuaveConfig] (Microsoft.FSharp.Core.FSharpFunc`2 typeFilter, System.Reflection.Assembly a, Suave.SuaveConfig param) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:51
  at Suave.Tests.FuchuExtensions.testFromAssemblyWithParam[SuaveConfig] (System.Reflection.Assembly asm, Suave.SuaveConfig param) [0x00000] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:59
  at Suave.Tests.FuchuExtensions.defaultMainThisAssemblyWithParam[SuaveConfig] (Suave.SuaveConfig param, System.String[] args) [0x00002] in /Users/h/dev/suave/suave/src/Suave.Tests/FuchuExtensions.fs:64
  at Suave.Tests.Program.main (System.String[] args) [0x000e7] in /Users/h/dev/suave/suave/src/Suave.Tests/Program.fs:27

Semi-blocking for SuaveIO/suave#340 SuaveIO/suave#334 (can solve by downgrading FsCheck, I think)

Possible source of the error:

let fsCheckConfig = { Config.Default with Arbitrary = [ typeof<Arbs> ] }

// later:

    testPropertyWithConfig fsCheckConfig "200 OK returns equivalent" <| fun respStr ->
      (runWithConfig (OK respStr) |> req HttpMethod.GET "/hello" None) = respStr

Versions:

 GROUP Tests
 FRAMEWORK: NET45
 NUGET
   remote: https://nuget.org/api/v2
   specs:
     FsCheck (2.2.2)
       FSharp.Core (>= 3.1.2.5)
     FSharp.Charting (0.90.13)
     FSharp.Core (3.1.2.5)
     Fuchu (1.0.1)
       FSharp.Core (>= 3.1.2.1)
     Fuchu.FsCheck (1.0.1.0)
       FsCheck (>= 2.1.0)
       FSharp.Core (>= 3.1.2.5)
       Fuchu (>= 1.0.1.0)
     Fuchu.PerfUtil (1.0.1.0)
       FSharp.Core (>= 3.1.2.1)
       Fuchu (>= 1.0.1.0)
       PerfUtil (>= 0.1.8)
     Http.fs-prerelease (2.4.0)
       FSharp.Core (>= 3.1.2.1)
     PerfUtil (0.1.8)
     WebSocketSharp (1.0.3-rc9)

Has @fscheck an API breakage in a minor release? /cc @kurtschelfthout

Repro commit: SuaveIO/suave@c30f574

Build broken when using `build.sh`

OS X 10.10

./build.sh: line 3: wget: command not found
mv: rename nuget.exe to ./.nuget/NuGet.exe: No such file or directory
chmod: ./.nuget/NuGet.exe: No such file or directory
Downloading FAKE...
Cannot open assembly './.nuget/NuGet.exe': No such file or directory.
Cannot open assembly 'packages/FAKE/tools/FAKE.exe': No such file or directory.

Recommend: curl.

Structural equality bug (failure despite equality)

I have some code that creates a test case:

let encoding_equal<'a when 'a : equality> f_encode text expected (message : obj) =
  testCase text (fun () ->
    Assert.Equal(text, expected, f_encode (message :?> 'a)))

Getting failure like this:

Expected: {compression = Nope;
 key = seq [];
 value = seq [];}
Actual: {compression = Nope;
 key = seq [];
 value = seq [];}

Structure:

type Message =
  { compression : Compression
  ; key         : byte System.ArraySegment
  ; value       : byte System.ArraySegment }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.