private <T> boolean checkPrivateMethod(String testname, Object expected,
			T object, String method, Object[] args, boolean inexact) {

		this.testname = testname;
		// create an Array of the argument types
		int length = Array.getLength(args);
		Class<?>[] parameters = new Class[length];

		for (int i = 0; i < length; i++) {
			parameters[i] = args[i].getClass();
		}

		String parlist = "(";
		for (Class<?> parameter : parameters)
			parlist = parlist + (parameter.getName()) + ",";

		parlist = parlist.substring(0, parlist.length() - 1) + ")";

		try {
			// find the method to be invoked by 'object' with the name 'method'
			// and parameters in the classes given by 'parameters'
			Method meth = findMethod(object, method, parameters);

			if (meth == null) {
				return report(false, testname + "\nNo method with the name "
						+ method + " found\n",
						"Failed to invoke the method "
								+ object.getClass().getName() + "." + method
								+ parlist +
								Printer.produceString(expected));
			} else {
				// allow access to protected and private methods
				Reflector.ensureIsAccessible(meth);

				// produce a test massage that includes the object that invoked
				// the method, an the argument list
				String testmessage = testname + "\n"
						+ Printer.produceString(object) + "\n invoked method "
						+ method + " in the class "
						+ object.getClass().getName() + "\n with arguments "
						+ makeArglist(args) + ")\n";

				if (inexact) // tolerance has been set already
					return checkInexact(meth.invoke(object, args), expected,
							Inspector.TOLERANCE, testmessage);
				else
					return checkExpect(meth.invoke(object, args), expected,
							testmessage);
			}
		} catch (Throwable exception) {
			String testmessage = testname + "\n"
					+ Printer.produceString(object) + "\n invoked method "
					+ method + " in the class " + object.getClass().getName()
					+ "\n with arguments " + makeArglist(args) + ")\n";

			// report that the method threw an exception
			boolean result = this.report(false,
					testmessage + "\nthrew an excception ",
					Printer.produceString(object) + Printer.produceString(args));
			exception.printStackTrace();
			return result;
		}
	}