def austrailia_test():
	domain = ["Red", "Green", "Blue"]
	
	variables = [
		Variable("WA", set(domain)),
		Variable("NT", set(domain)),
		Variable("SA", set(domain)),
		Variable("Q", set(domain)),
		Variable("NSW", set(domain)),
		Variable("V", set(domain)),
		Variable("T", set(domain))
	]

	constraints = [
		Constraint([variables[0], variables[1]], test_not_equal),
		Constraint([variables[0], variables[2]], test_not_equal),
		Constraint([variables[1], variables[2]], test_not_equal),
		Constraint([variables[1], variables[3]], test_not_equal),
		Constraint([variables[2], variables[3]], test_not_equal),
		Constraint([variables[2], variables[4]], test_not_equal),
		Constraint([variables[2], variables[5]], test_not_equal),
		Constraint([variables[3], variables[4]], test_not_equal),
		Constraint([variables[4], variables[5]], test_not_equal)
	]

	problem = ConstraintSatisfactionProblem(variables, constraints)
	return problem.solve()
def schedule_test():
	variables = [
		Variable("Event1", set([("6:00", 90), ("6:25", 90)])),
		Variable("Event2", set([("5:30", 60), ("11:00", 30)])),
		Variable("Event3", set([("5:10", 15), ("1:00", 30)])),
		Variable("Event4", set([("7:00", 60), ("4:30", 30)]))
	]

	constraints = [
		Constraint([variables[2], variables[3]], test_in_order, order=[variables[2], variables[3]]),
		# Constraint([variables[0], variables[1]], test_no_overlap),
		# Constraint([variables[0], variables[2]], test_no_overlap),
		# Constraint([variables[0], variables[3]], test_no_overlap),
		# Constraint([variables[1], variables[2]], test_no_overlap),
		# Constraint([variables[1], variables[3]], test_no_overlap),
		# Constraint([variables[2], variables[3]], test_no_overlap)
		Constraint(variables, test_no_overlap)
	]

	problem = ConstraintSatisfactionProblem(variables, constraints)
	return problem.solve()