home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / JCLASS.BIN / KLG.JAR / jclass / table / ChainTest.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-12-05  |  11.4 KB  |  700 lines

  1. package jclass.table;
  2.  
  3. import java.io.PrintStream;
  4.  
  5. public class ChainTest {
  6.    private static Chain makeChain(int var0, int var1) {
  7.       Chain var2 = new Chain(var0);
  8.       var2.setValue(0, var0 - 1, var1);
  9.       return var2;
  10.    }
  11.  
  12.    public static boolean insdelmovTest() {
  13.       boolean var0 = false;
  14.  
  15.       try {
  16.          System.out.println("-->Starting Insert/Delete/Move Test");
  17.          System.out.println();
  18.          Chain var1 = new Chain(50);
  19.          var1.setValue(0, 49, 10);
  20.          System.out.println("Chain One: " + var1.toString());
  21.          Chain var2 = new Chain(20);
  22.          var2.setValue(0, 19, 100);
  23.          System.out.println("Chain Two: " + var2.toString());
  24.          Chain var3 = new Chain(1);
  25.          var3.setValue(0, 0, 5);
  26.          System.out.println("Chain Three: " + var3.toString());
  27.          System.out.println();
  28.          System.out.println("Add Chain 2 to Chain 1 at offset 23");
  29.          var1.insert(var2, 22);
  30.          System.out.println("Chain One: " + var1.toString());
  31.          System.out.println();
  32.          System.out.println("Remove items 20-25 from Chain 1, save scrap");
  33.          new Chain();
  34.          var1.delete(19, 24);
  35.          System.out.println("Chain One: " + var1.toString());
  36.          System.out.println();
  37.          System.out.println("Adding Chain 3 into Chain 1 at offset 50");
  38.          var1.insert(var3, 49);
  39.          System.out.println("Chain One: " + var1.toString());
  40.          System.out.println();
  41.          System.out.println("Moving items 45-52 to offset 2");
  42.          var1.move(44, 8, 1);
  43.          System.out.println("Chain One: " + var1.toString());
  44.          System.out.println("*** NEW TEST: Remove one item from Chain 1");
  45.          var1.delete(16, 16);
  46.          System.out.println("Chain One: " + var1.toString());
  47.          var0 = true;
  48.       } catch (Throwable var4) {
  49.          var4.printStackTrace();
  50.       }
  51.  
  52.       return var0;
  53.    }
  54.  
  55.    public static boolean appendTest() {
  56.       boolean var0 = false;
  57.  
  58.       try {
  59.          System.out.println("--->Starting Append Test");
  60.          System.out.println();
  61.          Chain var1 = new Chain(50);
  62.          var1.setValue(0, 49, 10);
  63.          System.out.println("Initial chain: " + var1.toString());
  64.          var1.append(50);
  65.          System.out.println("1-cell:" + var1.toString());
  66.          var1.append(10);
  67.          System.out.println("1-cell:" + var1.toString());
  68.          var1.append(10);
  69.          System.out.println("1-cell:" + var1.toString());
  70.          var1.append(40);
  71.          System.out.println("Added 1-cell runs of 50, 10, 10, 40");
  72.          System.out.println("Chain: " + var1.toString());
  73.          System.out.println();
  74.          Chain var2 = new Chain();
  75.          System.out.println("Empty chain: " + var2.toString());
  76.          var2.append(10);
  77.          System.out.println("One run of 10?: " + var2.toString());
  78.          var2.append(40);
  79.          System.out.println("Two runs - right order?: " + var2.toString());
  80.          var0 = true;
  81.       } catch (Throwable var3) {
  82.          var3.printStackTrace();
  83.       }
  84.  
  85.       return var0;
  86.    }
  87.  
  88.    static Chain makeFunkyChain() {
  89.       Chain var0 = new Chain(50);
  90.       var0.setValue(0, 49, 25);
  91.       Chain var1 = new Chain(10);
  92.       var1.setValue(0, 9, 30);
  93.       var0.insert(var1, 20);
  94.       return var0;
  95.    }
  96.  
  97.    static Chain makeSimpleChain() {
  98.       Chain var0 = new Chain(10);
  99.       var0.setValue(0, 9, 10);
  100.       Chain var1 = new Chain(10);
  101.       var1.setValue(0, 9, 20);
  102.       var0.insert(var1, 10);
  103.       var1 = new Chain(10);
  104.       var1.setValue(0, 9, 10);
  105.       var0.insert(var1, 20);
  106.       return var0;
  107.    }
  108.  
  109.    static Chain makeInsertChain() {
  110.       Chain var0 = new Chain(5);
  111.       var0.setValue(0, 4, 10);
  112.       Chain var1 = new Chain(5);
  113.       var1.setValue(0, 4, 20);
  114.       var0.insert(var1, 5);
  115.       var1 = new Chain(5);
  116.       var1.setValue(0, 4, 10);
  117.       var0.insert(var1, 10);
  118.       return var0;
  119.    }
  120.  
  121.    public static boolean deleteRunTest() {
  122.       boolean var0 = false;
  123.  
  124.       try {
  125.          System.out.println("---> Starting Delete Test");
  126.          Chain var1 = new Chain();
  127.          var1.delete(1, 1);
  128.          int[] var2 = new int[]{-1, 61, 0, 59};
  129.          int[] var3 = new int[]{4, 4, -1, 61};
  130.  
  131.          for(int var4 = 0; var4 < var3.length; ++var4) {
  132.             try {
  133.                System.out.println("Testing (" + var2[var4] + "," + var3[var4] + ")");
  134.                Chain var5 = new Chain(50);
  135.                var5.setValue(0, 49, 25);
  136.                Chain var6 = new Chain(10);
  137.                var6.setValue(0, 9, 30);
  138.                var5.insert(var6, 20);
  139.                var5.delete(var2[var4], var3[var4]);
  140.                System.out.println("ERROR HANDLING PROBLEM");
  141.             } catch (ArrayIndexOutOfBoundsException var11) {
  142.                System.out.println("Error caught for (" + var2[var4] + "," + var3[var4] + ")");
  143.             }
  144.          }
  145.  
  146.          Chain var13 = new Chain();
  147.          Chain var14 = new Chain(50);
  148.          var14.setValue(0, 49, 25);
  149.          Chain var7 = new Chain(10);
  150.          var7.setValue(0, 9, 30);
  151.          var14.insert(var7, 20);
  152.          System.out.println("Delete with no change to # of runs");
  153.          System.out.println("Before: " + var14.toString());
  154.          var14.delete(22, 26);
  155.          System.out.println("After: " + var14.toString());
  156.          System.out.println("Scraps: " + var13.toString());
  157.          var7 = new Chain(50);
  158.          var7.setValue(0, 49, 25);
  159.          Chain var8 = new Chain(10);
  160.          var8.setValue(0, 9, 30);
  161.          var7.insert(var8, 20);
  162.          var8 = new Chain(5);
  163.          var8.setValue(0, 4, 70);
  164.          var7.insert(var8, 2);
  165.          System.out.println("Delete with change to # of runs");
  166.          System.out.println("Before: " + var7.toString());
  167.          var7.delete(2, 6);
  168.          System.out.println("After: " + var7.toString());
  169.          System.out.println("Scraps: " + var13.toString());
  170.          var8 = new Chain(50);
  171.          var8.setValue(0, 49, 25);
  172.          Chain var9 = new Chain(10);
  173.          var9.setValue(0, 9, 30);
  174.          var8.insert(var9, 20);
  175.          var9 = new Chain(5);
  176.          var9.setValue(0, 4, 70);
  177.          var8.insert(var9, 2);
  178.          System.out.println("Delete with change to # of runs");
  179.          System.out.println("Before: " + var8.toString());
  180.          var8.delete(2, 5);
  181.          System.out.println("After: " + var8.toString());
  182.          System.out.println("Scraps: " + var13.toString());
  183.          var9 = new Chain(50);
  184.          var9.setValue(0, 49, 25);
  185.          Chain var10 = new Chain(10);
  186.          var10.setValue(0, 9, 30);
  187.          var9.insert(var10, 20);
  188.          var10 = new Chain(5);
  189.          var10.setValue(0, 4, 70);
  190.          var9.insert(var10, 2);
  191.          System.out.println("Same as previous case - don't save scraps");
  192.          System.out.println("Before: " + var9.toString());
  193.          var9.delete(2, 5);
  194.          System.out.println("After: " + var9.toString());
  195.          var0 = true;
  196.       } catch (Throwable var12) {
  197.          var12.printStackTrace();
  198.       }
  199.  
  200.       return var0;
  201.    }
  202.  
  203.    public static boolean getRunLenSumTest() {
  204.       boolean var0 = false;
  205.  
  206.       try {
  207.          System.out.println("---> Starting Run Length/Sum Test");
  208.          Chain var1 = new Chain(50);
  209.          var1.setValue(0, 49, 25);
  210.          Chain var2 = new Chain(10);
  211.          var2.setValue(0, 9, 30);
  212.          var1.insert(var2, 20);
  213.          Chain var4 = var1;
  214.          var2 = new Chain(5);
  215.          var2.setValue(0, 4, 999);
  216.          var1.insert(var2, 30);
  217.          var2 = new Chain(1);
  218.          var2.setValue(0, 0, 677);
  219.          var1.insert(var2, 32);
  220.          var2 = new Chain(30);
  221.          var2.setValue(0, 29, 1);
  222.          var1.insert(var2, 50);
  223.          System.out.println("Chain is: " + var1.toString());
  224.  
  225.          for(int var8 = 0; var8 < 100; ++var8) {
  226.             System.out.println("Cell " + var8 + " length=" + var4.getValue(var8) + ", sum=" + var4.getPosition(var8));
  227.          }
  228.  
  229.          var0 = true;
  230.       } catch (Throwable var3) {
  231.          var3.printStackTrace();
  232.       }
  233.  
  234.       return var0;
  235.    }
  236.  
  237.    public static boolean insertChainTest() {
  238.       boolean var0 = false;
  239.  
  240.       try {
  241.          System.out.println("---> Starting Insert Test");
  242.          System.out.println("Testing no-runs case");
  243.  
  244.          try {
  245.             Chain var1 = new Chain();
  246.             Chain var2 = new Chain();
  247.             var1.insert(var2, 2);
  248.             System.out.println("ERROR HANDLING PROBLEM");
  249.          } catch (ArrayIndexOutOfBoundsException var11) {
  250.             System.out.println("Proper error handling for bad insert");
  251.          }
  252.  
  253.          Chain var13 = new Chain(10);
  254.          var13.setValue(0, 9, 100);
  255.          System.out.println("Testing null insertion chain case");
  256.          var13.insert((Chain)null, 2);
  257.          int[] var14 = new int[]{-1, 61};
  258.          Chain var3 = new Chain(10);
  259.          var3.setValue(0, 9, 20);
  260.          var3 = var3;
  261.  
  262.          for(int var4 = 0; var4 < var14.length; ++var4) {
  263.             try {
  264.                System.out.println("Testing (" + var14[var4] + ")");
  265.                Chain var5 = new Chain(50);
  266.                var5.setValue(0, 49, 25);
  267.                Chain var6 = new Chain(10);
  268.                var6.setValue(0, 9, 30);
  269.                var5.insert(var6, 20);
  270.                System.out.println(var5.toString());
  271.                var5.insert(var3, var14[var4]);
  272.                System.out.println("ERROR HANDLING PROBLEM");
  273.             } catch (ArrayIndexOutOfBoundsException var10) {
  274.                System.out.println("Error caught for (" + var14[var4] + ")");
  275.                ((Throwable)var10).printStackTrace();
  276.             }
  277.          }
  278.  
  279.          System.out.println("Testing insert cases");
  280.          System.out.println("*** Testing no new runs cases");
  281.          Chain var26 = new Chain(10);
  282.          var26.setValue(0, 9, 10);
  283.          Chain var7 = new Chain(10);
  284.          var7.setValue(0, 9, 20);
  285.          var26.insert(var7, 10);
  286.          var7 = new Chain(10);
  287.          var7.setValue(0, 9, 10);
  288.          var26.insert(var7, 20);
  289.          System.out.println("Chain for insert tests: " + var26.toString());
  290.          Chain var27 = new Chain(5);
  291.          var27.setValue(0, 4, 10);
  292.          var26.insert(var27, 10);
  293.          System.out.println("Merge start case: " + var26.toString());
  294.          var26 = new Chain(10);
  295.          var26.setValue(0, 9, 10);
  296.          var7 = new Chain(10);
  297.          var7.setValue(0, 9, 20);
  298.          var26.insert(var7, 10);
  299.          var7 = new Chain(10);
  300.          var7.setValue(0, 9, 10);
  301.          var26.insert(var7, 20);
  302.          Chain var29 = new Chain(5);
  303.          var29.setValue(0, 4, 20);
  304.          var26.insert(var29, 10);
  305.          System.out.println("Merge left case: " + var26.toString());
  306.          var26 = new Chain(10);
  307.          var26.setValue(0, 9, 10);
  308.          var7 = new Chain(10);
  309.          var7.setValue(0, 9, 20);
  310.          var26.insert(var7, 10);
  311.          var7 = new Chain(10);
  312.          var7.setValue(0, 9, 10);
  313.          var26.insert(var7, 20);
  314.          Chain var31 = new Chain(5);
  315.          var31.setValue(0, 4, 10);
  316.          var26.insert(var31, 29);
  317.          System.out.println("Merge end case: " + var26.toString());
  318.          var26 = new Chain(10);
  319.          var26.setValue(0, 9, 10);
  320.          var7 = new Chain(10);
  321.          var7.setValue(0, 9, 20);
  322.          var26.insert(var7, 10);
  323.          var7 = new Chain(10);
  324.          var7.setValue(0, 9, 10);
  325.          var26.insert(var7, 20);
  326.          Chain var33 = new Chain(5);
  327.          var33.setValue(0, 4, 20);
  328.          var26.insert(var33, 19);
  329.          System.out.println("Merge right case: " + var26.toString());
  330.          var26 = new Chain(10);
  331.          var26.setValue(0, 9, 10);
  332.          var7 = new Chain(10);
  333.          var7.setValue(0, 9, 20);
  334.          var26.insert(var7, 10);
  335.          var7 = new Chain(10);
  336.          var7.setValue(0, 9, 10);
  337.          var26.insert(var7, 20);
  338.          Chain var35 = new Chain(5);
  339.          var35.setValue(0, 4, 20);
  340.          var26.insert(var35, 15);
  341.          System.out.println("Merge both case: " + var26.toString());
  342.          var26 = new Chain(10);
  343.          var26.setValue(0, 9, 10);
  344.          var7 = new Chain(10);
  345.          var7.setValue(0, 9, 20);
  346.          var26.insert(var7, 10);
  347.          var7 = new Chain(10);
  348.          var7.setValue(0, 9, 10);
  349.          var26.insert(var7, 20);
  350.          Chain var37 = new Chain(5);
  351.          var37.setValue(0, 4, 10);
  352.          var7 = new Chain(5);
  353.          var7.setValue(0, 4, 20);
  354.          var37.insert(var7, 5);
  355.          var26.insert(var37, 10);
  356.          System.out.println("Multi-merge: " + var26.toString());
  357.          System.out.println("***Testing new runs cases");
  358.          var7 = new Chain(5);
  359.          var7.setValue(0, 4, 10);
  360.          Chain var8 = new Chain(5);
  361.          var8.setValue(0, 4, 20);
  362.          var7.insert(var8, 5);
  363.          var8 = new Chain(5);
  364.          var8.setValue(0, 4, 10);
  365.          var7.insert(var8, 10);
  366.          System.out.println("Insertion chain: " + var7.toString());
  367.          var8 = new Chain(10);
  368.          var8.setValue(0, 9, 10);
  369.          Chain var9 = new Chain(10);
  370.          var9.setValue(0, 9, 20);
  371.          var8.insert(var9, 10);
  372.          var9 = new Chain(10);
  373.          var9.setValue(0, 9, 10);
  374.          var8.insert(var9, 20);
  375.          Chain var53 = new Chain(5);
  376.          var53.setValue(0, 4, 10);
  377.          var9 = new Chain(5);
  378.          var9.setValue(0, 4, 20);
  379.          var53.insert(var9, 5);
  380.          var9 = new Chain(5);
  381.          var9.setValue(0, 4, 10);
  382.          var53.insert(var9, 10);
  383.          var8.insert(var53, 9);
  384.          System.out.println("Merge left with multi runs: " + var8.toString());
  385.          var8 = new Chain(10);
  386.          var8.setValue(0, 9, 10);
  387.          var9 = new Chain(10);
  388.          var9.setValue(0, 9, 20);
  389.          var8.insert(var9, 10);
  390.          var9 = new Chain(10);
  391.          var9.setValue(0, 9, 10);
  392.          var8.insert(var9, 20);
  393.          Chain var55 = new Chain(5);
  394.          var55.setValue(0, 4, 10);
  395.          var9 = new Chain(5);
  396.          var9.setValue(0, 4, 20);
  397.          var55.insert(var9, 5);
  398.          var9 = new Chain(5);
  399.          var9.setValue(0, 4, 10);
  400.          var55.insert(var9, 10);
  401.          var8.insert(var55, 20);
  402.          System.out.println("Merge right with multi runs: " + var8.toString());
  403.          var8 = new Chain(10);
  404.          var8.setValue(0, 9, 10);
  405.          var9 = new Chain(10);
  406.          var9.setValue(0, 9, 20);
  407.          var8.insert(var9, 10);
  408.          var9 = new Chain(10);
  409.          var9.setValue(0, 9, 10);
  410.          var8.insert(var9, 20);
  411.          Chain var57 = new Chain(5);
  412.          var57.setValue(0, 4, 10);
  413.          var9 = new Chain(5);
  414.          var9.setValue(0, 4, 20);
  415.          var57.insert(var9, 5);
  416.          var9 = new Chain(5);
  417.          var9.setValue(0, 4, 10);
  418.          var57.insert(var9, 10);
  419.          var8.insert(var57, 5);
  420.          System.out.println("Merge both with multi runs: " + var8.toString());
  421.          var8 = new Chain(10);
  422.          var8.setValue(0, 9, 10);
  423.          var9 = new Chain(10);
  424.          var9.setValue(0, 9, 20);
  425.          var8.insert(var9, 10);
  426.          var9 = new Chain(10);
  427.          var9.setValue(0, 9, 10);
  428.          var8.insert(var9, 20);
  429.          Chain var59 = new Chain(5);
  430.          var59.setValue(0, 4, 10);
  431.          var9 = new Chain(5);
  432.          var9.setValue(0, 4, 20);
  433.          var59.insert(var9, 5);
  434.          var9 = new Chain(5);
  435.          var9.setValue(0, 4, 10);
  436.          var59.insert(var9, 10);
  437.          var8.insert(var59, 15);
  438.          System.out.println("Merge neither with multi runs: " + var8.toString());
  439.          var0 = true;
  440.       } catch (Throwable var12) {
  441.          var12.printStackTrace();
  442.       }
  443.  
  444.       return var0;
  445.    }
  446.  
  447.    public static boolean moveTest() {
  448.       boolean var0 = false;
  449.  
  450.       try {
  451.          System.out.println("---> Starting Move Test");
  452.          int[] var1 = new int[]{-1, 61, 5, 5, 5, 5};
  453.          int[] var2 = new int[]{10, 10, -1, 61, 10, 10};
  454.          int[] var3 = new int[]{3, 3, 3, 3, -1, 61};
  455.          System.out.println("\nException handling cases.  Look for corruption.");
  456.          PrintStream var10000 = System.out;
  457.          StringBuffer var10001 = new StringBuffer("For comparison, the original: ");
  458.          Chain var4 = new Chain(50);
  459.          var4.setValue(0, 49, 25);
  460.          Chain var5 = new Chain(10);
  461.          var5.setValue(0, 9, 30);
  462.          var4.insert(var5, 20);
  463.          var10000.println(var10001.append(var4.toString()).toString());
  464.          var4 = null;
  465.  
  466.          for(int var12 = 0; var12 < var1.length; ++var12) {
  467.             try {
  468.                System.out.println("Testing move of " + var3[var12] + " elements from " + var1[var12] + " to " + var2[var12] + ".");
  469.                Chain var6 = new Chain(50);
  470.                var6.setValue(0, 49, 25);
  471.                Chain var7 = new Chain(10);
  472.                var7.setValue(0, 9, 30);
  473.                var6.insert(var7, 20);
  474.                var4 = var6;
  475.                var6.move(var1[var12], var3[var12], var2[var12]);
  476.                System.out.println("ERROR HANDLING PROBLEM for move(" + var1[var12] + "," + var3[var12] + "," + var2[var12] + ")");
  477.             } catch (ArrayIndexOutOfBoundsException var9) {
  478.                System.out.println("Error caught for (" + var3[var12] + "," + var1[var12] + "," + var2[var12] + ")");
  479.                if (var4 != null) {
  480.                   System.out.println("Compare: " + var4.toString());
  481.                }
  482.             }
  483.          }
  484.  
  485.          System.out.println("\n***Actual move tests");
  486.          Chain var13 = new Chain(10);
  487.          var13.setValue(0, 9, 10);
  488.          Chain var14 = new Chain(10);
  489.          var14.setValue(0, 9, 20);
  490.          var13.insert(var14, 10);
  491.          var14 = new Chain(10);
  492.          var14.setValue(0, 9, 10);
  493.          var13.insert(var14, 20);
  494.          System.out.println("At start: " + var13.toString());
  495.          var13.move(0, 10, 10);
  496.          System.out.println("No move: " + var13.toString());
  497.          var14 = new Chain(10);
  498.          var14.setValue(0, 9, 10);
  499.          Chain var8 = new Chain(10);
  500.          var8.setValue(0, 9, 20);
  501.          var14.insert(var8, 10);
  502.          var8 = new Chain(10);
  503.          var8.setValue(0, 9, 10);
  504.          var14.insert(var8, 20);
  505.          var14.move(10, 10, 0);
  506.          System.out.println("Middle moved to start: " + var14.toString());
  507.          var14 = new Chain(10);
  508.          var14.setValue(0, 9, 10);
  509.          var8 = new Chain(10);
  510.          var8.setValue(0, 9, 20);
  511.          var14.insert(var8, 10);
  512.          var8 = new Chain(10);
  513.          var8.setValue(0, 9, 10);
  514.          var14.insert(var8, 20);
  515.          var14.move(10, 10, 30);
  516.          System.out.println("Middle moved to end: " + var14.toString());
  517.          var14 = new Chain(10);
  518.          var14.setValue(0, 9, 10);
  519.          var8 = new Chain(10);
  520.          var8.setValue(0, 9, 20);
  521.          var14.insert(var8, 10);
  522.          var8 = new Chain(10);
  523.          var8.setValue(0, 9, 10);
  524.          var14.insert(var8, 20);
  525.          var14.move(7, 5, 22);
  526.          System.out.println("New run at end: " + var14.toString());
  527.          var14 = new Chain(10);
  528.          var14.setValue(0, 9, 10);
  529.          var8 = new Chain(10);
  530.          var8.setValue(0, 9, 20);
  531.          var14.insert(var8, 10);
  532.          var8 = new Chain(10);
  533.          var8.setValue(0, 9, 10);
  534.          var14.insert(var8, 20);
  535.          var14.move(7, 5, 20);
  536.          System.out.println("Two new runs at end: " + var14.toString());
  537.          var0 = true;
  538.       } catch (Throwable var10) {
  539.          var10.printStackTrace();
  540.       }
  541.  
  542.       return var0;
  543.    }
  544.  
  545.    public static boolean setValueTest() {
  546.       boolean var0 = false;
  547.  
  548.       try {
  549.          System.out.println("---> Starting Run Length Test");
  550.          int[] var1 = new int[]{-1, 61, 0, 59};
  551.          int[] var2 = new int[]{4, 4, -1, 61};
  552.  
  553.          for(int var3 = 0; var3 < var2.length; ++var3) {
  554.             try {
  555.                System.out.println("Testing (" + var1[var3] + "," + var2[var3] + ")");
  556.                Chain var4 = new Chain(50);
  557.                var4.setValue(0, 49, 25);
  558.                Chain var5 = new Chain(10);
  559.                var5.setValue(0, 9, 30);
  560.                var4.insert(var5, 20);
  561.                var4.setValue(var1[var3], var2[var3], 100);
  562.                System.out.println("ERROR HANDLING PROBLEM");
  563.             } catch (ArrayIndexOutOfBoundsException var8) {
  564.                System.out.println("Error caught for (" + var1[var3] + "," + var2[var3] + ")");
  565.             }
  566.          }
  567.  
  568.          System.out.println();
  569.          System.out.println("***No new runs cases");
  570.          Chain var10 = new Chain(10);
  571.          var10.setValue(0, 9, 10);
  572.          Chain var11 = new Chain(10);
  573.          var11.setValue(0, 9, 20);
  574.          var10.insert(var11, 10);
  575.          var11 = new Chain(10);
  576.          var11.setValue(0, 9, 10);
  577.          var10.insert(var11, 20);
  578.          System.out.println("Initial chain: " + var10.toString());
  579.          var10.setValue(10, 19, 30);
  580.          System.out.println("Simple run set: " + var10.toString());
  581.          var10.setValue(0, 9, 40);
  582.          System.out.println("Left-hand set: " + var10.toString());
  583.          var10.setValue(20, 29, 50);
  584.          System.out.println("Right-hand set: " + var10.toString());
  585.          var11 = new Chain(10);
  586.          var11.setValue(0, 9, 10);
  587.          Chain var6 = new Chain(10);
  588.          var6.setValue(0, 9, 20);
  589.          var11.insert(var6, 10);
  590.          var6 = new Chain(10);
  591.          var6.setValue(0, 9, 10);
  592.          var11.insert(var6, 20);
  593.          var11.setValue(8, 14, 10);
  594.          System.out.println("Merge left overlap: " + var11.toString());
  595.          var6 = new Chain(10);
  596.          var6.setValue(0, 9, 10);
  597.          Chain var7 = new Chain(10);
  598.          var7.setValue(0, 9, 20);
  599.          var6.insert(var7, 10);
  600.          var7 = new Chain(10);
  601.          var7.setValue(0, 9, 10);
  602.          var6.insert(var7, 20);
  603.          var6.setValue(8, 14, 20);
  604.          System.out.println("Merge right overlap: " + var6.toString());
  605.          var6 = new Chain(10);
  606.          var6.setValue(0, 9, 10);
  607.          var7 = new Chain(10);
  608.          var7.setValue(0, 9, 20);
  609.          var6.insert(var7, 10);
  610.          var7 = new Chain(10);
  611.          var7.setValue(0, 9, 10);
  612.          var6.insert(var7, 20);
  613.          var6.setValue(0, 13, 5);
  614.          System.out.println("Tricky merge runs left: " + var6.toString());
  615.          var6 = new Chain(10);
  616.          var6.setValue(0, 9, 10);
  617.          var7 = new Chain(10);
  618.          var7.setValue(0, 9, 20);
  619.          var6.insert(var7, 10);
  620.          var7 = new Chain(10);
  621.          var7.setValue(0, 9, 10);
  622.          var6.insert(var7, 20);
  623.          var6.setValue(17, 29, 5);
  624.          System.out.println("Tricky merge runs right: " + var6.toString());
  625.          System.out.println();
  626.          System.out.println("***New runs cases");
  627.          var6 = new Chain(10);
  628.          var6.setValue(0, 9, 10);
  629.          var7 = new Chain(10);
  630.          var7.setValue(0, 9, 20);
  631.          var6.insert(var7, 10);
  632.          var7 = new Chain(10);
  633.          var7.setValue(0, 9, 10);
  634.          var6.insert(var7, 20);
  635.          System.out.println("Initial chain for new runs testing: " + var6.toString());
  636.          var6.setValue(0, 9, 20);
  637.          System.out.println("Merge runs left: " + var6.toString());
  638.          var6 = new Chain(10);
  639.          var6.setValue(0, 9, 10);
  640.          var7 = new Chain(10);
  641.          var7.setValue(0, 9, 20);
  642.          var6.insert(var7, 10);
  643.          var7 = new Chain(10);
  644.          var7.setValue(0, 9, 10);
  645.          var6.insert(var7, 20);
  646.          var6.setValue(10, 19, 10);
  647.          System.out.println("Merge runs middle: " + var6.toString());
  648.          var6 = new Chain(10);
  649.          var6.setValue(0, 9, 10);
  650.          var7 = new Chain(10);
  651.          var7.setValue(0, 9, 20);
  652.          var6.insert(var7, 10);
  653.          var7 = new Chain(10);
  654.          var7.setValue(0, 9, 10);
  655.          var6.insert(var7, 20);
  656.          var6.setValue(20, 29, 20);
  657.          System.out.println("Merge runs right: " + var6.toString());
  658.          var6 = new Chain(10);
  659.          var6.setValue(0, 9, 10);
  660.          var7 = new Chain(10);
  661.          var7.setValue(0, 9, 20);
  662.          var6.insert(var7, 10);
  663.          var7 = new Chain(10);
  664.          var7.setValue(0, 9, 10);
  665.          var6.insert(var7, 20);
  666.          var6.setValue(13, 17, 50);
  667.          System.out.println("Add a run: " + var6.toString());
  668.          var0 = true;
  669.       } catch (Throwable var9) {
  670.          var9.printStackTrace();
  671.       }
  672.  
  673.       return var0;
  674.    }
  675.  
  676.    static void chainTest(int var0) {
  677.       Chain.MAXSIZE = var0;
  678.       System.out.println("***Starting Chain test with max " + Chain.MAXSIZE);
  679.       System.out.println();
  680.       System.out.println(insdelmovTest() ? "Insert/Delete/Move test succeeded" : "Insert/Delete/Move test FAILED");
  681.       System.out.println(appendTest() ? "Append test succeeded" : "Append test FAILED");
  682.       System.out.println(deleteRunTest() ? "Delete test succeeded" : "Delete test FAILED");
  683.       System.out.println(getRunLenSumTest() ? "Run length/sum test succeeded" : "Run length/sum test FAILED");
  684.       System.out.println(insertChainTest() ? "Insert test succeeded" : "Insert test FAILED");
  685.       System.out.println(moveTest() ? "Move test succeeded" : "Move test FAILED");
  686.       System.out.println(setValueTest() ? "Set run length test succeeded" : "Set run length test FAILED");
  687.       System.out.println("***Finished Chain test");
  688.    }
  689.  
  690.    public static void main(String[] var0) {
  691.       try {
  692.          chainTest(1000);
  693.          chainTest(0);
  694.       } catch (Throwable var2) {
  695.          System.out.println("Test methods should have caught this!");
  696.          var2.printStackTrace();
  697.       }
  698.    }
  699. }
  700.