- * test routine. not incremental.
- *
- * @param ml
- * @param fromS
- * @param fromE
- */
- public static void testMap(MapList ml, int fromS, int fromE)
- {
- for (int from = 1; from <= 25; from++)
- {
- int[] too = ml.shiftFrom(from);
- System.out.print("ShiftFrom(" + from + ")==");
- if (too == null)
- {
- System.out.print("NaN\n");
- }
- else
- {
- System.out.print(too[0] + " % " + too[1] + " (" + too[2] + ")");
- System.out.print("\t+--+\t");
- int[] toofrom = ml.shiftTo(too[0]);
- if (toofrom != null)
- {
- if (toofrom[0] != from)
- {
- System.err.println("Mapping not reflexive:" + from + " "
- + too[0] + "->" + toofrom[0]);
- }
- System.out.println("ShiftTo(" + too[0] + ")==" + toofrom[0]
- + " % " + toofrom[1] + " (" + toofrom[2] + ")");
- }
- else
- {
- System.out.println("ShiftTo(" + too[0] + ")=="
- + "NaN! - not Bijective Mapping!");
- }
- }
- }
- int mmap[][] = ml.makeFromMap();
- System.out.println("FromMap : (" + mmap[0][0] + " " + mmap[0][1] + " "
- + mmap[0][2] + " " + mmap[0][3] + " ");
- for (int i = 1; i <= mmap[1].length; i++)
- {
- if (mmap[1][i - 1] == -1)
- {
- System.out.print(i + "=XXX");
-
- }
- else
- {
- System.out.print(i + "=" + (mmap[0][2] + mmap[1][i - 1]));
- }
- if (i % 20 == 0)
- {
- System.out.print("\n");
- }
- else
- {
- System.out.print(",");
- }
- }
- // test range function
- System.out.print("\nTest locateInFrom\n");
- {
- int f = mmap[0][2], t = mmap[0][3];
- while (f <= t)
- {
- System.out.println("Range " + f + " to " + t);
- int rng[] = ml.locateInFrom(f, t);
- if (rng != null)
- {
- for (int i = 0; i < rng.length; i++)
- {
- System.out.print(rng[i] + ((i % 2 == 0) ? "," : ";"));
- }
- }
- else
- {
- System.out.println("No range!");
- }
- System.out.print("\nReversed\n");
- rng = ml.locateInFrom(t, f);
- if (rng != null)
- {
- for (int i = 0; i < rng.length; i++)
- {
- System.out.print(rng[i] + ((i % 2 == 0) ? "," : ";"));
- }
- }
- else
- {
- System.out.println("No range!");
- }
- System.out.print("\n");
- f++;
- t--;
- }
- }
- System.out.print("\n");
- mmap = ml.makeToMap();
- System.out.println("ToMap : (" + mmap[0][0] + " " + mmap[0][1] + " "
- + mmap[0][2] + " " + mmap[0][3] + " ");
- for (int i = 1; i <= mmap[1].length; i++)
- {
- if (mmap[1][i - 1] == -1)
- {
- System.out.print(i + "=XXX");
-
- }
- else
- {
- System.out.print(i + "=" + (mmap[0][2] + mmap[1][i - 1]));
- }
- if (i % 20 == 0)
- {
- System.out.print("\n");
- }
- else
- {
- System.out.print(",");
- }
- }
- System.out.print("\n");
- // test range function
- System.out.print("\nTest locateInTo\n");
- {
- int f = mmap[0][2], t = mmap[0][3];
- while (f <= t)
- {
- System.out.println("Range " + f + " to " + t);
- int rng[] = ml.locateInTo(f, t);
- if (rng != null)
- {
- for (int i = 0; i < rng.length; i++)
- {
- System.out.print(rng[i] + ((i % 2 == 0) ? "," : ";"));
- }
- }
- else
- {
- System.out.println("No range!");
- }
- System.out.print("\nReversed\n");
- rng = ml.locateInTo(t, f);
- if (rng != null)
- {
- for (int i = 0; i < rng.length; i++)
- {
- System.out.print(rng[i] + ((i % 2 == 0) ? "," : ";"));
- }
- }
- else
- {
- System.out.println("No range!");
- }
- f++;
- t--;
- System.out.print("\n");
- }
- }
-
- }
-
- public static void main(String argv[])
- {
- MapList ml = new MapList(new int[]
- { 1, 5, 10, 15, 25, 20 }, new int[]
- { 51, 1 }, 1, 3);
- MapList ml1 = new MapList(new int[]
- { 1, 3, 17, 4 }, new int[]
- { 51, 1 }, 1, 3);
- MapList ml2 = new MapList(new int[]
- { 1, 60 }, new int[]
- { 1, 20 }, 3, 1);
- // test internal consistency
- int to[] = new int[51];
- MapList.testMap(ml, 1, 60);
- MapList mldna = new MapList(new int[]
- { 2, 2, 6, 8, 12, 16 }, new int[]
- { 1, 3 }, 3, 1);
- int[] frm = mldna.locateInFrom(1, 1);
- testLocateFrom(mldna, 1, 1, new int[]
- { 2, 2, 6, 7 });
- MapList.testMap(mldna, 1, 3);
- /*
- * for (int from=1; from<=51; from++) { int[] too=ml.shiftTo(from); int[]
- * toofrom=ml.shiftFrom(too[0]);
- * System.out.println("ShiftFrom("+from+")=="+too[0]+" %
- * "+too[1]+"\t+-+\tShiftTo("+too[0]+")=="+toofrom[0]+" % "+toofrom[1]); }
- */
- System.out.print("Success?\n"); // if we get here - something must be
- // working!
- }
-
- private static void testLocateFrom(MapList mldna, int i, int j, int[] ks)
- {
- int[] frm = mldna.locateInFrom(i, j);
- if (frm == ks || java.util.Arrays.equals(frm, ks))
- {
- System.out.println("Success test locate from " + i + " to " + j);
- }
- else
- {
- System.err.println("Failed test locate from " + i + " to " + j);
- for (int c = 0; c < frm.length; c++)
- {
- System.err.print(frm[c] + ((c % 2 == 0) ? "," : ";"));
- }
- System.err.println("Expected");
- for (int c = 0; c < ks.length; c++)
- {
- System.err.print(ks[c] + ((c % 2 == 0) ? "," : ";"));
- }
- }
- }
-
- /**