// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidCombinationException.java
// public class InvalidCombinationException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = 884762124844706448L;
// 
// }
// 
// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidStateException.java
// public class InvalidStateException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = -7435119307025647318L;
// 
// }
// 
// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidTransitionException.java
// public class InvalidTransitionException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = 1848434169756515614L;
// 
// }


import org.junit.Assert;
import org.junit.Test;
import com.ghjansen.cas.core.exception.InvalidCombinationException;
import com.ghjansen.cas.core.exception.InvalidStateException;
import com.ghjansen.cas.core.exception.InvalidTransitionException;
		Assert.assertTrue(
				dimensionalRule.getTransitions().get(dimensionalWhiteState).get(0).equals(dimensionalTransition2));
	}

	@Test(expected = InvalidTransitionException.class)
	public void dimensionalRuleConstructorInvalidTransition() throws InvalidTransitionException {
		new DimensionalRule(null);
	}

	@Test
	public void dimensionalRuleGetNextState()
			throws InvalidStateException, InvalidCombinationException, InvalidTransitionException {
		final DimensionalState dimensionalBlackState = new DimensionalState("black", 0);
		final DimensionalState dimensionalWhiteState = new DimensionalState("white", 1);
		final DimensionalCombination dimensionalCombination0 = new DimensionalCombination(dimensionalBlackState,
				dimensionalBlackState, dimensionalBlackState);
		final DimensionalTransition dimensionalTransition0 = new DimensionalTransition(dimensionalCombination0,
				dimensionalWhiteState);
		final DimensionalCombination dimensionalCombination1 = new DimensionalCombination(dimensionalBlackState,
				dimensionalBlackState, dimensionalWhiteState);
		final DimensionalTransition dimensionalTransition1 = new DimensionalTransition(dimensionalCombination1,
				dimensionalBlackState);
		final DimensionalCombination dimensionalCombination2 = new DimensionalCombination(dimensionalWhiteState,
				dimensionalBlackState, dimensionalBlackState);
		final DimensionalTransition dimensionalTransition2 = new DimensionalTransition(dimensionalCombination2,
				dimensionalBlackState);
		final DimensionalRule dimensionalRule = new DimensionalRule(dimensionalTransition0, dimensionalTransition1,
				dimensionalTransition2);
		Assert.assertTrue(dimensionalRule.getTransition(dimensionalCombination0).equals(dimensionalTransition0));
		Assert.assertTrue(dimensionalRule.getTransition(dimensionalCombination1).equals(dimensionalTransition1));
// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidCombinationException.java
// public class InvalidCombinationException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = 884762124844706448L;
// 
// }
// 
// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidStateException.java
// public class InvalidStateException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = -7435119307025647318L;
// 
// }
// 
// Path: cas-core/src/main/java/com/ghjansen/cas/core/exception/InvalidTransitionException.java
// public class InvalidTransitionException extends Exception {
// 
//     /**
//      * Serialization management
//      */
//     private static final long serialVersionUID = 1848434169756515614L;
// 
// }


// Path: cas-core/src/test/java/com/ghjansen/cas/core/ca/RuleTest.java
import org.junit.Assert;
import org.junit.Test;
import com.ghjansen.cas.core.exception.InvalidCombinationException;
import com.ghjansen.cas.core.exception.InvalidStateException;
import com.ghjansen.cas.core.exception.InvalidTransitionException;

		Assert.assertTrue(
				dimensionalRule.getTransitions().get(dimensionalWhiteState).get(0).equals(dimensionalTransition2));
	}

	@Test(expected = InvalidTransitionException.class)
	public void dimensionalRuleConstructorInvalidTransition() throws InvalidTransitionException {
		new DimensionalRule(null);
	}

	@Test
	public void dimensionalRuleGetNextState()
			throws InvalidStateException, InvalidCombinationException, InvalidTransitionException {
		final DimensionalState dimensionalBlackState = new DimensionalState("black", 0);
		final DimensionalState dimensionalWhiteState = new DimensionalState("white", 1);
		final DimensionalCombination dimensionalCombination0 = new DimensionalCombination(dimensionalBlackState,
				dimensionalBlackState, dimensionalBlackState);
		final DimensionalTransition dimensionalTransition0 = new DimensionalTransition(dimensionalCombination0,
				dimensionalWhiteState);
		final DimensionalCombination dimensionalCombination1 = new DimensionalCombination(dimensionalBlackState,
				dimensionalBlackState, dimensionalWhiteState);
		final DimensionalTransition dimensionalTransition1 = new DimensionalTransition(dimensionalCombination1,
				dimensionalBlackState);
		final DimensionalCombination dimensionalCombination2 = new DimensionalCombination(dimensionalWhiteState,
				dimensionalBlackState, dimensionalBlackState);
		final DimensionalTransition dimensionalTransition2 = new DimensionalTransition(dimensionalCombination2,
				dimensionalBlackState);
		final DimensionalRule dimensionalRule = new DimensionalRule(dimensionalTransition0, dimensionalTransition1,
				dimensionalTransition2);
		Assert.assertTrue(dimensionalRule.getTransition(dimensionalCombination0).equals(dimensionalTransition0));
		Assert.assertTrue(dimensionalRule.getTransition(dimensionalCombination1).equals(dimensionalTransition1));
		Assert.assertTrue(dimensionalRule.getTransition(dimensionalCombination2).equals(dimensionalTransition2));