protected void test(PrototypeModel model, String signature, String stores)
			throws CancelledException, ParseException {
		PrototypePieces pieces = parseSignature(model, signature);
		ArrayList<ParameterPieces> res = new ArrayList<>();
		model.assignParameterStorage(pieces, dtManager, res, true);
		ArrayList<ArrayList<Varnode>> storeData = new ArrayList<>();
		parseStores(storeData, stores);
		Assert.assertEquals(storeData.size(), res.size());
		for (int i = 0; i < res.size(); ++i) {
			ParameterPieces resPiece = res.get(i);
			ArrayList<Varnode> storePiece = storeData.get(i);
			boolean compare = comparePiece(storePiece, resPiece);
			String message = null;
			if (!compare) {
				StringBuilder buffer = new StringBuilder();
				buffer.append(language.getLanguageID()).append(':');
				buffer.append(cspec.getCompilerSpecID());
				buffer.append(' ').append(model.getName()).append(' ');
				if (i == 0) {
					buffer.append("Output ").append("@"+toString(resPiece)).append(" does not match for ");
				}
				else {
					buffer.append("Parameter ").append(i - 1).append(" @"+toString(resPiece)+" ").append(" does not match for: ");
				}
				buffer.append(signature);
				message = buffer.toString();
			}
			Assert.assertTrue(message, compare);
		}
	}
Obtain a specific CompilerSpec given a language id
@param langId is the 5 long colon separated language id
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/program/model/lang/AbstractProtoModelTest.java