// Path: src/main/java/org/gnubridge/core/deck/Ace.java
// public class Ace {
// 	public static Card of(Suit denomination) {
// 		return new Card("A", denomination);
// 	}
// 
// 	public static boolean isValueOf(Card card) {
// 		return card.getValue() == Card.strToIntValue("A");
// 	}
// 
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/Five.java
// public class Five {
// 	public static Card of(Suit denomination) {
// 		return new Card("5", denomination);
// 	}
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/Hearts.java
// public class Hearts extends Suit {
// 
// 	private static Hearts instance;
// 
// 	private Hearts() {
// 		super();
// 	}
// 	
// 	public static Hearts i() {
// 		if (instance == null) {
// 			instance = new Hearts();
// 		}
// 		return instance ;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "HEARTS";
// 	}
// 	
// 	@Override
// 	public String toDebugString() {
// 		return "Hearts.i()";
// 	}
// 
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/NoTrump.java
// public class NoTrump extends Trump {
// 
// 	private static NoTrump instance = new NoTrump();
// 
// 	private NoTrump() {
// 		super();
// 	}
// 	
// 	public static NoTrump i() {
// 		return instance ;
// 	}	
// 
// 	@Override
// 	public String toString() {
// 		return "NT";
// 	}
// 
// 	@Override
// 	public String toDebugString() {
// 		return "NoTrump.i()";
// 	}
// 
// }


import junit.framework.TestCase;
import org.gnubridge.core.deck.Ace;
import org.gnubridge.core.deck.Clubs;
import org.gnubridge.core.deck.Diamonds;
import org.gnubridge.core.deck.Five;
import org.gnubridge.core.deck.Four;
import org.gnubridge.core.deck.Hearts;
import org.gnubridge.core.deck.NoTrump;
import org.gnubridge.core.deck.Spades;
import org.gnubridge.core.deck.Three;
import org.gnubridge.core.deck.Two;
package org.gnubridge.core;



public class TrickTest extends TestCase {
	Trick tr;
	protected void setUp() {
		tr = new Trick(NoTrump.i());
	}
	public void testGetHighestCardSameColor() {
		tr.addCard(Four.of(Spades.i()), null);
		tr.addCard(Two.of(Spades.i()), null);
		Card expected = Ace.of(Spades.i());
		tr.addCard(expected, null);
		tr.addCard(Three.of(Spades.i()), null);
		assertEquals(expected, tr.getHighestCard());
	}

	public void testGetHighestUnmatchedColor() {
		tr.addCard(Two.of(Spades.i()), null);
// Path: src/main/java/org/gnubridge/core/deck/Ace.java
// public class Ace {
// 	public static Card of(Suit denomination) {
// 		return new Card("A", denomination);
// 	}
// 
// 	public static boolean isValueOf(Card card) {
// 		return card.getValue() == Card.strToIntValue("A");
// 	}
// 
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/Five.java
// public class Five {
// 	public static Card of(Suit denomination) {
// 		return new Card("5", denomination);
// 	}
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/Hearts.java
// public class Hearts extends Suit {
// 
// 	private static Hearts instance;
// 
// 	private Hearts() {
// 		super();
// 	}
// 	
// 	public static Hearts i() {
// 		if (instance == null) {
// 			instance = new Hearts();
// 		}
// 		return instance ;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "HEARTS";
// 	}
// 	
// 	@Override
// 	public String toDebugString() {
// 		return "Hearts.i()";
// 	}
// 
// }
// 
// Path: src/main/java/org/gnubridge/core/deck/NoTrump.java
// public class NoTrump extends Trump {
// 
// 	private static NoTrump instance = new NoTrump();
// 
// 	private NoTrump() {
// 		super();
// 	}
// 	
// 	public static NoTrump i() {
// 		return instance ;
// 	}	
// 
// 	@Override
// 	public String toString() {
// 		return "NT";
// 	}
// 
// 	@Override
// 	public String toDebugString() {
// 		return "NoTrump.i()";
// 	}
// 
// }


// Path: src/test/java/org/gnubridge/core/TrickTest.java
import junit.framework.TestCase;
import org.gnubridge.core.deck.Ace;
import org.gnubridge.core.deck.Clubs;
import org.gnubridge.core.deck.Diamonds;
import org.gnubridge.core.deck.Five;
import org.gnubridge.core.deck.Four;
import org.gnubridge.core.deck.Hearts;
import org.gnubridge.core.deck.NoTrump;
import org.gnubridge.core.deck.Spades;
import org.gnubridge.core.deck.Three;
import org.gnubridge.core.deck.Two;

package org.gnubridge.core;



public class TrickTest extends TestCase {
	Trick tr;
	protected void setUp() {
		tr = new Trick(NoTrump.i());
	}
	public void testGetHighestCardSameColor() {
		tr.addCard(Four.of(Spades.i()), null);
		tr.addCard(Two.of(Spades.i()), null);
		Card expected = Ace.of(Spades.i());
		tr.addCard(expected, null);
		tr.addCard(Three.of(Spades.i()), null);
		assertEquals(expected, tr.getHighestCard());
	}

	public void testGetHighestUnmatchedColor() {
		tr.addCard(Two.of(Spades.i()), null);
		tr.addCard(Ace.of(Hearts.i()), null);