Advertisement
JeffGrigg

IntersectingTrianglesTest

Jul 22nd, 2018
519
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 6.24 KB | None | 0 0
  1. // original facebook post:
  2. // https://www.facebook.com/groups/javaharikrishna/permalink/1596271237165097/
  3.  
  4. // Implementation class:
  5. // https://pastebin.com/xjyyaBm0
  6.  
  7. // Related "Six Sided Star" classes:
  8. // Implementation:
  9. // https://pastebin.com/7g2keFVE
  10. // Tests:
  11. // https://pastebin.com/zmdNaJ7k
  12.  
  13. import junit.framework.TestCase;
  14.  
  15. import java.io.ByteArrayOutputStream;
  16. import java.io.PrintStream;
  17.  
  18. public class IntersectingTrianglesTest extends TestCase {
  19.  
  20.     public void test0() {
  21.         assertOutputEquals(new String[] {
  22.                 // No output at all.
  23.         }, 0);
  24.     }
  25.  
  26.     public void test1() {
  27.         assertOutputEquals(new String[] {
  28.                 "*",
  29.         }, 1);
  30.     }
  31.  
  32.     public void test2() {
  33.         assertOutputEquals(new String[] {
  34.                 " *",
  35.                 "* *",
  36.                 " *",
  37.         }, 2);
  38.     }
  39.  
  40.     public void test4() {
  41.         assertOutputEquals(new String[] {
  42.                 "   *",
  43.                 "* * * *",
  44.                 " *   *",
  45.                 "* * * *",
  46.                 "   *",
  47.         }, 4);
  48.     }
  49.  
  50.     public void test5() {
  51.         assertOutputEquals(new String[] {
  52.                 "    *",
  53.                 "   * *",
  54.                 "* * * * *",
  55.                 " *     *",
  56.                 "* * * * *",
  57.                 "   * *",
  58.                 "    *",
  59.         }, 5);
  60.     }
  61.  
  62.     public void test7() {
  63.         assertOutputEquals(new String[] {
  64.                 "      *",
  65.                 "     * *",
  66.                 "* * * * * * *",
  67.                 " * *     * *",
  68.                 "  *       *",
  69.                 " * *     * *",
  70.                 "* * * * * * *",
  71.                 "     * *",
  72.                 "      *",
  73.         }, 7);
  74.     }
  75.  
  76.     public void test10() {
  77.         assertOutputEquals(new String[] {
  78.                 "         *",
  79.                 "        * *",
  80.                 "       *   *",
  81.                 "* * * * * * * * * *",
  82.                 " *   *       *   *",
  83.                 "  * *         * *",
  84.                 "   *           *",
  85.                 "  * *         * *",
  86.                 " *   *       *   *",
  87.                 "* * * * * * * * * *",
  88.                 "       *   *",
  89.                 "        * *",
  90.                 "         *",
  91.         }, 10);
  92.     }
  93.  
  94.     public void test13() {
  95.         assertOutputEquals(new String[] {
  96.                 "            *",
  97.                 "           * *",
  98.                 "          *   *",
  99.                 "         *     *",
  100.                 "* * * * * * * * * * * * *",
  101.                 " *     *         *     *",
  102.                 "  *   *           *   *",
  103.                 "   * *             * *",
  104.                 "    *               *",
  105.                 "   * *             * *",
  106.                 "  *   *           *   *",
  107.                 " *     *         *     *",
  108.                 "* * * * * * * * * * * * *",
  109.                 "         *     *",
  110.                 "          *   *",
  111.                 "           * *",
  112.                 "            *",
  113.         }, 13);
  114.     }
  115.  
  116.     public void test16() {
  117.         assertOutputEquals(new String[] {
  118.                 "               *",
  119.                 "              * *",
  120.                 "             *   *",
  121.                 "            *     *",
  122.                 "           *       *",
  123.                 "* * * * * * * * * * * * * * * *",
  124.                 " *       *           *       *",
  125.                 "  *     *             *     *",
  126.                 "   *   *               *   *",
  127.                 "    * *                 * *",
  128.                 "     *                   *",
  129.                 "    * *                 * *",
  130.                 "   *   *               *   *",
  131.                 "  *     *             *     *",
  132.                 " *       *           *       *",
  133.                 "* * * * * * * * * * * * * * * *",
  134.                 "           *       *",
  135.                 "            *     *",
  136.                 "             *   *",
  137.                 "              * *",
  138.                 "               *",
  139.         }, 16);
  140.     }
  141.  
  142.     public void testNeg1() {
  143.         try {
  144.             callImplementationBeingTested(-1);
  145.             fail("Expected IllegalArgumentException.");
  146.         } catch (final IllegalArgumentException ex) {
  147.             assertEquals("Argument value for 'triangleLines' must not be negative.", ex.getMessage());
  148.         }
  149.     }
  150.  
  151.     public void testNegativeMinValue() {
  152.         try {
  153.             callImplementationBeingTested(Integer.MIN_VALUE);
  154.             fail("Expected IllegalArgumentException.");
  155.         } catch (final IllegalArgumentException ex) {
  156.         }
  157.     }
  158.  
  159.  
  160.     private static void assertOutputEquals(final String[] expectedOutputLines, final int triangleLines) {
  161.         final PrintStream oldSystemOut = System.out;
  162.         final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  163.         final PrintStream printStream = new PrintStream(byteArrayOutputStream);
  164.         System.setOut(printStream);
  165.         try {
  166.             callImplementationBeingTested(triangleLines);
  167.         } finally {
  168.             System.setOut(oldSystemOut);
  169.             printStream.close();
  170.         }
  171.  
  172.         final String expectedOutput = buildExpectedOutputString(expectedOutputLines);
  173.         assertEquals(expectedOutput, byteArrayOutputStream.toString());
  174.     }
  175.  
  176.     private static void callImplementationBeingTested(final int triangleLines) {
  177.         // Implementation being tested:
  178.         IntersectingTriangles.printIntersectingTriangles(triangleLines);
  179.     }
  180.  
  181.     private static void callImplementationBeingTested(final int triangleLines, final int topLines) {
  182.         // Implementation being tested:
  183.         IntersectingTriangles.printIntersectingTriangles(triangleLines, topLines);
  184.     }
  185.  
  186.     private static String buildExpectedOutputString(String[] expectedOutputLines) {
  187.         final StringBuilder expectedOutputStringBuilder = new StringBuilder();
  188.         for (String line : expectedOutputLines) {
  189.  
  190.             expectedOutputStringBuilder.append(line);
  191.  
  192.             final String NL = System.lineSeparator(); // Local system newline
  193.  
  194.             expectedOutputStringBuilder.append(NL);
  195.         }
  196.         return expectedOutputStringBuilder.toString();
  197.     }
  198.  
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement