public void test(String script) 
			throws EugeneException {
		
		try {
			// first, we need to parse the script
			this.parse(script);
		} catch(Exception e) {
			throw new EugeneException(e.getMessage());
		}
		
		Map<String, List<CompositePredicate>> predicates = 
				this.parser.getPredicateRepository().getPredicates();

		List<Component[]> solutions = new ArrayList<Component[]>();
		for(String name : predicates.keySet()) {
//			System.out.println("All composite predicates named " + name + ": ");
			List<CompositePredicate> lst = predicates.get(name);
			for(CompositePredicate cp : lst) {
//				System.out.println(cp.toString());

				// TEST IT
				solutions.addAll(
						new PredicateTester().test(cp, this.parser.getN()));
			}
			
		}
		
		visualize(solutions);
		
	}