public void testContext() {
		int min = -80;
		int max = 80;
		int size = max - min;
		for (double v : new double[] { -15D, -10D, -5D, 5D, 15D }) {
			double[] table = new double[2];

			char[][] data = new char[size][size];

			int i = 0;
			int j = 0;
			for (double x = min; x < max; x++, i++) {
				j = 0;
				for (double y = min; y < max; y++, j++) {
					double vv = this.cm.evaluate(x, y, 1D);
					data[i][j] = (vv < 0 ? '.' : ' ');
				}
			}

			ConicContext ctx = new ConicContext();

			double[] p = new double[2];

			int t = QuadricSection.section(this.cm, v, min, max, table);
			for (int z = 0; z < t; z++) {
				double d = Math.floor(table[z]);
				data[(int) (d - min)][(int) (v - min)] = '*';
				ctx.initialize(this.cm, d, v, min, max, min, max);

				for (int tm = 0; tm < 30; tm++) {
					ctx.getCurrentInnerPoint(p);
					data[(int) (p[0] - min)][(int) (p[1] - min)] = '+';
					ctx.getCurrentOuterPoint(p);
					data[(int) (p[0] - min)][(int) (p[1] - min)] = '@';
					ctx.next();
				}
			}

			for (j = 0; j < size; j++) {
				for (i = 0; i < size; i++) {
					System.out.print(data[i][j]);
				}
				System.out.println();
			}
		}
		assertTrue(true);
	}