Skip to content

Instantly share code, notes, and snippets.

@xpmatteo
xpmatteo / water-flow.hs
Created June 19, 2015 10:33
A solution to the water flow problem
data Tile = Rock | Air
type Stripe = [Tile]
type Heights = [Int]
type Water = Int
trimLeft :: Stripe -> Stripe
trimLeft [] = []
trimLeft (Air : xs) = trimLeft(xs)
trimLeft xs = xs
@xpmatteo
xpmatteo / gist:8317762
Last active December 1, 2017 10:05
Solution of the FizzBuzz problem in an OCP dojo
describe('fizz buzz',function(){
var self = this;
beforeEach(function(){
var threeChecker = new Checker(3, "Fizz");
var fiveChecker = new Checker(5, "Buzz");
var sevenChecker = new Checker(7, "Bang");
self.fizzBuzzer = new FizzBuzzer([threeChecker, fiveChecker, sevenChecker]);
});
it('Default is say the number',function(){
@xpmatteo
xpmatteo / gist:5243745
Created March 26, 2013 07:44
This is IMHO an improvement over Bobby Johnson test cases for the Gilded Rose Kata (https://github.com/NotMyself/GildedRose/blob/first_refactor/src/GildedRose.Tests/UpdateItemsTests.cs) Chief improvements: a) the duplication is factored in small nice methods. If the GildedRose API changes, we will have to change the test in one place, not hundre…
import static org.junit.Assert.*;
import org.junit.Test;
public class GildedRoseTest {
private GildedRose app;
@Test
public void at_the_end_of_each_day_our_system_lowers_both_values_for_every_item() {
@xpmatteo
xpmatteo / gist:1616428
Created January 15, 2012 16:56
Solution to Greed Ruby Koan
class Array
def occurrences_of(match)
self.select{ |number| match == number }.size
end
def delete_one(match)
for i in (0..size)
if match == self[i]
self.delete_at(i)