Skip to content

Instantly share code, notes, and snippets.

View isidore's full-sized avatar

Llewellyn Falco isidore

View GitHub Profile
return Win()
|| Advantage()
|| ScoreNormal()
|| person2.ScoreOpponentHasntScored(person1)
|| person1.ScoreOpponentHasntScored(person2)
|| ScoreTie();
return Win()
?? Advantage()
?? ScoreNormal()
?? person2.ScoreOpponentHasntScored(person1)
?? person1.ScoreOpponentHasntScored(person2)
?? ScoreTie();
string result = null;
result = result.DoIfNull(Win);
result = result.DoIfNull(Advantage);
result = result.DoIfNull(ScoreNormal);
result = result.DoIfNull(ScorePerson1);
result = result.DoIfNull(ScorePerson2);
result = result.DoIfNull(ScoreTie);
return result;
public static T DoIfNull<T>(this T t, Func<T> f )
private IEnumerable<string> ProcessScores()
{
yield return Win();
yield return Advantage();
yield return ScoreNormal();
yield return person2.ScoreOpponentHasntScored(person1);
yield return person1.ScoreOpponentHasntScored(person2);
yield return ScoreTie();
throw new Exception("Unreachable code was executed");
}
return new Func<string>[]
{
Win,
Advantage,
ScoreNormal,
ScorePerson1,
ScorePerson2,
ScoreTie
}.FirstNonNull();
@isidore
isidore / leaking.cs
Created July 30, 2016 10:28
leaking
public string Advantage(string previousResult)
{
if (previousResult != null)
{
return previousResult;
}
@isidore
isidore / Passin.cs
Created July 30, 2016 10:24
Pass In
string result;
result = Win();
result = Advantage(result);
result = ScoreNormal(result);
result = ScorePerson1(result);
result = ScorePerson2(result);
result = ScoreTie(result);
return result;
@isidore
isidore / ifstructure.cs
Last active July 30, 2016 20:22
If structure
string result;
result = Win();
if (result != null)
{
return result;
}
result = Advantage();
if (result != null)
{
return result;
package com.spun.triangles.test;
import static org.junit.Assert.assertEquals;
import java.util.Random;
import org.junit.Test;
/**
* Theory based kata
package org.xp2015.smells;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;