Skip to content

Instantly share code, notes, and snippets.

@Mahoney
Mahoney / BooleanTest.scala
Created September 24, 2012 21:58
Tests for Boolean Logic
package booleanlogictests
import booleanlogic.Conditional.if1
import booleanlogic.Boolean
import booleanlogic.false1
import booleanlogic.true1
import org.junit.Test
import scala.collection.mutable.MutableList
class BooleanTest {
@Mahoney
Mahoney / Boolean.scala
Created September 24, 2012 22:00
Boolean Logic in Pure Scala
package booleanlogic
sealed abstract class Boolean {
def ifTrue[T](doWhenTrue: => T): Option[T]
def &&(other: => Boolean): Boolean
def &(other: Boolean): Boolean
@Mahoney
Mahoney / BooleanTest.scala
Created September 24, 2012 22:18
Tests for Boolean Logic - 1st cut
import booleanlogic.Boolean
import booleanlogic.false1
import booleanlogic.true1
import org.junit.Test
class BooleanTest {
@Test def `equality`() {
assert(true1 == true1 )
assert(true1 != false1)
@Mahoney
Mahoney / Boolean.scala
Created September 24, 2012 22:20
Boolean Logic in Pure Scala - 1st cut
package booleanlogic
sealed abstract class Boolean {
def &(other: Boolean): Boolean
def |(other: Boolean): Boolean
def ^(other: Boolean): Boolean
def unary_! : Boolean
@Mahoney
Mahoney / BooleanTest.scala
Created September 24, 2012 22:26
Tests for Boolean Logic - 2nd cut
...
@Test def `shortcut or`() {
assert((true1 || true1) == true1 )
assert((true1 || false1) == true1 )
assert((false1 || true1) == true1 )
assert((false1 || false1) == false1)
}
@Test def `simple or left side true`() {
var evaluated = "not evaluated"
@Mahoney
Mahoney / Boolean.scala
Created September 24, 2012 22:28
Boolean Logic in Pure Scala - 2nd cut
sealed abstract class Boolean {
...
def &&(other: => Boolean): Boolean
def ||(other: => Boolean): Boolean
...
}
case object true1 extends Boolean {
...
@Mahoney
Mahoney / Boolean.scala
Created September 24, 2012 22:39
Boolean Logic in Pure Scala - 3rd cut
sealed abstract class Boolean {
...
def ifTrue[T](doWhenTrue: => T): Option[T]
...
}
case object true1 extends Boolean {
...
override def ifTrue[T](doWhenTrue: => T): Option[T] = Some(doWhenTrue)
...
@Mahoney
Mahoney / BooleanTest.scala
Created September 24, 2012 22:40
Tests for Boolean Logic - 3rd cut
@Test def `if else if true`() {
val result = if1 (true1) {
"trueresult"
} else1 {
throw new IllegalStateException
}
assert(result == "trueresult")
}
@Mahoney
Mahoney / package.scala
Created September 28, 2012 15:43
Useful Package Level Implicits for Option and ::
package object sandbox {
type ?[A] = Option[A]
// val a: ?[Int] = 1 Some(1): ?[Int]
implicit def instanceToOption[A](instance: A): ?[A] = Option(instance)
def Some[A](instance: A): ?[A] = Option(instance)
// val a: ?[List[Int]] = None None: ?[List[Int]]
// val b = a(_.sum) None: ?[Int]
@Mahoney
Mahoney / HttpClientConcurrentPerformanceTest.java
Last active December 11, 2015 11:48
Micro benchmark for comparing performance characteristics of different strategies for using an HttpClient to do concurrent requests to the same server.
import com.github.tomakehurst.wiremock.WireMockServer;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.PoolingClientConnectionManager;
import org.apache.http.params.BasicHttpParams;