public AssessmentResult computeTestAssessmentResult(
     final CandidateSession candidateSession, final TestSessionController testSessionController) {
   final URI sessionIdentifierSourceId = URI.create(qtiWorksDeploymentSettings.getBaseUrl());
   final String sessionIdentifier = "testsession/" + candidateSession.getId();
   return testSessionController.computeAssessmentResult(
       requestTimestampContext.getCurrentRequestTimestamp(),
       sessionIdentifier,
       sessionIdentifierSourceId);
 }
 private String stringifyQtiValue(final Value value) {
   if (qtiWorksDeploymentSettings.isEnableMathAssessExtension()
       && GlueValueBinder.isMathsContentRecord(value)) {
     /* This is a special MathAssess "Maths Content" variable. In this case, we'll record
      * just the ASCIIMath input form or the Maxima form, if either are available.
      */
     final RecordValue mathsValue = (RecordValue) value;
     final SingleValue asciiMathInput =
         mathsValue.get(MathAssessConstants.FIELD_CANDIDATE_INPUT_IDENTIFIER);
     if (asciiMathInput != null) {
       return "ASCIIMath[" + asciiMathInput.toQtiString() + "]";
     }
     final SingleValue maximaForm = mathsValue.get(MathAssessConstants.FIELD_MAXIMA_IDENTIFIER);
     if (maximaForm != null) {
       return "Maxima[" + maximaForm.toQtiString() + "]";
     }
   }
   /* Just convert to QTI string in the usual way */
   return value.toQtiString();
 }