Skip to content

Instantly share code, notes, and snippets.

View ploeh's full-sized avatar

Mark Seemann ploeh

View GitHub Profile
@ploeh
ploeh / InputParseCommandTest.cs
Created August 22, 2011 13:40
Inline auto-data
[Theory]
[InlineAutoHostData(null)]
[InlineAutoHostData("")]
[InlineAutoHostData]
public void ExecuteUnknownInputCorrectlyInvokesOnUnknown(string unknownInput, Action dummyOnExit)
{
var verified = false;
var sut = new InputParseCommand(dummyOnExit, i => verified = i == unknownInput);
sut.Execute(unknownInput);
Assert.True(verified);
@ploeh
ploeh / gist:1185766
Created September 1, 2011 09:08
Configuring ordered named sequences in Unity
container.RegisterType<IMeal, Meal>(
new InjectionConstructor(
new ResolvedArrayParameter<ICourse>(
new ResolvedParameter<ICourse>("entrée"),
new ResolvedParameter<ICourse>("mainCourse"),
new ResolvedParameter<ICourse>("dessert"))));
public class ImmutableXYZ {
public ImmutableXYZ() : this("", 0, -1) {
}
private ImmutableXYZ(string abc, int def, int haha)
{
this.abc = abc;
this.def = def;
this.haha = haha;
}
@ploeh
ploeh / gist:9702672
Created March 22, 2014 07:30
ASP.NET Web API 2 ApiController AutoFixture Customization
type ApiControllerCustomization() =
let controllerSpecification =
{ new IRequestSpecification with
member this.IsSatisfiedBy request =
match request with
| :? Type as t when typeof<ApiController>.IsAssignableFrom t ->
true
| _ -> false }
interface ICustomization with
@ploeh
ploeh / gist:4f873315fc556f7672f1
Created May 15, 2015 18:37
F# readability test.
let nerdCapsToKebabCase (text : string) =
let charToString index c =
let s = c.ToString().ToLower()
match index, Char.IsUpper c with
| 0, _ -> s
| _, true -> "-" + s
| _ -> s
text |> Seq.mapi charToString |> String.concat ""
@ploeh
ploeh / Safefs.hs
Last active March 29, 2022 18:37
Safe head function using Either in Haskell
safeHead [] = Left "The list was empty. No head is available."
safeHead xs = Right . head $ xs
-- Sample usage from GHCI:
--
-- *Safefs> safeHead [1..3]
-- Right 1
-- *Safefs> safeHead [7]
-- Right 7
-- *Safefs> safeHead [2, 3]
@ploeh
ploeh / ApiModel.hs
Last active December 24, 2022 22:54
Handling a reservation request in Haskell. Proof of concept
module ApiModel where
import Data.Time (ZonedTime(..), parseTimeM, defaultTimeLocale, iso8601DateFormat)
data ReservationRendition = ReservationRendition
{ rDate :: String
, rName :: String
, rEmail :: String
, rQuantity :: Int }
deriving (Eq, Show, Read)
@ploeh
ploeh / Tuple2.fs
Last active December 2, 2022 14:11
Helpful functions for working with pairs in F#
module Tuple2
let replicate x = x, x
let curry f x y = f (x, y)
let uncurry f (x, y) = f x y
let swap (x, y) = (y, x)
module Main where
import Control.Monad.Eff (Eff)
import Data.Maybe (fromJust)
import Data.Tuple (Tuple(..))
import Graphics.Canvas (CANVAS, Context2D, closePath, getCanvasElementById,
getContext2D, lineTo, moveTo, setLineWidth, strokePath)
import Math (cos, pi, sin)
import Partial.Unsafe (unsafePartial)
import Prelude (Unit, bind, discard, negate, void, ($), (*), (+), (-), (/), (<=))
@ploeh
ploeh / FractalTree.fsx
Created June 6, 2017 11:22
Fractal tree in F#. Our solution from dojo in Copenhagen, 2017-05-30
open System
open System.Drawing
open System.Windows.Forms
// Create a form to display the graphics
let width, height = 500, 500
let form = new Form(Width = width, Height = height)
let box = new PictureBox(BackColor = Color.White, Dock = DockStyle.Fill)
let image = new Bitmap(width, height)
let graphics = Graphics.FromImage(image)