protected void doTestCycAccess10(CycAccess cycAccess) {
    long startMilliseconds = System.currentTimeMillis();

    try {
      // demonstrate quoted strings
      //cycAccess.traceOn();
      StringBuffer stringBuffer = new StringBuffer();
      stringBuffer.append("a");
      stringBuffer.append('"');
      stringBuffer.append("b");
      stringBuffer.append('"');
      stringBuffer.append("c");

      String expectedString = stringBuffer.toString();
      CycList command = new CycList();
      command.add(makeCycSymbol("identity"));
      command.add(expectedString);

      String resultString = cycAccess.converseString(command);
      assertEquals(expectedString, resultString);

      CycList cycList53 = cycAccess.makeCycList("(\"abc\")");
      assertEquals(1,
              cycAccess.converseInt("(length '" + cycList53.cycListApiValue() + ")"));
      assertEquals(3,
              cycAccess.converseInt("(length (first '" + cycList53.cycListApiValue() + "))"));

      String string = "abc";
      CycList cycList54 = new CycList();
      cycList54.add(makeCycSymbol("length"));
      cycList54.add(string);
      assertEquals(3, cycAccess.converseInt(cycList54));

      String quotedString = "\"abc\" def";
      CycList cycList55 = new CycList();
      cycList55.add(makeCycSymbol("length"));
      cycList55.add(quotedString);


      // Note that in binary mode, that Cyc's cfasl input will insert the required escape
      // chars for embedded quotes.
      // And in ascii mode note that CycConnection will insert the required escape
      // chars for embedded quotes.  While in binary mode, CfaslOutputStream will insert
      // the required escapes.
      //
      // Cyc should see (length "\"abc\" def") and return 9
      assertEquals(9, cycAccess.converseInt(cycList55));

      // demonstrate quoted strings with the CycListParser
      CycList cycList56 = cycAccess.makeCycList("(\"" + string + "\")");
      assertEquals(1, cycAccess.converseInt("(length " + cycList56.stringApiValue() + ")"));
      assertEquals(3, cycAccess.converseInt("(length (first " + cycList56.stringApiValue() + "))"));

      String embeddedQuotesString = "(" + "\"\\\"abc\\\" def\"" + ")";
      CycList cycList57 = cycAccess.makeCycList(embeddedQuotesString);
      String script = "(length " + cycList57.stringApiValue() + ")";
      int actualLen = cycAccess.converseInt(script);
      assertEquals(1, actualLen);
      assertEquals(9, cycAccess.converseInt("(length (first " + cycList57.stringApiValue() + "))"));

      script = "(identity (quote (#$givenNames #$Guest \"\\\"The\\\" Guest\")))";

      String script1 = "(IDENTITY (QUOTE (#$givenNames #$Guest \"\"The\" Guest\")))";

      //CycListParser.verbosity = 3;
      CycList scriptCycList = cycAccess.makeCycList(script);


      // Java strings do not escape embedded quote chars
      assertEquals(script1, scriptCycList.cyclify());

      CycList answer = cycAccess.converseList(script);
      Object third = answer.third();
      assertTrue(third instanceof String);
      assertEquals(11, ((String) third).length());

      answer = cycAccess.converseList(scriptCycList);
      third = answer.third();
      assertTrue(third instanceof String);
      assertEquals(11, ((String) third).length());

      // isFormulaWellFormed
      if (!cycAccess.isOpenCyc()) {
        CycFormulaSentence formula1 = cycAccess.makeCycSentence("(#$isa #$Brazil #$IndependentCountry)");
        CycConstant mt = cycAccess.getKnownConstantByName("WorldPoliticalGeographyDataVocabularyMt");
        assertTrue(cycAccess.isFormulaWellFormed(formula1, mt));
        CycFormulaSentence formula2 = cycAccess.makeCycSentence("(#$genls #$Brazil #$Collection)");
        assertTrue(!cycAccess.isFormulaWellFormed(formula2, mt));
      }

      // isCycLNonAtomicReifableTerm
      CycNaut formula3 = cycAccess.makeCycNaut("(#$TheCovering #$Watercraft-Surface #$Watercraft-Subsurface)");
      assertTrue(cycAccess.isCycLNonAtomicReifableTerm(formula3));

      CycFormulaSentence formula4 = cycAccess.makeCycSentence("(#$isa #$Plant #$Animal)");
      assertTrue(!cycAccess.isCycLNonAtomicReifableTerm(formula4));

      CycNaut formula5 = cycAccess.makeCycNaut("(#$PlusFn 1)");
      assertTrue(!cycAccess.isCycLNonAtomicReifableTerm(formula5));

      // isCycLNonAtomicUnreifableTerm
      CycNaut formula6 = cycAccess.makeCycNaut("(#$TheCovering #$Watercraft-Surface #$Watercraft-Subsurface)");
      assertTrue(!cycAccess.isCycLNonAtomicUnreifableTerm(formula6));

      CycFormulaSentence formula7 = cycAccess.makeCycSentence("(#$isa #$Plant #$Animal)");
      assertTrue(!cycAccess.isCycLNonAtomicUnreifableTerm(formula7));

      CycNaut formula8 = cycAccess.makeCycNaut("(#$PlusFn 1)");
      assertTrue(cycAccess.isCycLNonAtomicUnreifableTerm(formula8));
    } catch (Throwable e) {
      e.printStackTrace();
      fail(e.toString());
    }

    long endMilliseconds = System.currentTimeMillis();
    System.out.println("  " + (endMilliseconds - startMilliseconds) + " milliseconds");
  }