Programming Resources
For Fun and Learning
Charles Cusack
Computer Science
Hope College
main

Python
C++
JAVA
PHP
SQL

Assignments


AlgorithmTests


ContainsTriangleTests.java

package student.algorithms.tests;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import cusack.hcg.database.PlayablePuzzle;
import cusack.hcg.graph.algorithm.standard.tests.DataSourceAbstractTest;
import cusack.hcg.model.PuzzleInstance;
import cusack.hcg.model.PuzzleInstanceFactory;
//import my.algorithms.ContainsTriangle;
import student.algorithms.ContainsTriangle;

public class ContainsTriangleTests extends DataSourceAbstractTest {
	public ContainsTriangleTests() {
		super();
	}

	@Test
	public void testC4() {
		testPebblingNumbers(659, "false");
	}

	@Test
	public void testPeterson() {
		testPebblingNumbers(682, "false");
	}
	@Test
	public void testRalphie() {
		testPebblingNumbers(641, "false");
	}
	
	@Test
	public void testForTriangles() {
		testPebblingNumbers(1476, "true");
	}

	@Test
	public void testC3() {
		testPebblingNumbers(1235, "true");
	}

	@Test
	public void testKemel() {
		testPebblingNumbers(124, "true");
	}

	@Test
	public void testLemkexP2() {
		testPebblingNumbers(1349, "true");
	}

	@Test
	public void testUBull() {
		testPebblingNumbers(1240, "true");
	}

	@Test
	public void testK5() {
		testPebblingNumbers(677, "true");
	}

	@Test
	public void testU_K3_4() {
		testPebblingNumbers(1254, "false");
	}

	@Test
	public void test_QM_Lemke() {
		testPebblingNumbers(1412, "true");
	}

	@Test
	public void testMaybeNot() {
		testPebblingNumbers(121, "true");
	}
	@Test
	public void testPowerz() {
		testPebblingNumbers(1335, "true");
	}

	@Test
	public void test6DudesAndFriend() {
		testPebblingNumbers(139, "true");
	}

	@Test
	public void testTestingTriangles1() {
		testPebblingNumbers(1470, "true");
	}

	@Test
	public void testTestingTriangles2() {
		testPebblingNumbers(1471, "true");
	}
	@Test
	public void testTestingTriangles3() {
		testPebblingNumbers(1472, "true");
	}
	@Test
	public void testTestingTriangles4() {
		testPebblingNumbers(1473, "true");
	}
	@Test
	public void testTestingTriangles5() {
		testPebblingNumbers(1474, "true");
	}
	@Test
	public void testTestingTriangles6() {
		testPebblingNumbers(1475, "false");
	}

	@Test
	public void testSmallOnes() {
		testPebblingNumbers(131, "true");
	}

	@Test
	public void testHypercube() {
		testPebblingNumbers(108, "false");
	}
	@Test
	public void testRedundaTree() {
		testPebblingNumbers(110, "false");
	}
	@Test
	public void testUpOrDown() {
		testPebblingNumbers(115, "false");
	}

	@Test
	public void testLemekMekel() {
		testPebblingNumbers(127, "true");
	}
	@Test
	public void testBalaban() {
		testPebblingNumbers(647, "false");
	}


	@Test
	public void testCrossoverXOTGadget() {
		testPebblingNumbers(1149, "false");
	}
	@Test
	public void testCactusTrickyMerge() {
		testPebblingNumbers(722, "true");
	}

	@Test
	public void test3SATThingy_Version2() {
		testPebblingNumbers(1171, "false");
	}

	@Test
	public void testWebOfLies3() {
		testPebblingNumbers(249, "true");
	}

	// Helper method.
	private void testPebblingNumbers(int puzzle_id, String expectedResult) {
		System.out.println("------------------------------");

		PlayablePuzzle pp = ds.getPuzzle(puzzle_id);
		PuzzleInstance pi = PuzzleInstanceFactory.createPuzzleInstance(pp);

		System.out.print("Running on ");
		String name = pi.getPuzzleInstanceName();
		name = name.substring(name.lastIndexOf(".") + 1);
		System.out.print(name);
		System.out.print("  : ");
		System.out.print(pp.getName());
		System.out.print("  (ID ");
		System.out.print(puzzle_id);
		System.out.println(")");

		ContainsTriangle algorithm = new ContainsTriangle();

		algorithm.setProblemData(pi);
		long start = System.nanoTime();
		algorithm.runAlgorithm();
		long end = System.nanoTime();
		elapsedTime += (end - start);
		assertEquals(expectedResult.trim(), algorithm.getResult().trim());
		System.out.println("  Test passed!");
		System.out.println("  time: " + (end - start) / 1000000 + " milliseconds");
	}
}