Skip to content

Instantly share code, notes, and snippets.

Avatar

Mark Seemann ploeh

View GitHub Profile
View InputParseCommandTest.cs
[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 Sep 1, 2011
Configuring ordered named sequences in Unity
View gist:1185766
container.RegisterType<IMeal, Meal>(
new InjectionConstructor(
new ResolvedArrayParameter<ICourse>(
new ResolvedParameter<ICourse>("entrée"),
new ResolvedParameter<ICourse>("mainCourse"),
new ResolvedParameter<ICourse>("dessert"))));
View KeepImmutableSanity.cs
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 Mar 22, 2014
ASP.NET Web API 2 ApiController AutoFixture Customization
View gist:9702672
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
View gist:4f873315fc556f7672f1
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 Aug 6, 2018
Safe head function using Either in Haskell
View Safefs.hs
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 Jun 22, 2020
Handling a reservation request in Haskell. Proof of concept
View ApiModel.hs
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 Sep 8, 2020
Helpful functions for working with pairs in F#
View Tuple2.fs
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)
View Main.purs
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 Jun 6, 2017
Fractal tree in F#. Our solution from dojo in Copenhagen, 2017-05-30
View FractalTree.fsx
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)
You can’t perform that action at this time.