00001 package org.opencyc.api;
00002
00003 import junit.framework.*;
00004 import java.util.*;
00005 import java.net.*;
00006 import java.io.*;
00007 import java.text.*;
00008 import org.opencyc.cycobject.*;
00009 import org.opencyc.cycagent.*;
00010 import org.opencyc.util.*;
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 public class UnitTest extends TestCase {
00037
00038 public static final String myAgentName = "ApiTestAgent";
00039 public static final String cycProxyAgentName = "CycProxyAgent";
00040
00041 public static final int agentCommunity = AgentCommunityAdapter.FIPA_OS_AGENT_COMMUNITY;
00042
00043
00044
00045
00046
00047 public static final int LOCAL_CYC_CONNECTION = 1;
00048
00049
00050
00051
00052
00053
00054 public static final int REMOTE_CYC_CONNECTION = 2;
00055
00056
00057 public static int connectionMode = LOCAL_CYC_CONNECTION;
00058
00059
00060
00061
00062
00063 public static boolean performOnlyBinaryApiModeTests = true;
00064
00065
00066
00067
00068 public UnitTest(String name) {
00069 super(name);
00070 }
00071
00072
00073
00074
00075
00076
00077 public static Test suite() {
00078 TestSuite testSuite = new TestSuite();
00079
00080 testSuite.addTest(new UnitTest("testAsciiCycConnection"));
00081 testSuite.addTest(new UnitTest("testBinaryCycConnection1"));
00082 testSuite.addTest(new UnitTest("testBinaryCycConnection2"));
00083 testSuite.addTest(new UnitTest("testAsciiCycAccess1"));
00084 testSuite.addTest(new UnitTest("testBinaryCycAccess1"));
00085 testSuite.addTest(new UnitTest("testAsciiCycAccess2"));
00086 testSuite.addTest(new UnitTest("testBinaryCycAccess2"));
00087 testSuite.addTest(new UnitTest("testAsciiCycAccess3"));
00088 testSuite.addTest(new UnitTest("testBinaryCycAccess3"));
00089 testSuite.addTest(new UnitTest("testAsciiCycAccess4"));
00090 testSuite.addTest(new UnitTest("testBinaryCycAccess4"));
00091 testSuite.addTest(new UnitTest("testAsciiCycAccess5"));
00092 testSuite.addTest(new UnitTest("testBinaryCycAccess5"));
00093 testSuite.addTest(new UnitTest("testAsciiCycAccess6"));
00094 testSuite.addTest(new UnitTest("testBinaryCycAccess6"));
00095 testSuite.addTest(new UnitTest("testAsciiCycAccess7"));
00096 testSuite.addTest(new UnitTest("testBinaryCycAccess7"));
00097 testSuite.addTest(new UnitTest("testAsciiCycAccess8"));
00098 testSuite.addTest(new UnitTest("testBinaryCycAccess8"));
00099 testSuite.addTest(new UnitTest("testAsciiCycAccess9"));
00100 testSuite.addTest(new UnitTest("testBinaryCycAccess9"));
00101 testSuite.addTest(new UnitTest("testAsciiCycAccess10"));
00102 testSuite.addTest(new UnitTest("testBinaryCycAccess10"));
00103 testSuite.addTest(new UnitTest("testBinaryCycAccess11"));
00104 testSuite.addTest(new UnitTest("testBinaryCycAccess12"));
00105 testSuite.addTest(new UnitTest("testBinaryCycAccess13"));
00106 testSuite.addTest(new UnitTest("testMakeValidConstantName"));
00107
00108 return testSuite;
00109 }
00110
00111
00112
00113
00114 public static void main(String[] args) {
00115 junit.textui.TestRunner.run(suite());
00116 if (connectionMode == REMOTE_CYC_CONNECTION &&
00117 agentCommunity == AgentCommunityAdapter.COABS_AGENT_COMMUNITY)
00118 System.exit(0);
00119 }
00120
00121
00122
00123
00124
00125
00126
00127
00128 public static void nofailAssertEquals (Object expectedObject, Object testObject) {
00129 if (! expectedObject.equals(testObject))
00130 System.out.println("Expected <" + expectedObject + "> \nfound <" + testObject);
00131 }
00132
00133
00134
00135
00136
00137
00138 public static void nofailAssertTrue (boolean testExpression, String message) {
00139 if (! testExpression)
00140 System.out.println("Test expression not true\n" + message);
00141 }
00142
00143
00144
00145
00146 public void testMakeValidConstantName () {
00147 System.out.println("\n**** testMakeValidConstantName ****");
00148 String candidateName = "abc";
00149 Assert.assertEquals(candidateName, CycConstant.makeValidConstantName(candidateName));
00150 candidateName = "()[]//abc";
00151 String expectedValidName = "______abc";
00152 Assert.assertEquals(expectedValidName, CycConstant.makeValidConstantName(candidateName));
00153 System.out.println("**** testMakeValidConstantName OK ****");
00154 }
00155
00156
00157
00158
00159 public void testAsciiCycConnection () {
00160 if (connectionMode == REMOTE_CYC_CONNECTION) {
00161 System.out.println("\n**** bypassing testAsciiCycConnection in remote usage ****");
00162 return;
00163 }
00164 System.out.println("\n**** testAsciiCycConnection ****");
00165 CycConnectionInterface cycConnection = null;
00166 try {
00167 CycAccess cycAccess = null;
00168 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00169 CycConnection.DEFAULT_BASE_PORT,
00170 CycConnection.ASCII_MODE,
00171 CycAccess.PERSISTENT_CONNECTION);
00172 cycConnection = cycAccess.cycConnection;
00173
00174 }
00175 catch (ConnectException e) {
00176 System.out.println("Could not connect to host " + CycConnection.DEFAULT_HOSTNAME +
00177 " port " + CycConnection.DEFAULT_BASE_PORT);
00178 Assert.fail(e.toString());
00179 }
00180 catch (Exception e) {
00181 e.printStackTrace();
00182 Assert.fail(e.toString());
00183 }
00184
00185
00186 String command = "(+ 2 3)";
00187 Object [] response = {new Integer(0), ""};
00188 try {
00189 response = cycConnection.converse(command);
00190 }
00191 catch (Exception e) {
00192 CycAccess.current().close();
00193 Assert.fail(e.toString());
00194 }
00195 Assert.assertEquals(Boolean.TRUE, response[0]);
00196 Assert.assertEquals(new Integer(5), response[1]);
00197
00198
00199 command = "(quote " + '\"' + "abc" + '\"' + ")";
00200 try {
00201
00202 response = cycConnection.converse(command);
00203 }
00204 catch (Exception e) {
00205 CycAccess.current().close();
00206 Assert.fail(e.toString());
00207 }
00208 Assert.assertEquals(Boolean.TRUE, response[0]);
00209 Assert.assertEquals("abc", response[1]);
00210
00211
00212 command = "(quote (a b (c d (e) f)))";
00213 try {
00214 response = cycConnection.converse(command);
00215 }
00216 catch (Exception e) {
00217 CycAccess.current().close();
00218 Assert.fail(e.toString());
00219 }
00220 Assert.assertEquals(Boolean.TRUE, response[0]);
00221 Assert.assertEquals("(A B (C D (E) F))", response[1].toString());
00222
00223
00224 command = "(quote (a . b))";
00225 try {
00226 response = cycConnection.converse(command);
00227 }
00228 catch (Exception e) {
00229 CycAccess.current().close();
00230 Assert.fail(e.toString());
00231 }
00232 Assert.assertEquals(Boolean.TRUE, response[0]);
00233 Assert.assertEquals("(A . B)", response[1].toString());
00234
00235
00236 command = "(member? #$Dog '(#$DomesticPet #$Dog))";
00237 try {
00238 response = cycConnection.converse(command);
00239 }
00240 catch (Exception e) {
00241 CycAccess.current().close();
00242 Assert.fail(e.toString());
00243 }
00244 Assert.assertEquals(Boolean.TRUE, response[0]);
00245 Assert.assertEquals(CycObjectFactory.t, response[1]);
00246
00247
00248 command = "(removal-ask '(#$genls #$DomesticPet #$DomesticatedAnimal) #$HumanActivitiesMt)";
00249 try {
00250 response = cycConnection.converse(command);
00251 }
00252 catch (Exception e) {
00253 CycAccess.current().close();
00254 Assert.fail(e.toString());
00255 }
00256 Assert.assertEquals(Boolean.TRUE, response[0]);
00257 Assert.assertTrue(response[1] instanceof CycList);
00258 Assert.assertEquals("((((T . T)) ((:GENLS (#$genls #$DomesticPet #$DomesticatedAnimal) #$HumanActivitiesMt :TRUE-DEF))))",
00259 ((CycList) response[1]).cyclify());
00260
00261 cycConnection.close();
00262 System.out.println("**** testAsciiCycConnection OK ****");
00263 }
00264
00265
00266
00267
00268
00269 public void testBinaryCycConnection1 () {
00270 System.out.println("\n**** testBinaryCycConnection1 ****");
00271 CycAccess cycAccess = null;
00272 CycConnectionInterface cycConnection = null;
00273 try {
00274 if (connectionMode == LOCAL_CYC_CONNECTION) {
00275 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00276 CycConnection.DEFAULT_BASE_PORT,
00277 CycConnection.BINARY_MODE,
00278 CycAccess.PERSISTENT_CONNECTION,
00279 CycConnection.SERIAL_MESSAGING_MODE);
00280 }
00281 else if (connectionMode == REMOTE_CYC_CONNECTION) {
00282 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
00283
00284 }
00285 else
00286 Assert.fail("Invalid connection mode " + connectionMode);
00287 cycConnection = cycAccess.cycConnection;
00288
00289 }
00290 catch (ConnectException e) {
00291 System.out.println("Could not connect to host " + CycConnection.DEFAULT_HOSTNAME +
00292 " port " + CycConnection.DEFAULT_BASE_PORT);
00293 Assert.fail(e.toString());
00294 }
00295 catch (Exception e) {
00296 e.printStackTrace();
00297 Assert.fail(e.toString());
00298 }
00299
00300
00301 String script = "(pwhen (cand (boundp '*eval-in-api?*) \n" +
00302 " (cnot *eval-in-api?*)) \n" +
00303 " (csetq *eval-in-api?* t))";
00304 try {
00305 cycAccess.converseVoid(script);
00306 }
00307 catch (Exception e) {
00308 CycAccess.current().close();
00309 Assert.fail(e.toString());
00310 }
00311
00312
00313 CycList command = new CycList();
00314 command.add(CycObjectFactory.makeCycSymbol("+"));
00315 command.add(new Integer(2));
00316 command.add(new Integer(3));
00317 Object [] response = {new Integer(0), ""};
00318 try {
00319 response = cycConnection.converse(command);
00320 }
00321 catch (Exception e) {
00322 CycAccess.current().close();
00323 Assert.fail(e.toString());
00324 }
00325 Assert.assertEquals(Boolean.TRUE, response[0]);
00326 Assert.assertEquals(new Integer(5), response[1]);
00327
00328
00329 command = new CycList();
00330 command.add(CycObjectFactory.quote);
00331 command.add("abc");
00332 try {
00333 response = cycConnection.converse(command);
00334 }
00335 catch (Exception e) {
00336 CycAccess.current().close();
00337 Assert.fail(e.toString());
00338 }
00339 Assert.assertEquals(Boolean.TRUE, response[0]);
00340 Assert.assertEquals("abc", response[1]);
00341
00342
00343 command = new CycList();
00344 command.add(CycObjectFactory.quote);
00345 CycList cycList2 = new CycList();
00346 command.add(cycList2);
00347 cycList2.add(CycObjectFactory.makeCycSymbol("a"));
00348 cycList2.add(CycObjectFactory.makeCycSymbol("b"));
00349 CycList cycList3 = new CycList();
00350 cycList2.add(cycList3);
00351 cycList3.add(CycObjectFactory.makeCycSymbol("c"));
00352 cycList3.add(CycObjectFactory.makeCycSymbol("d"));
00353 CycList cycList4 = new CycList();
00354 cycList3.add(cycList4);
00355 cycList4.add(CycObjectFactory.makeCycSymbol("e"));
00356 cycList3.add(CycObjectFactory.makeCycSymbol("f"));
00357 try {
00358 response = cycConnection.converse(command);
00359 }
00360 catch (Exception e) {
00361 CycAccess.current().close();
00362 Assert.fail(e.toString());
00363 }
00364 Assert.assertEquals(Boolean.TRUE, response[0]);
00365 Assert.assertEquals("(A B (C D (E) F))", response[1].toString());
00366
00367
00368 command = new CycList();
00369 command.add(CycObjectFactory.quote);
00370 cycList2 = new CycList();
00371 command.add(cycList2);
00372 cycList2.add(CycObjectFactory.makeCycSymbol("A"));
00373 cycList2.setDottedElement(CycObjectFactory.makeCycSymbol("B"));
00374 try {
00375
00376 response = cycConnection.converse(command);
00377
00378 }
00379 catch (Exception e) {
00380 CycAccess.current().close();
00381 Assert.fail(e.toString());
00382 }
00383 Assert.assertEquals(Boolean.TRUE, response[0]);
00384 Assert.assertEquals("(A . B)", response[1].toString());
00385
00386
00387 command = new CycList();
00388 command.add(CycObjectFactory.nil);
00389 try {
00390 response = cycConnection.converse(command);
00391 }
00392 catch (Exception e) {
00393 CycAccess.current().close();
00394 Assert.fail(e.toString());
00395 }
00396 Assert.assertTrue(response[1].toString().indexOf("Operator NIL is not defined in the API") > -1);
00397
00398 cycConnection.close();
00399 System.out.println("**** testBinaryCycConnection1 OK ****");
00400 }
00401
00402
00403
00404
00405
00406 public void testBinaryCycConnection2 () {
00407 if (connectionMode == REMOTE_CYC_CONNECTION)
00408 return;
00409 System.out.println("\n**** testBinaryCycConnection2 ****");
00410 CycConnection cycConnection = null;
00411 try {
00412 cycConnection = new CycConnection((CycAccess) null);
00413
00414 }
00415 catch (Exception e) {
00416 e.printStackTrace();
00417 Assert.fail(e.toString());
00418 }
00419
00420
00421 CycList command = new CycList();
00422 command.add(CycObjectFactory.makeCycSymbol("+"));
00423 command.add(new Integer(2));
00424 command.add(new Integer(3));
00425 Object [] response = {new Integer(0), ""};
00426 try {
00427 response = cycConnection.converse(command);
00428 }
00429 catch (Exception e) {
00430 cycConnection.close();
00431 Assert.fail(e.toString());
00432 }
00433 Assert.assertEquals(Boolean.TRUE, response[0]);
00434 Assert.assertEquals(new Integer(5), response[1]);
00435
00436
00437 command = new CycList();
00438 command.add(CycObjectFactory.quote);
00439 command.add("abc");
00440 try {
00441 response = cycConnection.converse(command);
00442 }
00443 catch (Exception e) {
00444 cycConnection.close();
00445 Assert.fail(e.toString());
00446 }
00447 Assert.assertEquals(Boolean.TRUE, response[0]);
00448 Assert.assertEquals("abc", response[1]);
00449
00450
00451 command = new CycList();
00452 command.add(CycObjectFactory.quote);
00453 CycList cycList2 = new CycList();
00454 command.add(cycList2);
00455 cycList2.add(CycObjectFactory.makeCycSymbol("a"));
00456 cycList2.add(CycObjectFactory.makeCycSymbol("b"));
00457 CycList cycList3 = new CycList();
00458 cycList2.add(cycList3);
00459 cycList3.add(CycObjectFactory.makeCycSymbol("c"));
00460 cycList3.add(CycObjectFactory.makeCycSymbol("d"));
00461 CycList cycList4 = new CycList();
00462 cycList3.add(cycList4);
00463 cycList4.add(CycObjectFactory.makeCycSymbol("e"));
00464 cycList3.add(CycObjectFactory.makeCycSymbol("f"));
00465 try {
00466 response = cycConnection.converse(command);
00467 }
00468 catch (Exception e) {
00469 cycConnection.close();
00470 Assert.fail(e.toString());
00471 }
00472 Assert.assertEquals(Boolean.TRUE, response[0]);
00473 Assert.assertEquals("(A B (C D (E) F))", response[1].toString());
00474
00475
00476 command = new CycList();
00477 command.add(CycObjectFactory.quote);
00478 cycList2 = new CycList();
00479 command.add(cycList2);
00480 cycList2.add(CycObjectFactory.makeCycSymbol("A"));
00481 cycList2.setDottedElement(CycObjectFactory.makeCycSymbol("B"));
00482 try {
00483
00484 response = cycConnection.converse(command);
00485
00486 }
00487 catch (Exception e) {
00488 cycConnection.close();
00489 Assert.fail(e.toString());
00490 }
00491 Assert.assertEquals(Boolean.TRUE, response[0]);
00492 Assert.assertEquals("(A . B)", response[1].toString());
00493
00494
00495 command = new CycList();
00496 command.add(CycObjectFactory.nil);
00497 try {
00498 response = cycConnection.converse(command);
00499 }
00500 catch (Exception e) {
00501 cycConnection.close();
00502 Assert.fail(e.toString());
00503 }
00504
00505 Assert.assertTrue(response[1].toString().indexOf("API") > -1);
00506
00507 cycConnection.close();
00508 System.out.println("**** testBinaryCycConnection2 OK ****");
00509 }
00510
00511
00512
00513
00514 public void testAsciiCycAccess1 () {
00515 if (performOnlyBinaryApiModeTests ||
00516 (connectionMode == REMOTE_CYC_CONNECTION))
00517 return;
00518 System.out.println("\n**** testAsciiCycAccess 1 ****");
00519 CycAccess cycAccess = null;
00520 try {
00521 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00522 CycConnection.DEFAULT_BASE_PORT,
00523 CycConnection.ASCII_MODE,
00524 CycAccess.TRANSIENT_CONNECTION);
00525 }
00526 catch (Exception e) {
00527 Assert.fail(e.toString());
00528 }
00529
00530 doTestCycAccess1(cycAccess);
00531
00532 cycAccess.close();
00533 System.out.println("**** testAsciiCycAccess 1 OK ****");
00534 }
00535
00536
00537
00538
00539 public void testBinaryCycAccess1 () {
00540 System.out.println("\n**** testBinaryCycAccess 1 ****");
00541 CycAccess cycAccess = null;
00542 try {
00543 if (connectionMode == LOCAL_CYC_CONNECTION)
00544 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00545 CycConnection.DEFAULT_BASE_PORT,
00546 CycConnection.BINARY_MODE,
00547 CycAccess.TRANSIENT_CONNECTION,
00548 CycConnection.SERIAL_MESSAGING_MODE);
00549 else if (connectionMode == REMOTE_CYC_CONNECTION)
00550 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
00551 else
00552 Assert.fail("Invalid connection mode " + connectionMode);
00553 }
00554 catch (Exception e) {
00555 e.printStackTrace();
00556 System.out.println("\nException: " + e.getMessage());
00557 Assert.fail(e.toString());
00558 }
00559
00560
00561 doTestCycAccess1(cycAccess);
00562
00563 cycAccess.close();
00564 System.out.println("**** testBinaryCycAccess 1 OK ****");
00565 }
00566
00567
00568
00569
00570 protected void doTestCycAccess1(CycAccess cycAccess) {
00571 long startMilliseconds = System.currentTimeMillis();
00572 try {
00573
00574 String script = "(pwhen (cand (boundp '*eval-in-api?*) \n" +
00575 " (cnot *eval-in-api?*)) \n" +
00576 " (csetq *eval-in-api?* t))";
00577 cycAccess.converseVoid(script);
00578 }
00579 catch (Exception e) {
00580 CycAccess.current().close();
00581 Assert.fail(e.toString());
00582 }
00583
00584 CycObjectFactory.resetCycConstantCaches();
00585
00586 CycConstant cycConstant = null;
00587 try {
00588 cycConstant = cycAccess.getConstantByName("#$Dog");
00589 }
00590 catch (Exception e) {
00591 CycAccess.current().close();
00592 Assert.fail(e.toString());
00593 }
00594 Assert.assertNotNull(cycConstant);
00595 Assert.assertEquals("bd58daa0-9c29-11b1-9dad-c379636f7270", cycConstant.getGuid().toString());
00596
00597
00598 try {
00599 cycConstant = cycAccess.getConstantByGuid(CycObjectFactory.makeGuid("bd58daa0-9c29-11b1-9dad-c379636f7270"));
00600 }
00601 catch (Exception e) {
00602 CycAccess.current().close();
00603 Assert.fail(e.toString());
00604 }
00605 Assert.assertNotNull(cycConstant);
00606 Assert.assertEquals("#$Dog", cycConstant.cyclify());
00607 Assert.assertEquals("Dog", cycConstant.getName());
00608
00609
00610 cycConstant = null;
00611 try {
00612 cycConstant = cycAccess.getConstantByGuid(CycObjectFactory.makeGuid("bd58daa0-9c29-11b1-9dad-c379636f7270"));
00613 cycConstant = cycAccess.getConstantById(cycConstant.getId());
00614 }
00615 catch (Exception e) {
00616 CycAccess.current().close();
00617 Assert.fail(e.toString());
00618 }
00619 Assert.assertNotNull(cycConstant);
00620 Assert.assertEquals("#$Dog", cycConstant.cyclify());
00621 Assert.assertEquals("Dog", cycConstant.getName());
00622 Assert.assertEquals(CycObjectFactory.makeGuid("bd58daa0-9c29-11b1-9dad-c379636f7270"),
00623 cycConstant.getGuid());
00624
00625
00626 String comment = null;
00627 try {
00628 CycConstant raindrop = cycAccess.getKnownConstantByGuid("bd58bec6-9c29-11b1-9dad-c379636f7270");
00629 comment = cycAccess.getComment(raindrop);
00630 }
00631 catch (Exception e) {
00632 CycAccess.current().close();
00633 Assert.fail(e.toString());
00634 }
00635 Assert.assertNotNull(comment);
00636 Assert.assertEquals("The collection of drops of liquid water emitted by clouds in instances of #$RainProcess.",
00637 comment);
00638
00639
00640 List isas = null;
00641 try {
00642 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00643 isas = cycAccess.getIsas(dog);
00644 }
00645 catch (Exception e) {
00646 e.printStackTrace();
00647 CycAccess.current().close();
00648 Assert.fail(e.toString());
00649 }
00650 Assert.assertNotNull(isas);
00651 Assert.assertTrue(isas instanceof CycList);
00652 isas = ((CycList) isas).sort();
00653 try {
00654 CycConstant organismClassificationType =
00655 cycAccess.getKnownConstantByGuid("bd58dfe4-9c29-11b1-9dad-c379636f7270");
00656 Assert.assertTrue(isas.contains(organismClassificationType));
00657 }
00658 catch (Exception e) {
00659 CycAccess.current().close();
00660 Assert.fail(e.toString());
00661 }
00662 long endMilliseconds = System.currentTimeMillis();
00663 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
00664 }
00665
00666
00667
00668
00669 public void testAsciiCycAccess2 () {
00670 if (performOnlyBinaryApiModeTests ||
00671 (connectionMode == REMOTE_CYC_CONNECTION))
00672 return;
00673 System.out.println("\n**** testAsciiCycAccess 2 ****");
00674 CycAccess cycAccess = null;
00675 try {
00676 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00677 CycConnection.DEFAULT_BASE_PORT,
00678 CycConnection.ASCII_MODE,
00679 CycAccess.PERSISTENT_CONNECTION);
00680 }
00681 catch (Exception e) {
00682 CycAccess.current().close();
00683 Assert.fail(e.toString());
00684 }
00685
00686 doTestCycAccess2 (cycAccess);
00687
00688 cycAccess.close();
00689 System.out.println("**** testAsciiCycAccess 2 OK ****");
00690 }
00691
00692
00693
00694
00695
00696 public void testBinaryCycAccess2 () {
00697 System.out.println("\n**** testBinaryCycAccess 2 ****");
00698 CycAccess cycAccess = null;
00699 try {
00700 if (connectionMode == LOCAL_CYC_CONNECTION)
00701 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
00702 CycConnection.DEFAULT_BASE_PORT,
00703 CycConnection.BINARY_MODE,
00704 CycAccess.PERSISTENT_CONNECTION,
00705 CycConnection.CONCURRENT_MESSAGING_MODE);
00706 else if (connectionMode == REMOTE_CYC_CONNECTION)
00707 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
00708 else
00709 Assert.fail("Invalid connection mode " + connectionMode);
00710 }
00711 catch (Exception e) {
00712 CycAccess.current().close();
00713 Assert.fail(e.toString());
00714 }
00715
00716 doTestCycAccess2(cycAccess);
00717
00718 cycAccess.close();
00719 System.out.println("**** testBinaryCycAccess 2 OK ****");
00720 }
00721
00722
00723
00724
00725 protected void doTestCycAccess2 (CycAccess cycAccess) {
00726 long startMilliseconds = System.currentTimeMillis();
00727 CycObjectFactory.resetCycConstantCaches();
00728
00729
00730 List genls = null;
00731 try {
00732 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00733 genls = cycAccess.getGenls(dog);
00734 }
00735 catch (Exception e) {
00736 CycAccess.current().close();
00737 Assert.fail(e.toString());
00738 }
00739 Assert.assertNotNull(genls);
00740 Assert.assertTrue(genls instanceof CycList);
00741 genls = ((CycList) genls).sort();
00742 Assert.assertTrue(genls.toString().indexOf("CanineAnimal") > -1);
00743 Assert.assertTrue(genls.toString().indexOf("DomesticatedAnimal") > -1);
00744
00745
00746 List genlPreds = null;
00747 try {
00748 CycConstant target = cycAccess.getKnownConstantByGuid("c10afaed-9c29-11b1-9dad-c379636f7270");
00749 genlPreds = cycAccess.getGenlPreds(target);
00750 }
00751 catch (Exception e) {
00752 CycAccess.current().close();
00753 Assert.fail(e.toString());
00754 }
00755 Assert.assertNotNull(genlPreds);
00756 Assert.assertTrue((genlPreds.toString().equals("(preActors)")) ||
00757 (genlPreds.toString().equals("(actors)")));
00758
00759
00760 List allGenlPreds = null;
00761 try {
00762 CycConstant target = cycAccess.getKnownConstantByGuid("c10afaed-9c29-11b1-9dad-c379636f7270");
00763 allGenlPreds = cycAccess.getAllGenlPreds(target);
00764 }
00765 catch (Exception e) {
00766 CycAccess.current().close();
00767 Assert.fail(e.toString());
00768 }
00769 Assert.assertNotNull(allGenlPreds);
00770 Assert.assertTrue(allGenlPreds.size() > 2);
00771
00772
00773 List arg1Formats = null;
00774 try {
00775 CycConstant target = cycAccess.getKnownConstantByGuid("c10afaed-9c29-11b1-9dad-c379636f7270");
00776 arg1Formats = cycAccess.getArg1Formats(target);
00777 }
00778 catch (Exception e) {
00779 CycAccess.current().close();
00780 Assert.fail(e.toString());
00781 }
00782 Assert.assertNotNull(arg1Formats);
00783 Assert.assertEquals("(SetTheFormat)", arg1Formats.toString());
00784
00785
00786 arg1Formats = null;
00787 try {
00788 CycConstant constantName = cycAccess.getKnownConstantByGuid("bd7183b0-9c29-11b1-9dad-c379636f7270");
00789 arg1Formats = cycAccess.getArg1Formats(constantName);
00790 }
00791 catch (Exception e) {
00792 CycAccess.current().close();
00793 Assert.fail(e.toString());
00794 }
00795 Assert.assertNotNull(arg1Formats);
00796 Assert.assertEquals("(SingleEntry)", arg1Formats.toString());
00797
00798
00799
00800 List arg2Formats = null;
00801 try {
00802 CycConstant internalParts = cycAccess.getKnownConstantByGuid("bd58cf63-9c29-11b1-9dad-c379636f7270");
00803 arg2Formats = cycAccess.getArg2Formats(internalParts);
00804 }
00805 catch (Exception e) {
00806 CycAccess.current().close();
00807 Assert.fail(e.toString());
00808 }
00809 Assert.assertNotNull(arg2Formats);
00810 Assert.assertEquals("(SetTheFormat)", arg2Formats.toString());
00811
00812
00813 List disjointWiths = null;
00814 try {
00815 CycConstant vegetableMatter =
00816 cycAccess.getKnownConstantByGuid("bd58c455-9c29-11b1-9dad-c379636f7270");
00817 disjointWiths = cycAccess.getDisjointWiths(vegetableMatter);
00818 }
00819 catch (Exception e) {
00820 CycAccess.current().close();
00821 Assert.fail(e.toString());
00822 }
00823 Assert.assertNotNull(disjointWiths);
00824 Assert.assertTrue(disjointWiths.toString().indexOf("AnimalBLO") > 0);
00825
00826
00827 List coExtensionals = null;
00828 try {
00829
00830 CycConstant cycLTerm = cycAccess.getKnownConstantByGuid("c107fffb-9c29-11b1-9dad-c379636f7270");
00831 coExtensionals = cycAccess.getCoExtensionals(cycLTerm);
00832
00833 }
00834 catch (Exception e) {
00835 e.printStackTrace();
00836 CycAccess.current().close();
00837 Assert.fail(e.toString());
00838 }
00839 Assert.assertNotNull(coExtensionals);
00840 Assert.assertEquals("(CycLExpression)", coExtensionals.toString());
00841
00842
00843 coExtensionals = null;
00844 try {
00845 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00846 coExtensionals = cycAccess.getCoExtensionals(dog);
00847 }
00848 catch (Exception e) {
00849 CycAccess.current().close();
00850 Assert.fail(e.toString());
00851 }
00852 Assert.assertNotNull(coExtensionals);
00853 Assert.assertEquals("()", coExtensionals.toString());
00854
00855
00856 List arg1Isas = null;
00857 try {
00858 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00859 arg1Isas = cycAccess.getArg1Isas(doneBy);
00860 }
00861 catch (Exception e) {
00862 CycAccess.current().close();
00863 Assert.fail(e.toString());
00864 }
00865 Assert.assertNotNull(arg1Isas);
00866 Assert.assertEquals("(Event)", arg1Isas.toString());
00867
00868
00869 List arg2Isas = null;
00870 try {
00871 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00872 arg2Isas = cycAccess.getArg2Isas(doneBy);
00873 }
00874 catch (Exception e) {
00875 CycAccess.current().close();
00876 Assert.fail(e.toString());
00877 }
00878 Assert.assertNotNull(arg2Isas);
00879 Assert.assertEquals("(SomethingExisting)", arg2Isas.toString());
00880
00881
00882 List argNIsas = null;
00883 try {
00884 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00885 argNIsas = cycAccess.getArgNIsas(doneBy, 1);
00886 }
00887 catch (Exception e) {
00888 CycAccess.current().close();
00889 Assert.fail(e.toString());
00890 }
00891 Assert.assertNotNull(argNIsas);
00892 Assert.assertEquals("(Event)", argNIsas.toString());
00893
00894
00895 List argGenls = null;
00896 try {
00897 CycConstant superTaxons = cycAccess.getKnownConstantByGuid("bd58e36e-9c29-11b1-9dad-c379636f7270");
00898 argGenls = cycAccess.getArgNGenls(superTaxons, 2);
00899 }
00900 catch (Exception e) {
00901 CycAccess.current().close();
00902 Assert.fail(e.toString());
00903 }
00904 Assert.assertNotNull(argGenls);
00905 Assert.assertEquals("(Organism-Whole)", argGenls.toString());
00906
00907
00908 boolean answer = false;
00909 try {
00910 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00911 answer = cycAccess.isCollection(dog);
00912 }
00913 catch (Exception e) {
00914 CycAccess.current().close();
00915 Assert.fail(e.toString());
00916 }
00917 Assert.assertTrue(answer);
00918
00919
00920 answer = true;
00921 try {
00922 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00923 answer = cycAccess.isCollection(doneBy);
00924 }
00925 catch (Exception e) {
00926 CycAccess.current().close();
00927 Assert.fail(e.toString());
00928 }
00929 Assert.assertTrue(! answer);
00930
00931
00932 answer = false;
00933 try {
00934 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00935 answer = cycAccess.isBinaryPredicate(doneBy);
00936 }
00937 catch (Exception e) {
00938 CycAccess.current().close();
00939 Assert.fail(e.toString());
00940 }
00941 Assert.assertTrue(answer);
00942
00943
00944 answer = true;
00945 try {
00946 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00947 answer = cycAccess.isBinaryPredicate(dog);
00948 }
00949 catch (Exception e) {
00950 CycAccess.current().close();
00951 Assert.fail(e.toString());
00952 }
00953 Assert.assertTrue(! answer);
00954
00955
00956 String phrase = null;
00957 try {
00958 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
00959 phrase = cycAccess.getPluralGeneratedPhrase(dog);
00960 }
00961 catch (Exception e) {
00962 CycAccess.current().close();
00963 Assert.fail(e.toString());
00964 }
00965 Assert.assertNotNull(phrase);
00966 Assert.assertTrue(phrase.indexOf("dogs (") > -1);
00967
00968
00969 phrase = null;
00970 try {
00971 CycConstant brazil = cycAccess.getKnownConstantByGuid("bd588f01-9c29-11b1-9dad-c379636f7270");
00972 phrase = cycAccess.getSingularGeneratedPhrase(brazil);
00973 }
00974 catch (Exception e) {
00975 CycAccess.current().close();
00976 Assert.fail(e.toString());
00977 }
00978 Assert.assertNotNull(phrase);
00979 Assert.assertTrue(phrase.indexOf("Brazil (") > -1);
00980
00981
00982 phrase = null;
00983 try {
00984 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
00985 phrase = cycAccess.getGeneratedPhrase(doneBy);
00986 }
00987 catch (Exception e) {
00988 CycAccess.current().close();
00989 Assert.fail(e.toString());
00990 }
00991 Assert.assertNotNull(phrase);
00992 Assert.assertTrue(phrase.indexOf("doer (") > -1);
00993 long endMilliseconds = System.currentTimeMillis();
00994 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
00995 }
00996
00997
00998
00999
01000 public void testAsciiCycAccess3 () {
01001 if (performOnlyBinaryApiModeTests ||
01002 (connectionMode == REMOTE_CYC_CONNECTION))
01003 return;
01004 System.out.println("\n**** testAsciiCycAccess 3 ****");
01005 CycAccess cycAccess = null;
01006 try {
01007 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01008 CycConnection.DEFAULT_BASE_PORT,
01009 CycConnection.ASCII_MODE,
01010 CycAccess.PERSISTENT_CONNECTION);
01011 }
01012 catch (Exception e) {
01013 Assert.fail(e.toString());
01014 }
01015
01016 doTestCycAccess3 (cycAccess);
01017
01018 cycAccess.close();
01019 System.out.println("**** testAsciiCycAccess 3 OK ****");
01020 }
01021
01022
01023
01024
01025
01026 public void testBinaryCycAccess3 () {
01027 System.out.println("\n**** testBinaryCycAccess 3 ****");
01028 CycAccess cycAccess = null;
01029 try {
01030 if (connectionMode == LOCAL_CYC_CONNECTION)
01031 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01032 CycConnection.DEFAULT_BASE_PORT,
01033 CycConnection.BINARY_MODE,
01034 CycAccess.PERSISTENT_CONNECTION,
01035 CycConnection.SERIAL_MESSAGING_MODE);
01036 else if (connectionMode == REMOTE_CYC_CONNECTION)
01037 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
01038 else
01039 Assert.fail("Invalid connection mode " + connectionMode);
01040 }
01041 catch (Exception e) {
01042 Assert.fail(e.toString());
01043 }
01044 doTestCycAccess3(cycAccess);
01045
01046 cycAccess.close();
01047 System.out.println("**** testBinaryCycAccess 3 OK ****");
01048 }
01049
01050
01051
01052
01053 protected void doTestCycAccess3 (CycAccess cycAccess) {
01054 long startMilliseconds = System.currentTimeMillis();
01055 CycObjectFactory.resetCycConstantCaches();
01056
01057 String comment = null;
01058 try {
01059 CycConstant brazil = cycAccess.getKnownConstantByGuid("bd588f01-9c29-11b1-9dad-c379636f7270");
01060 comment = cycAccess.getComment(brazil);
01061 }
01062 catch (Exception e) {
01063 CycAccess.current().close();
01064 Assert.fail(e.toString());
01065 }
01066 Assert.assertNotNull(comment);
01067 Assert.assertEquals("An instance of #$IndependentCountry. #$Brazil is the " +
01068 "largest country in South America, and is bounded on the " +
01069 "northwest by #$Colombia; on the north by #$Venezuela, " +
01070 "#$Guyana, #$Suriname, and #$FrenchGuiana; on the east by " +
01071 "the #$AtlanticOcean; on the south by #$Uruguay; on the " +
01072 "southwest by #$Argentina and #$Paraguay; and on the west " +
01073 "by #$Bolivia and #$Peru.", comment);
01074
01075
01076 List isas = null;
01077 try {
01078 CycConstant brazil = cycAccess.getKnownConstantByGuid("bd588f01-9c29-11b1-9dad-c379636f7270");
01079 isas = cycAccess.getIsas(brazil);
01080 }
01081 catch (Exception e) {
01082 CycAccess.current().close();
01083 Assert.fail(e.toString());
01084 }
01085 Assert.assertNotNull(isas);
01086 Assert.assertTrue(isas instanceof CycList);
01087 isas = ((CycList) isas).sort();
01088 Assert.assertTrue(isas.toString().indexOf("Entity") > 0);
01089 Assert.assertTrue(isas.toString().indexOf("IndependentCountry") > 0);
01090
01091
01092 List genls = null;
01093 try {
01094 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01095 genls = cycAccess.getGenls(dog);
01096 }
01097 catch (Exception e) {
01098 CycAccess.current().close();
01099 Assert.fail(e.toString());
01100 }
01101 Assert.assertNotNull(genls);
01102 Assert.assertTrue(genls instanceof CycList);
01103 genls = ((CycList) genls).sort();
01104 Assert.assertTrue(genls.toString().indexOf("CanineAnimal") > -1);
01105 Assert.assertTrue(genls.toString().indexOf("DomesticatedAnimal") > -1);
01106
01107
01108 List minGenls = null;
01109 try {
01110 CycConstant lion = cycAccess.getKnownConstantByGuid("bd58c467-9c29-11b1-9dad-c379636f7270");
01111 minGenls = cycAccess.getMinGenls(lion);
01112 }
01113 catch (Exception e) {
01114 CycAccess.current().close();
01115 Assert.fail(e.toString());
01116 }
01117 Assert.assertNotNull(minGenls);
01118 Assert.assertTrue(minGenls instanceof CycList);
01119 minGenls = ((CycList) minGenls).sort();
01120 Assert.assertEquals("(FelidaeFamily)", minGenls.toString());
01121
01122
01123 minGenls = null;
01124 try {
01125 CycConstant lion = cycAccess.getKnownConstantByGuid("bd58c467-9c29-11b1-9dad-c379636f7270");
01126
01127 minGenls = cycAccess.getMinGenls(lion, cycAccess.getKnownConstantByGuid("bdd51776-9c29-11b1-9dad-c379636f7270"));
01128 }
01129 catch (Exception e) {
01130 CycAccess.current().close();
01131 Assert.fail(e.toString());
01132 }
01133 Assert.assertNotNull(minGenls);
01134 Assert.assertTrue(minGenls instanceof CycList);
01135 minGenls = ((CycList) minGenls).sort();
01136 Assert.assertEquals("(FelidaeFamily)", minGenls.toString());
01137
01138
01139 List specs = null;
01140 try {
01141 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01142 specs = cycAccess.getSpecs(canineAnimal);
01143 }
01144 catch (Exception e) {
01145 CycAccess.current().close();
01146 Assert.fail(e.toString());
01147 }
01148 Assert.assertNotNull(specs);
01149 Assert.assertTrue(specs instanceof CycList);
01150 specs = ((CycList) specs).sort();
01151 Assert.assertEquals("(Coyote-Animal Dog Fox Jackal Wolf)", specs.toString());
01152
01153
01154 List maxSpecs = null;
01155 try {
01156 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01157 maxSpecs = cycAccess.getMaxSpecs(canineAnimal);
01158 }
01159 catch (Exception e) {
01160 CycAccess.current().close();
01161 Assert.fail(e.toString());
01162 }
01163 Assert.assertNotNull(maxSpecs);
01164 Assert.assertTrue(maxSpecs instanceof CycList);
01165 maxSpecs = ((CycList) maxSpecs).sort();
01166 Assert.assertTrue(maxSpecs.toString().indexOf("Coyote-Animal") > 0);
01167 Assert.assertTrue(maxSpecs.toString().indexOf("Dog") > 0);
01168 Assert.assertTrue(maxSpecs.toString().indexOf("Fox") > 0);
01169 Assert.assertTrue(maxSpecs.toString().indexOf("Jackal") > 0);
01170 Assert.assertTrue(maxSpecs.toString().indexOf("Wolf") > 0);
01171
01172
01173 List genlSiblings = null;
01174 try {
01175 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01176 genlSiblings = cycAccess.getGenlSiblings(dog);
01177 }
01178 catch (Exception e) {
01179 CycAccess.current().close();
01180 Assert.fail(e.toString());
01181 }
01182 Assert.assertNotNull(genlSiblings);
01183 Assert.assertTrue(genlSiblings instanceof CycList);
01184 genlSiblings = ((CycList) genlSiblings).sort();
01185 Assert.assertTrue(genlSiblings.toString().indexOf("Individual") > -1);
01186 Assert.assertTrue(genlSiblings.toString().indexOf("JuvenileAnimal") > -1);
01187
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225 List allGenls = null;
01226 try {
01227 CycConstant existingObjectType = cycAccess.getKnownConstantByGuid("bd65d880-9c29-11b1-9dad-c379636f7270");
01228 allGenls = cycAccess.getAllGenls(existingObjectType);
01229 Assert.assertNotNull(allGenls);
01230 Assert.assertTrue(allGenls instanceof CycList);
01231 CycConstant objectType = cycAccess.getKnownConstantByGuid("bd58ab9d-9c29-11b1-9dad-c379636f7270");
01232 Assert.assertTrue(allGenls.contains(objectType));
01233 Assert.assertTrue(allGenls.contains(CycAccess.thing));
01234 }
01235 catch (Exception e) {
01236 CycAccess.current().close();
01237 Assert.fail(e.toString());
01238 }
01239
01240
01241 List allSpecs = null;
01242 try {
01243 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01244 allSpecs = cycAccess.getAllSpecs(canineAnimal);
01245 Assert.assertNotNull(allSpecs);
01246 Assert.assertTrue(allSpecs instanceof CycList);
01247 CycConstant jackal = cycAccess.getKnownConstantByGuid("bd58c2de-9c29-11b1-9dad-c379636f7270");
01248 Assert.assertTrue(allSpecs.contains(jackal));
01249 CycConstant retrieverDog = cycAccess.getKnownConstantByGuid("bd58e24b-9c29-11b1-9dad-c379636f7270");
01250 Assert.assertTrue(allSpecs.contains(retrieverDog));
01251 }
01252 catch (Exception e) {
01253 CycAccess.current().close();
01254 Assert.fail(e.toString());
01255 }
01256
01257
01258 List allGenlsWrt = null;
01259 try {
01260 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01261 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01262 allGenlsWrt = cycAccess.getAllGenlsWrt(dog, animal);
01263 Assert.assertNotNull(allGenlsWrt);
01264 Assert.assertTrue(allGenlsWrt instanceof CycList);
01265 CycConstant tameAnimal = cycAccess.getKnownConstantByGuid("c0fcd4a1-9c29-11b1-9dad-c379636f7270");
01266 Assert.assertTrue(allGenlsWrt.contains(tameAnimal));
01267 CycConstant airBreathingVertebrate = cycAccess.getKnownConstantByGuid("bef7c9c1-9c29-11b1-9dad-c379636f7270");
01268 Assert.assertTrue(allGenlsWrt.contains(airBreathingVertebrate));
01269 }
01270 catch (Exception e) {
01271 CycAccess.current().close();
01272 Assert.fail(e.toString());
01273 }
01274
01275
01276 List allDependentSpecs = null;
01277 try {
01278 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01279 allDependentSpecs = cycAccess.getAllDependentSpecs(canineAnimal);
01280 Assert.assertNotNull(allDependentSpecs);
01281 CycConstant wolfGray = cycAccess.getKnownConstantByGuid("becf2f96-9c29-11b1-9dad-c379636f7270");
01282 Assert.assertTrue(allDependentSpecs instanceof CycList);
01283 Assert.assertTrue(allDependentSpecs.contains(wolfGray));
01284 CycConstant wolf = cycAccess.getKnownConstantByGuid("bd58c31f-9c29-11b1-9dad-c379636f7270");
01285 Assert.assertTrue(allDependentSpecs.contains(wolf));
01286 }
01287 catch (Exception e) {
01288 CycAccess.current().close();
01289 Assert.fail(e.toString());
01290 }
01291
01292 List sampleLeafSpecs = null;
01293 try {
01294 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01295 sampleLeafSpecs = cycAccess.getSampleLeafSpecs(canineAnimal, 3);
01296 }
01297 catch (Exception e) {
01298 CycAccess.current().close();
01299 Assert.fail(e.toString());
01300 }
01301 Assert.assertNotNull(sampleLeafSpecs);
01302 Assert.assertTrue(sampleLeafSpecs instanceof CycList);
01303
01304 Assert.assertTrue(sampleLeafSpecs.size() > 0);
01305
01306
01307 boolean answer = true;
01308 try {
01309 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01310 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01311 answer = cycAccess.isSpecOf(dog, animal);
01312 }
01313 catch (Exception e) {
01314 CycAccess.current().close();
01315 Assert.fail(e.toString());
01316 }
01317 Assert.assertTrue(answer);
01318
01319
01320 answer = true;
01321 try {
01322 CycConstant wolf = cycAccess.getKnownConstantByGuid("bd58c31f-9c29-11b1-9dad-c379636f7270");
01323 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01324 answer = cycAccess.isGenlOf(canineAnimal, wolf);
01325 }
01326 catch (Exception e) {
01327 CycAccess.current().close();
01328 Assert.fail(e.toString());
01329 }
01330 Assert.assertTrue(answer);
01331
01332
01333 answer = true;
01334 try {
01335 CycConstant singlePurposeDevice = cycAccess.getKnownConstantByGuid("bd5897aa-9c29-11b1-9dad-c379636f7270");
01336 CycConstant physicalDevice = cycAccess.getKnownConstantByGuid("bd58c72f-9c29-11b1-9dad-c379636f7270");
01337
01338 answer = cycAccess.areTacitCoextensional(singlePurposeDevice, physicalDevice);
01339 }
01340 catch (Exception e) {
01341 CycAccess.current().close();
01342 Assert.fail(e.toString());
01343 }
01344 Assert.assertTrue(answer);
01345
01346
01347 answer = true;
01348 try {
01349 CycConstant singlePurposeDevice = cycAccess.getKnownConstantByGuid("bd5897aa-9c29-11b1-9dad-c379636f7270");
01350 CycConstant physicalDevice = cycAccess.getKnownConstantByGuid("bd58c72f-9c29-11b1-9dad-c379636f7270");
01351 answer = cycAccess.areAssertedCoextensional(singlePurposeDevice, physicalDevice);
01352 }
01353 catch (Exception e) {
01354 CycAccess.current().close();
01355 Assert.fail(e.toString());
01356 }
01357 Assert.assertTrue(answer);
01358
01359
01360 answer = true;
01361
01362 try {
01363 CycConstant domesticatedAnimal = cycAccess.getKnownConstantByGuid("c10c22cd-9c29-11b1-9dad-c379636f7270");
01364 CycConstant tameAnimal = cycAccess.getKnownConstantByGuid("c0fcd4a1-9c29-11b1-9dad-c379636f7270");
01365 answer = cycAccess.areIntersecting(domesticatedAnimal, tameAnimal);
01366 }
01367 catch (Exception e) {
01368 CycAccess.current().close();
01369 Assert.fail(e.toString());
01370 }
01371 Assert.assertTrue(answer);
01372
01373
01374
01375 answer = true;
01376 try {
01377 CycConstant wolf = cycAccess.getKnownConstantByGuid("bd58c31f-9c29-11b1-9dad-c379636f7270");
01378 CycConstant canineAnimal = cycAccess.getKnownConstantByGuid("bd58d044-9c29-11b1-9dad-c379636f7270");
01379 answer = cycAccess.areHierarchical(canineAnimal, wolf);
01380 }
01381 catch (Exception e) {
01382 CycAccess.current().close();
01383 Assert.fail(e.toString());
01384 }
01385 Assert.assertTrue(answer);
01386
01387
01388 String phrase = null;
01389 try {
01390
01391 phrase = cycAccess.getParaphrase(cycAccess.makeCycList("(#$isa #$Brazil #$Country)"));
01392 }
01393 catch (Exception e) {
01394 CycAccess.current().close();
01395 Assert.fail(e.toString());
01396 }
01397 Assert.assertNotNull(phrase);
01398 Assert.assertTrue(phrase.indexOf("Brazil (") > -1);
01399
01400 long endMilliseconds = System.currentTimeMillis();
01401 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
01402 }
01403
01404
01405
01406
01407 public void testAsciiCycAccess4 () {
01408 if (performOnlyBinaryApiModeTests ||
01409 (connectionMode == REMOTE_CYC_CONNECTION))
01410 return;
01411 System.out.println("\n**** testAsciiCycAccess 4 ****");
01412 CycAccess cycAccess = null;
01413 try {
01414 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01415 CycConnection.DEFAULT_BASE_PORT,
01416 CycConnection.ASCII_MODE,
01417 CycAccess.PERSISTENT_CONNECTION);
01418 }
01419 catch (Exception e) {
01420 Assert.fail(e.toString());
01421 }
01422
01423 doTestCycAccess4(cycAccess);
01424
01425 cycAccess.close();
01426 System.out.println("**** testAsciiCycAccess 4 OK ****");
01427 }
01428
01429
01430
01431
01432
01433 public void testBinaryCycAccess4 () {
01434 System.out.println("\n**** testBinaryCycAccess 4 ****");
01435 CycAccess cycAccess = null;
01436 try {
01437 if (connectionMode == LOCAL_CYC_CONNECTION)
01438 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01439 CycConnection.DEFAULT_BASE_PORT,
01440 CycConnection.BINARY_MODE,
01441 CycAccess.PERSISTENT_CONNECTION,
01442 CycConnection.SERIAL_MESSAGING_MODE);
01443 else if (connectionMode == REMOTE_CYC_CONNECTION)
01444 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
01445 else
01446 Assert.fail("Invalid connection mode " + connectionMode);
01447 }
01448 catch (Exception e) {
01449 Assert.fail(e.toString());
01450 }
01451
01452
01453 doTestCycAccess4(cycAccess);
01454
01455 cycAccess.close();
01456 System.out.println("**** testBinaryCycAccess 4 OK ****");
01457 }
01458
01459
01460
01461
01462 protected void doTestCycAccess4 (CycAccess cycAccess) {
01463 long startMilliseconds = System.currentTimeMillis();
01464 CycObjectFactory.resetCycConstantCaches();
01465
01466 CycList whyGenl = null;
01467 try {
01468 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01469 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01470 whyGenl = cycAccess.getWhyGenl(dog, animal);
01471 }
01472 catch (Exception e) {
01473 CycAccess.current().close();
01474 Assert.fail(e.toString());
01475 }
01476 Assert.assertNotNull(whyGenl);
01477 System.out.println("whyGenl "+ whyGenl);
01478
01479
01480
01481
01482
01483
01484
01485
01486
01487
01488
01489
01490
01491
01492
01493 List whyCollectionsIntersect = null;
01494 try {
01495 CycConstant domesticatedAnimal = cycAccess.getKnownConstantByGuid("c10c22cd-9c29-11b1-9dad-c379636f7270");
01496 CycConstant nonPersonAnimal = cycAccess.getKnownConstantByGuid("bd58e066-9c29-11b1-9dad-c379636f7270");
01497 whyCollectionsIntersect =
01498 cycAccess.getWhyCollectionsIntersect(domesticatedAnimal, nonPersonAnimal);
01499 Assert.assertNotNull(whyCollectionsIntersect);
01500 Assert.assertTrue(whyCollectionsIntersect instanceof CycList);
01501 System.out.println("whyCollectionsIntersect " + whyCollectionsIntersect);
01502 CycList expectedWhyCollectionsIntersect =
01503 cycAccess.makeCycList("(((#$genls #$DomesticatedAnimal #$TameAnimal) :TRUE) " +
01504 "((#$genls #$TameAnimal #$NonPersonAnimal) :TRUE))");
01505
01506
01507
01508
01509 }
01510 catch (Exception e) {
01511 CycAccess.current().close();
01512 Assert.fail(e.toString());
01513 }
01514
01515
01516 List collectionLeaves = null;
01517 try {
01518 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01519 collectionLeaves = cycAccess.getCollectionLeaves(animal);
01520 Assert.assertNotNull(collectionLeaves);
01521 Assert.assertTrue(collectionLeaves instanceof CycList);
01522 }
01523 catch (Exception e) {
01524 CycAccess.current().close();
01525 Assert.fail(e.toString());
01526 }
01527
01528
01529 List localDisjointWiths = null;
01530 try {
01531 CycConstant vegetableMatter =
01532 cycAccess.getKnownConstantByGuid("bd58c455-9c29-11b1-9dad-c379636f7270");
01533 localDisjointWiths = cycAccess.getDisjointWiths(vegetableMatter);
01534 Assert.assertNotNull(localDisjointWiths);
01535 Assert.assertTrue(localDisjointWiths.toString().indexOf("AnimalBLO") > 0);
01536 }
01537 catch (Exception e) {
01538 CycAccess.current().close();
01539 Assert.fail(e.toString());
01540 }
01541
01542
01543 boolean answer = true;
01544 try {
01545 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01546 CycConstant plant = cycAccess.getKnownConstantByGuid("bd58c6e1-9c29-11b1-9dad-c379636f7270");
01547 answer = cycAccess.areDisjoint(animal, plant);
01548 }
01549 catch (Exception e) {
01550 CycAccess.current().close();
01551 Assert.fail(e.toString());
01552 }
01553 Assert.assertTrue(answer);
01554
01555
01556 List minIsas = null;
01557 try {
01558 CycConstant wolf = cycAccess.getKnownConstantByGuid("bd58c31f-9c29-11b1-9dad-c379636f7270");
01559 minIsas = cycAccess.getMinIsas(wolf);
01560 CycConstant organismClassificationType = cycAccess.getKnownConstantByGuid("bd58dfe4-9c29-11b1-9dad-c379636f7270");
01561 Assert.assertTrue(minIsas.contains(organismClassificationType));
01562 }
01563 catch (Exception e) {
01564 CycAccess.current().close();
01565 Assert.fail(e.toString());
01566 }
01567
01568
01569 List instances = null;
01570 try {
01571 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01572 instances = cycAccess.getInstances(animal);
01573 Assert.assertTrue(instances instanceof CycList);
01574 CycConstant bigfoot = cycAccess.getKnownConstantByGuid("bdc6bd06-9c29-11b1-9dad-c379636f7270");
01575 Assert.assertTrue(((CycList) instances).contains(bigfoot));
01576 }
01577 catch (Exception e) {
01578 CycAccess.current().close();
01579 Assert.fail(e.toString());
01580 }
01581
01582
01583 List allIsas = null;
01584 try {
01585
01586 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01587 allIsas = cycAccess.getAllIsa(animal);
01588
01589 CycConstant organismClassificationType = cycAccess.getKnownConstantByGuid("bd58dfe4-9c29-11b1-9dad-c379636f7270");
01590 Assert.assertTrue(allIsas.contains(organismClassificationType));
01591 }
01592 catch (Exception e) {
01593 CycAccess.current().close();
01594 Assert.fail(e.toString());
01595 }
01596
01597
01598 List allInstances = null;
01599 try {
01600 CycConstant plant = cycAccess.getKnownConstantByGuid("bd58c6e1-9c29-11b1-9dad-c379636f7270");
01601 allInstances = cycAccess.getAllInstances(plant);
01602 CycConstant treatyOak = cycAccess.getKnownConstantByGuid("bfc0aa80-9c29-11b1-9dad-c379636f7270");
01603 Assert.assertTrue(allInstances.contains(treatyOak));
01604 CycConstant burningBushOldTestament = cycAccess.getKnownConstantByGuid("be846866-9c29-11b1-9dad-c379636f7270");
01605 Assert.assertTrue(allInstances.contains(burningBushOldTestament));
01606 }
01607 catch (Exception e) {
01608 CycAccess.current().close();
01609 Assert.fail(e.toString());
01610 }
01611
01612
01613 answer = true;
01614 try {
01615 CycConstant plant = cycAccess.getKnownConstantByGuid("bd58c6e1-9c29-11b1-9dad-c379636f7270");
01616 CycConstant treatyOak = cycAccess.getKnownConstantByGuid("bfc0aa80-9c29-11b1-9dad-c379636f7270");
01617 answer = cycAccess.isa(treatyOak, plant);
01618 }
01619 catch (Exception e) {
01620 CycAccess.current().close();
01621 Assert.fail(e.toString());
01622 }
01623 Assert.assertTrue(answer);
01624
01625
01626 ArrayList whyCollectionsIntersectParaphrase = null;
01627 try {
01628
01629 CycConstant domesticatedAnimal = cycAccess.getKnownConstantByGuid("c10c22cd-9c29-11b1-9dad-c379636f7270");
01630 CycConstant nonPersonAnimal = cycAccess.getKnownConstantByGuid("bd58e066-9c29-11b1-9dad-c379636f7270");
01631 System.out.println("bypassing getWhyCollectionsIntersectParaphrase");
01632
01633
01634
01635
01636 }
01637 catch (Exception e) {
01638 CycAccess.current().close();
01639 Assert.fail(e.toString());
01640 }
01641
01642
01643
01644
01645
01646
01647
01648
01649 ArrayList whyGenlParaphrase = null;
01650 try {
01651
01652 CycConstant dog = cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
01653 CycConstant animal = cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
01654 System.out.println("bypassing getWhyGenlParaphrase");
01655
01656
01657
01658 }
01659 catch (Exception e) {
01660 CycAccess.current().close();
01661 Assert.fail(e.toString());
01662 }
01663
01664
01665
01666
01667
01668
01669
01670
01671
01672
01673
01674
01675
01676
01677 long endMilliseconds = System.currentTimeMillis();
01678 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
01679 }
01680
01681
01682
01683
01684 public void testAsciiCycAccess5 () {
01685 if (performOnlyBinaryApiModeTests ||
01686 (connectionMode == REMOTE_CYC_CONNECTION))
01687 return;
01688 System.out.println("\n**** testAsciiCycAccess 5 ****");
01689 CycAccess cycAccess = null;
01690 try {
01691 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01692 CycConnection.DEFAULT_BASE_PORT,
01693 CycConnection.ASCII_MODE,
01694 CycAccess.PERSISTENT_CONNECTION);
01695 }
01696 catch (Exception e) {
01697 Assert.fail(e.toString());
01698 }
01699
01700 doTestCycAccess5(cycAccess);
01701
01702 cycAccess.close();
01703 System.out.println("**** testAsciiCycAccess 5 OK ****");
01704 }
01705
01706
01707
01708
01709
01710 public void testBinaryCycAccess5 () {
01711 System.out.println("\n**** testBinaryCycAccess 5 ****");
01712 CycAccess cycAccess = null;
01713 try {
01714 if (connectionMode == LOCAL_CYC_CONNECTION)
01715 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
01716 CycConnection.DEFAULT_BASE_PORT,
01717 CycConnection.BINARY_MODE,
01718 CycAccess.PERSISTENT_CONNECTION,
01719 CycConnection.SERIAL_MESSAGING_MODE);
01720 else if (connectionMode == REMOTE_CYC_CONNECTION)
01721 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
01722 else
01723 Assert.fail("Invalid connection mode " + connectionMode);
01724 }
01725 catch (Exception e) {
01726 Assert.fail(e.toString());
01727 }
01728
01729
01730 doTestCycAccess5(cycAccess);
01731
01732 cycAccess.close();
01733 System.out.println("**** testBinaryCycAccess 5 OK ****");
01734 }
01735
01736
01737
01738
01739 protected void doTestCycAccess5 (CycAccess cycAccess) {
01740 long startMilliseconds = System.currentTimeMillis();
01741 CycObjectFactory.resetCycConstantCaches();
01742
01743
01744 CycConstant cycConstant = null;
01745 try {
01746 cycConstant = cycAccess.createNewPermanent("CycAccessTestConstant");
01747 }
01748 catch (Exception e) {
01749 CycAccess.current().close();
01750 Assert.fail(e.toString());
01751 }
01752 Assert.assertNotNull(cycConstant);
01753 Assert.assertEquals("CycAccessTestConstant", cycConstant.getName());
01754
01755
01756 try {
01757 cycAccess.kill(cycConstant);
01758 }
01759 catch (Exception e) {
01760 CycAccess.current().close();
01761 e.printStackTrace();
01762 Assert.fail(e.toString());
01763 }
01764
01765 cycConstant = null;
01766 try {
01767 cycConstant = cycAccess.createNewPermanent("CycAccessTestConstant");
01768 }
01769 catch (Exception e) {
01770 CycAccess.current().close();
01771 e.printStackTrace();
01772 Assert.fail(e.toString());
01773 }
01774 Assert.assertNotNull(cycConstant);
01775 Assert.assertEquals("CycAccessTestConstant", cycConstant.getName());
01776
01777 CycConstant baseKb = null;
01778 try {
01779 baseKb = cycAccess.getConstantByName("BaseKB");
01780 }
01781 catch (Exception e) {
01782 CycAccess.current().close();
01783 Assert.fail(e.toString());
01784 }
01785 Assert.assertNotNull(cycConstant);
01786 Assert.assertEquals("BaseKB", baseKb.getName());
01787 String assertedComment = "A test comment";
01788 try {
01789
01790 cycAccess.assertComment(cycConstant, assertedComment, baseKb);
01791 }
01792 catch (Exception e) {
01793 CycAccess.current().close();
01794 Assert.fail(e.toString());
01795 }
01796 String comment = null;
01797 try {
01798 comment = cycAccess.getComment(cycConstant);
01799 }
01800 catch (Exception e) {
01801 CycAccess.current().close();
01802 Assert.fail(e.toString());
01803 }
01804 Assert.assertEquals(assertedComment, comment);
01805
01806 try {
01807 cycAccess.kill(cycConstant);
01808 }
01809 catch (Exception e) {
01810 CycAccess.current().close();
01811 Assert.fail(e.toString());
01812 }
01813 try {
01814 Assert.assertNull(cycAccess.getConstantByName("CycAccessTestConstant"));
01815 }
01816 catch (Exception e) {
01817 CycAccess.current().close();
01818 Assert.fail(e.toString());
01819 }
01820
01821
01822 boolean answer = true;
01823 try {
01824 answer = cycAccess.isValidConstantName("abc");
01825 }
01826 catch (Exception e) {
01827 CycAccess.current().close();
01828 Assert.fail(e.toString());
01829 }
01830 Assert.assertTrue(answer);
01831
01832 answer = true;
01833 try {
01834 answer = cycAccess.isValidConstantName(" abc");
01835 }
01836 catch (Exception e) {
01837 CycAccess.current().close();
01838 Assert.fail(e.toString());
01839 }
01840 Assert.assertTrue(! answer);
01841
01842 answer = true;
01843 try {
01844 answer = cycAccess.isValidConstantName("[abc]");
01845 }
01846 catch (Exception e) {
01847 CycAccess.current().close();
01848 Assert.fail(e.toString());
01849 }
01850 Assert.assertTrue(! answer);
01851
01852
01853
01854 answer = true;
01855 try {
01856 answer = cycAccess.isConstantNameAvailable("agent");
01857 }
01858 catch (Exception e) {
01859 CycAccess.current().close();
01860 Assert.fail(e.toString());
01861 }
01862 Assert.assertTrue(! answer);
01863
01864 answer = false;
01865 try {
01866 answer = cycAccess.isConstantNameAvailable("myAgent");
01867 }
01868 catch (Exception e) {
01869 CycAccess.current().close();
01870 Assert.fail(e.toString());
01871 }
01872 Assert.assertTrue(answer);
01873
01874
01875 CycConstant mt = null;
01876 ArrayList genlMts = new ArrayList();
01877 try {
01878 CycConstant modernMilitaryMt = cycAccess.getKnownConstantByGuid("c040a2f0-9c29-11b1-9dad-c379636f7270");
01879 CycConstant microtheory = cycAccess.getKnownConstantByGuid("bd5880d5-9c29-11b1-9dad-c379636f7270");
01880 genlMts.add(modernMilitaryMt);
01881 mt = cycAccess.createMicrotheory("CycAccessTestMt",
01882 "a unit test comment for the CycAccessTestMt microtheory.",
01883 microtheory,
01884 genlMts);
01885 }
01886 catch (Exception e) {
01887 CycAccess.current().close();
01888 Assert.fail(e.toString());
01889 }
01890 Assert.assertNotNull(mt);
01891 try {
01892 cycAccess.kill(mt);
01893 }
01894 catch (Exception e) {
01895 CycAccess.current().close();
01896 Assert.fail(e.toString());
01897 }
01898 try {
01899 Assert.assertNull(cycAccess.getConstantByName("CycAccessTestMt"));
01900 }
01901 catch (Exception e) {
01902 CycAccess.current().close();
01903 Assert.fail(e.toString());
01904 }
01905
01906
01907 CycConstant[] mts = {null, null, null};
01908 genlMts = new ArrayList();
01909 try {
01910 genlMts.add(cycAccess.baseKB);
01911 mts = cycAccess.createMicrotheorySystem("CycAccessTest",
01912 "a unit test comment for the CycAccessTestMt microtheory.",
01913 genlMts);
01914 }
01915 catch (Exception e) {
01916 CycAccess.current().close();
01917 Assert.fail(e.toString());
01918 }
01919 Assert.assertTrue(mts.length == 3);
01920 Assert.assertNotNull(mts[0]);
01921 Assert.assertEquals("#$CycAccessTestMt", mts[0].cyclify());
01922 Assert.assertNotNull(mts[1]);
01923 Assert.assertEquals("#$CycAccessTestVocabMt", mts[1].cyclify());
01924 Assert.assertNotNull(mts[2]);
01925 Assert.assertEquals("#$CycAccessTestDataMt", mts[2].cyclify());
01926 try {
01927 cycAccess.kill(mts);
01928 }
01929 catch (Exception e) {
01930 CycAccess.current().close();
01931 Assert.fail(e.toString());
01932 }
01933 try {
01934 Assert.assertNull(cycAccess.getConstantByName("CycAccessTestMt"));
01935 }
01936 catch (Exception e) {
01937 CycAccess.current().close();
01938 Assert.fail(e.toString());
01939 }
01940
01941
01942 try {
01943 CycList query = CycAccess.current().makeCycList("(#$objectFoundInLocation ?WHAT #$CityOfAustinTX)");
01944 CycVariable variable = CycObjectFactory.makeCycVariable("?WHAT");
01945 CycConstant everythingPSC = CycAccess.current().getKnownConstantByGuid("be7f041b-9c29-11b1-9dad-c379636f7270");
01946 mt = everythingPSC;
01947 CycList response = CycAccess.current().askWithVariable(query, variable, mt);
01948 Assert.assertNotNull(response);
01949 Assert.assertTrue(response.contains(CycAccess.current().getConstantByName("#$UniversityOfTexasAtAustin")));
01950 }
01951 catch (Exception e) {
01952 CycAccess.current().close();
01953 Assert.fail(e.toString());
01954 }
01955
01956
01957 try {
01958 CycList query = CycAccess.current().makeCycList("(#$objectFoundInLocation ?WHAT ?WHERE)");
01959 ArrayList variables = new ArrayList();
01960 variables.add(CycObjectFactory.makeCycVariable("?WHAT"));
01961 variables.add(CycObjectFactory.makeCycVariable("?WHERE"));
01962 CycConstant universeDataMt = CycAccess.current().getKnownConstantByGuid("bd58d0f3-9c29-11b1-9dad-c379636f7270");
01963 CycList response = CycAccess.current().askWithVariables(query, variables, universeDataMt);
01964 Assert.assertNotNull(response);
01965 }
01966 catch (Exception e) {
01967 CycAccess.current().close();
01968 Assert.fail(e.toString());
01969 }
01970
01971
01972 try {
01973
01974 CycList query = CycAccess.current().makeCycList("(#$objectFoundInLocation #$UniversityOfTexasAtAustin #$CityOfAustinTX)");
01975 CycConstant everythingPSC = CycAccess.current().getKnownConstantByGuid("be7f041b-9c29-11b1-9dad-c379636f7270");
01976 mt = everythingPSC;
01977 Assert.assertTrue(CycAccess.current().isQueryTrue(query, mt));
01978 query = CycAccess.current().makeCycList("(#$objectFoundInLocation #$UniversityOfTexasAtAustin #$CityOfHoustonTX)");
01979 Assert.assertTrue(! CycAccess.current().isQueryTrue(query, mt));
01980 }
01981 catch (Exception e) {
01982 e.printStackTrace();
01983 CycAccess.current().close();
01984 Assert.fail(e.toString());
01985 }
01986
01987
01988 try {
01989 cycAccess = CycAccess.current();
01990 CycConstant country = cycAccess.getKnownConstantByGuid("bd588879-9c29-11b1-9dad-c379636f7270");
01991 CycConstant worldGeographyMt = cycAccess.getKnownConstantByGuid("bfaac020-9c29-11b1-9dad-c379636f7270");
01992 Assert.assertTrue(cycAccess.countAllInstances(country, worldGeographyMt) > 0);
01993 }
01994 catch (Exception e) {
01995 CycAccess.current().close();
01996 Assert.fail(e.toString());
01997 }
01998 long endMilliseconds = System.currentTimeMillis();
01999 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
02000 }
02001
02002
02003
02004
02005 public void testAsciiCycAccess6 () {
02006 if (performOnlyBinaryApiModeTests ||
02007 (connectionMode == REMOTE_CYC_CONNECTION))
02008 return;
02009 System.out.println("\n**** testAsciiCycAccess 6 ****");
02010 CycAccess cycAccess = null;
02011 try {
02012 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
02013 CycConnection.DEFAULT_BASE_PORT,
02014 CycConnection.ASCII_MODE,
02015 CycAccess.PERSISTENT_CONNECTION);
02016 }
02017 catch (Exception e) {
02018 Assert.fail(e.toString());
02019 }
02020
02021 doTestCycAccess6(cycAccess);
02022
02023 cycAccess.close();
02024 System.out.println("**** testAsciiCycAccess 6 OK ****");
02025 }
02026
02027
02028
02029
02030
02031 public void testBinaryCycAccess6 () {
02032 System.out.println("\n**** testBinaryCycAccess 6 ****");
02033 CycAccess cycAccess = null;
02034 try {
02035 if (connectionMode == LOCAL_CYC_CONNECTION)
02036 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
02037 CycConnection.DEFAULT_BASE_PORT,
02038 CycConnection.BINARY_MODE,
02039 CycAccess.PERSISTENT_CONNECTION,
02040 CycConnection.SERIAL_MESSAGING_MODE);
02041 else if (connectionMode == REMOTE_CYC_CONNECTION)
02042 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
02043 else
02044 Assert.fail("Invalid connection mode " + connectionMode);
02045 }
02046 catch (Exception e) {
02047 Assert.fail(e.toString());
02048 }
02049
02050
02051 doTestCycAccess6(cycAccess);
02052
02053 cycAccess.close();
02054 System.out.println("**** testBinaryCycAccess 6 OK ****");
02055 }
02056
02057
02058
02059
02060 protected void doTestCycAccess6 (CycAccess cycAccess) {
02061 long startMilliseconds = System.currentTimeMillis();
02062 CycObjectFactory.resetCycConstantCaches();
02063
02064 try {
02065 Assert.assertEquals(cycAccess.getConstantByName("and"), CycAccess.and);
02066 Assert.assertEquals(cycAccess.getConstantByName("BaseKB"), CycAccess.baseKB);
02067 Assert.assertEquals(cycAccess.getConstantByName("BinaryPredicate"), CycAccess.binaryPredicate);
02068 Assert.assertEquals(cycAccess.getConstantByName("comment"), CycAccess.comment);
02069 Assert.assertEquals(cycAccess.getConstantByName("different"), CycAccess.different);
02070 Assert.assertEquals(cycAccess.getConstantByName("elementOf"), CycAccess.elementOf);
02071 Assert.assertEquals(cycAccess.getConstantByName("genlMt"), CycAccess.genlMt);
02072 Assert.assertEquals(cycAccess.getConstantByName("genls"), CycAccess.genls);
02073 Assert.assertEquals(cycAccess.getConstantByName("isa"), CycAccess.isa);
02074 Assert.assertEquals(cycAccess.getConstantByName("numericallyEquals"), CycAccess.numericallyEqual);
02075 Assert.assertEquals(cycAccess.getConstantByName("or"), CycAccess.or);
02076 Assert.assertEquals(cycAccess.getConstantByName("PlusFn"), CycAccess.plusFn);
02077 }
02078 catch (Exception e) {
02079 CycAccess.current().close();
02080 Assert.fail(e.toString());
02081 }
02082
02083
02084 try {
02085 CycConstant keRequirement = cycAccess.getKnownConstantByGuid("c1141606-9c29-11b1-9dad-c379636f7270");
02086 Assert.assertTrue(cycAccess.isBackchainRequired(keRequirement, cycAccess.baseKB));
02087 Assert.assertTrue(! cycAccess.isBackchainEncouraged(keRequirement, cycAccess.baseKB));
02088 Assert.assertTrue(! cycAccess.isBackchainDiscouraged(keRequirement, cycAccess.baseKB));
02089 Assert.assertTrue(! cycAccess.isBackchainForbidden(keRequirement, cycAccess.baseKB));
02090
02091 CycConstant nearestIsa = cycAccess.getKnownConstantByGuid("bf411eed-9c29-11b1-9dad-c379636f7270");
02092 Assert.assertTrue(! cycAccess.isBackchainRequired(nearestIsa, cycAccess.baseKB));
02093 Assert.assertTrue(! cycAccess.isBackchainEncouraged(nearestIsa, cycAccess.baseKB));
02094 Assert.assertTrue(! cycAccess.isBackchainDiscouraged(nearestIsa, cycAccess.baseKB));
02095 Assert.assertTrue(cycAccess.isBackchainForbidden(nearestIsa, cycAccess.baseKB));
02096 }
02097 catch (Exception e) {
02098 e.printStackTrace();
02099 CycAccess.current().close();
02100 Assert.fail(e.toString());
02101 }
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114
02115
02116
02117
02118
02119
02120
02121
02122
02123
02124
02125
02126
02127
02128
02129
02130
02131
02132
02133
02134
02135
02136 try {
02137 CycSymbol a = CycObjectFactory.makeCycSymbol("a");
02138 cycAccess.setSymbolValue(a, new Integer(1));
02139 Assert.assertEquals(new Integer(1), cycAccess.getSymbolValue(a));
02140 cycAccess.setSymbolValue(a, "abc");
02141 Assert.assertEquals("abc", cycAccess.getSymbolValue(a));
02142 cycAccess.setSymbolValue(a, CycObjectFactory.t);
02143 Assert.assertEquals(CycObjectFactory.t, cycAccess.getSymbolValue(a));
02144 cycAccess.setSymbolValue(a, CycObjectFactory.nil);
02145 Assert.assertEquals(CycObjectFactory.nil, cycAccess.getSymbolValue(a));
02146
02147 CycConstant brazil = cycAccess.getConstantByName("#$Brazil");
02148 cycAccess.setSymbolValue(a, brazil);
02149 Assert.assertEquals(brazil, cycAccess.getSymbolValue(a));
02150 CycList valueList1 = cycAccess.makeCycList("(QUOTE (#$France #$Brazil))");
02151 CycList valueList2 = cycAccess.makeCycList("(#$France #$Brazil)");
02152 cycAccess.setSymbolValue(a, valueList1);
02153 Assert.assertEquals(valueList2, cycAccess.getSymbolValue(a));
02154 }
02155 catch (Exception e) {
02156 e.printStackTrace();
02157 CycAccess.current().close();
02158 Assert.fail(e.toString());
02159 }
02160
02161
02162 Integer nartId = new Integer(1);
02163 try {
02164 CycNart nart1 = cycAccess.getCycNartById(nartId);
02165 Assert.assertNotNull(nart1);
02166 Assert.assertNotNull(nart1.getFunctor());
02167 Assert.assertTrue(nart1.getFunctor() instanceof CycFort);
02168 Assert.assertNotNull(nart1.getArguments());
02169 Assert.assertTrue(nart1.getArguments() instanceof CycList);
02170
02171 }
02172 catch (Exception e) {
02173 CycAccess.current().close();
02174 Assert.fail(e.toString());
02175 }
02176
02177
02178 try {
02179
02180 CycNart nart1 = cycAccess.getCycNartById(nartId);
02181 CycNart nart2 = cycAccess.getCycNartById(nartId);
02182 Assert.assertEquals(nart1, nart2);
02183 CycList valueList = new CycList();
02184 valueList.add(CycObjectFactory.quote);
02185 CycList nartList = new CycList();
02186 valueList.add(nartList);
02187 nartList.add(nart1);
02188 nartList.add(nart2);
02189 CycSymbol a = CycObjectFactory.makeCycSymbol("a");
02190 cycAccess.setSymbolValue(a, valueList);
02191 Object object = cycAccess.getSymbolValue(a);
02192 Assert.assertNotNull(object);
02193 Assert.assertTrue(object instanceof CycList);
02194 CycList nartList1 = (CycList) object;
02195 Object element1 = nartList1.first();
02196 Assert.assertTrue((element1 instanceof CycNart) || (element1 instanceof CycList));
02197 if (element1 instanceof CycList)
02198 element1 = CycNart.coerceToCycNart(element1);
02199 CycNart nart3 = (CycNart) element1;
02200 Assert.assertNotNull(nart3.getFunctor());
02201 Assert.assertTrue(nart3.getFunctor() instanceof CycFort);
02202 Assert.assertNotNull(nart3.getArguments());
02203 Assert.assertTrue(nart3.getArguments() instanceof CycList);
02204 Object element2 = nartList1.second();
02205 Assert.assertTrue((element2 instanceof CycNart) || (element2 instanceof CycList));
02206 if (element2 instanceof CycList)
02207 element2 = CycNart.coerceToCycNart(element2);
02208 CycNart nart4 = (CycNart) element2;
02209 Assert.assertNotNull(nart4.getFunctor());
02210 Assert.assertTrue(nart4.getFunctor() instanceof CycFort);
02211 Assert.assertNotNull(nart4.getArguments());
02212 Assert.assertTrue(nart4.getArguments() instanceof CycList);
02213 if (cycAccess.getCommunicationMode() == CycConnection.BINARY_MODE) {
02214 Assert.assertEquals(nart1.cyclify(), nart3.cyclify());
02215 Assert.assertEquals(nart1.cyclify(), nart4.cyclify());
02216 }
02217 else {
02218 Assert.assertEquals(nart1.toString().toUpperCase(), nart3.toString().toUpperCase());
02219 Assert.assertEquals(nart1.toString().toUpperCase(), nart4.toString().toUpperCase());
02220 }
02221 }
02222 catch (Exception e) {
02223 e.printStackTrace();
02224 CycAccess.current().close();
02225 Assert.fail(e.toString());
02226 }
02227
02228
02229 try {
02230 Assert.assertTrue(cycAccess.isWellFormedFormula(cycAccess.makeCycList("(#$genls #$Dog #$Animal)")));
02231
02232 Assert.assertTrue(cycAccess.isWellFormedFormula(cycAccess.makeCycList("(#$genls #$Dog #$Plant)")));
02233 Assert.assertTrue(cycAccess.isWellFormedFormula(cycAccess.makeCycList("(#$genls ?X #$Animal)")));
02234 Assert.assertTrue(! cycAccess.isWellFormedFormula(cycAccess.makeCycList("(#$genls #$Dog #$Brazil)")));
02235 Assert.assertTrue(! cycAccess.isWellFormedFormula(cycAccess.makeCycList("(#$genls ?X #$Brazil)")));
02236 }
02237 catch (Exception e) {
02238 e.printStackTrace();
02239 CycAccess.current().close();
02240 Assert.fail(e.toString());
02241 }
02242
02243
02244 try {
02245 Assert.assertTrue(cycAccess.isEvaluatablePredicate(CycAccess.different));
02246 CycConstant doneBy = cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
02247 Assert.assertTrue(! cycAccess.isEvaluatablePredicate(doneBy));
02248 }
02249 catch (Exception e) {
02250 e.printStackTrace();
02251 CycAccess.current().close();
02252 Assert.fail(e.toString());
02253 }
02254
02255
02256 try {
02257 CycConstant algeria = cycAccess.getKnownConstantByGuid("bd588c92-9c29-11b1-9dad-c379636f7270");
02258 CycConstant percentOfRegionIs = cycAccess.getKnownConstantByGuid("bfb0c6e5-9c29-11b1-9dad-c379636f7270");
02259 CycConstant ciaWorldFactbook1995Mt = cycAccess.getKnownConstantByGuid("c0a41a91-9c29-11b1-9dad-c379636f7270");
02260 CycConstant InferencePSC = cycAccess.getKnownConstantByGuid("bd58915a-9c29-11b1-9dad-c379636f7270");
02261
02262
02263 Assert.assertTrue(cycAccess.hasSomePredicateUsingTerm(percentOfRegionIs,
02264 algeria,
02265 new Integer(1),
02266 ciaWorldFactbook1995Mt));
02267
02268 Assert.assertTrue(cycAccess.hasSomePredicateUsingTerm(percentOfRegionIs,
02269 algeria,
02270 new Integer(1),
02271 InferencePSC));
02272 Assert.assertTrue(! cycAccess.hasSomePredicateUsingTerm(percentOfRegionIs,
02273 algeria,
02274 new Integer(2),
02275 ciaWorldFactbook1995Mt));
02276 }
02277 catch (Exception e) {
02278 e.printStackTrace();
02279 CycAccess.current().close();
02280 Assert.fail(e.toString());
02281 }
02282
02283 long endMilliseconds = System.currentTimeMillis();
02284 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
02285 }
02286
02287
02288
02289
02290 public void testAsciiCycAccess7 () {
02291 if (performOnlyBinaryApiModeTests ||
02292 (connectionMode == REMOTE_CYC_CONNECTION))
02293 return;
02294 System.out.println("\n**** testAsciiCycAccess 7 ****");
02295 CycAccess cycAccess = null;
02296 try {
02297
02298 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
02299 CycConnection.DEFAULT_BASE_PORT,
02300 CycConnection.ASCII_MODE,
02301 CycAccess.PERSISTENT_CONNECTION);
02302 }
02303 catch (Exception e) {
02304 Assert.fail(e.toString());
02305 }
02306
02307 doTestCycAccess7(cycAccess);
02308
02309 cycAccess.close();
02310 System.out.println("**** testAsciiCycAccess 7 OK ****");
02311 }
02312
02313
02314
02315
02316
02317 public void testBinaryCycAccess7 () {
02318 System.out.println("\n**** testBinaryCycAccess 7 ****");
02319 CycAccess cycAccess = null;
02320 try {
02321 if (connectionMode == LOCAL_CYC_CONNECTION)
02322 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
02323 CycConnection.DEFAULT_BASE_PORT,
02324 CycConnection.BINARY_MODE,
02325 CycAccess.PERSISTENT_CONNECTION,
02326 CycConnection.SERIAL_MESSAGING_MODE);
02327 else if (connectionMode == REMOTE_CYC_CONNECTION)
02328 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
02329 else
02330 Assert.fail("Invalid connection mode " + connectionMode);
02331
02332
02333
02334
02335 String script = "(pwhen (cand (boundp '*eval-in-api?*) \n" +
02336 " (cnot *eval-in-api?*)) \n" +
02337 " (csetq *eval-in-api?* t))";
02338 cycAccess.converseVoid(script);
02339 script = "(clear-environment)";
02340 cycAccess.converseVoid(script);
02341
02342
02343 script = "(csetq my-byte-vector (vector 0 1 2 3 4 255))";
02344 Object responseObject = cycAccess.converseObject(script);
02345 Assert.assertNotNull(responseObject);
02346 Assert.assertTrue(responseObject instanceof ByteArray);
02347 byte[] myBytes = {0, 1, 2, 3, 4, -1};
02348 ByteArray myByteArray = new ByteArray(myBytes);
02349 Assert.assertEquals(myByteArray, responseObject);
02350 CycList command = new CycList();
02351 command.add(CycObjectFactory.makeCycSymbol("equalp"));
02352 command.add(CycObjectFactory.makeCycSymbol("my-byte-vector"));
02353 CycList command1 = new CycList();
02354 command.add(command1);
02355 command1.add(CycObjectFactory.quote);
02356 command1.add(myByteArray);
02357 Assert.assertTrue(cycAccess.converseBoolean(command));
02358 script = "(clear-environment)";
02359 cycAccess.converseVoid(script);
02360 }
02361 catch (Exception e) {
02362 e.printStackTrace();
02363 Assert.fail(e.toString());
02364 }
02365
02366
02367 doTestCycAccess7(cycAccess);
02368
02369 cycAccess.close();
02370 System.out.println("**** testBinaryCycAccess 7 OK ****");
02371 }
02372
02373
02374
02375
02376 protected void doTestCycAccess7 (CycAccess cycAccess) {
02377 long startMilliseconds = System.currentTimeMillis();
02378 CycObjectFactory.resetCycConstantCaches();
02379
02380
02381
02382 try {
02383 String script;
02384 Object responseObject;
02385 CycList responseList;
02386 String responseString;
02387 boolean responseBoolean;
02388
02389
02390 script = "(pwhen (cand (boundp '*eval-in-api?*) \n" +
02391 " (cnot *eval-in-api?*)) \n" +
02392 " (csetq *eval-in-api?* t))";
02393 cycAccess.converseVoid(script);
02394
02395
02396 script = "(get-environment)";
02397 responseString = cycAccess.converseString(script);
02398 Assert.assertNotNull(responseString);
02399
02400
02401 script =
02402 "(define my-copy-tree (tree) \n" +
02403 " (ret \n" +
02404 " (fif (atom tree) \n" +
02405 " tree \n" +
02406 " ;; else \n" +
02407 " (cons (my-copy-tree (first tree)) \n" +
02408 " (my-copy-tree (rest tree))))))";
02409 responseObject = cycAccess.converseObject(script);
02410 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-copy-tree"), responseObject);
02411 script = "(csetq a '(((#$Brazil #$Dog) #$Plant)))";
02412 responseList = cycAccess.converseList(script);
02413 Assert.assertEquals(cycAccess.makeCycList("(((#$Brazil #$Dog) #$Plant))"),
02414 responseList);
02415 script = "(csetq b (my-copy-tree a))";
02416 responseList = cycAccess.converseList(script);
02417 Assert.assertEquals(cycAccess.makeCycList("(((#$Brazil #$Dog) #$Plant))"),
02418 responseList);
02419 script = "(cand (equal a b) (cnot (eq a b)))";
02420 responseBoolean = cycAccess.converseBoolean(script);
02421 Assert.assertTrue(responseBoolean);
02422
02423 script =
02424 "(define my-floor (x y) \n" +
02425 " (clet (results) \n" +
02426 " (csetq results (multiple-value-list (floor x y))) \n" +
02427 " (ret results)))";
02428 responseObject = cycAccess.converseObject(script);
02429 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-floor"), responseObject);
02430 script = "(my-floor 5 3)";
02431 responseList = cycAccess.converseList(script);
02432 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02433
02434 script =
02435 "(defmacro my-macro (a b c) \n" +
02436 " (ret `(list ,a ,b ,c)))";
02437 responseObject = cycAccess.converseObject(script);
02438 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-macro"), responseObject);
02439 script = "(my-macro #$Dog #$Plant #$Brazil)";
02440 responseList = cycAccess.converseList(script);
02441 Assert.assertEquals(cycAccess.makeCycList("(#$Dog #$Plant #$Brazil)"), responseList);
02442
02443 script =
02444 "(defmacro my-floor-macro (x y) \n" +
02445 " (ret `(floor ,x ,y)))";
02446 responseObject = cycAccess.converseObject(script);
02447 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-floor-macro"), responseObject);
02448 script =
02449 "(define my-floor-macro-test (x y) \n" +
02450 " (ret (multiple-value-list (my-floor-macro x y))))";
02451 responseObject = cycAccess.converseObject(script);
02452 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-floor-macro-test"), responseObject);
02453 script = "(my-floor-macro-test 5 3)";
02454 responseList = cycAccess.converseList(script);
02455 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02456
02457 script =
02458 "(defmacro my-floor-macro (a b) \n" +
02459 " (ret `(floor ,x ,y)))";
02460 responseObject = cycAccess.converseObject(script);
02461 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-floor-macro"), responseObject);
02462 script = "(my-floor-macro-test 5 3)";
02463 responseList = cycAccess.converseList(script);
02464 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02465
02466
02467 script = "(csetq a '(1 #$Dog #$Plant))";
02468 cycAccess.converseVoid(script);
02469 script = "(symbol-value 'a)";
02470 responseList = cycAccess.converseList(script);
02471 Assert.assertEquals(cycAccess.makeCycList("(1 #$Dog #$Plant)"), responseList);
02472
02473 script = "(csetq a -1)";
02474 cycAccess.converseVoid(script);
02475 script = "(symbol-value 'a)";
02476 responseObject = cycAccess.converseObject(script);
02477 Assert.assertEquals(new Integer(-1), responseObject);
02478
02479 script =
02480 "(csetq a '(1 #$Dog #$Plant) \n" +
02481 " b '(2 #$Dog #$Plant) \n" +
02482 " c 3)";
02483 cycAccess.converseVoid(script);
02484 script = "(symbol-value 'a)";
02485 responseList = cycAccess.converseList(script);
02486 Assert.assertEquals(cycAccess.makeCycList("(1 #$Dog #$Plant)"), responseList);
02487 script = "(symbol-value 'b)";
02488 responseList = cycAccess.converseList(script);
02489 Assert.assertEquals(cycAccess.makeCycList("(2 #$Dog #$Plant)"), responseList);
02490 script = "(symbol-value 'c)";
02491 responseObject = cycAccess.converseObject(script);
02492 Assert.assertEquals(new Integer(3), responseObject);
02493
02494 script = "(clet ((a 0)) (cinc a) a)";
02495 Assert.assertEquals(new Integer(1), cycAccess.converseObject(script));
02496
02497 script = "(clet ((a 0)) (cinc a 10) a)";
02498 Assert.assertEquals(new Integer(10), cycAccess.converseObject(script));
02499
02500 script = "(clet ((a 0)) (cdec a) a)";
02501 Assert.assertEquals(new Integer(-1), cycAccess.converseObject(script));
02502
02503 script = "(clet ((a 0)) (cdec a 10) a)";
02504 Assert.assertEquals(new Integer(-10), cycAccess.converseObject(script));
02505
02506 script = "(cpush 4 a)";
02507 cycAccess.converseVoid(script);
02508 script = "(symbol-value 'a)";
02509 responseList = cycAccess.converseList(script);
02510 Assert.assertEquals(cycAccess.makeCycList("(4 1 #$Dog #$Plant)"), responseList);
02511
02512 script = "(cpop a)";
02513 cycAccess.converseVoid(script);
02514 script = "(symbol-value 'a)";
02515 responseList = cycAccess.converseList(script);
02516 Assert.assertEquals(cycAccess.makeCycList("(1 #$Dog #$Plant)"), responseList);
02517
02518 script = "(fi-set-parameter 'my-parm '(1 #$Dog #$Plant))";
02519 cycAccess.converseVoid(script);
02520 script = "(symbol-value 'my-parm)";
02521 responseList = cycAccess.converseList(script);
02522 Assert.assertEquals(cycAccess.makeCycList("(1 #$Dog #$Plant)"), responseList);
02523
02524 script =
02525 "(clet (a b) \n" +
02526 " (csetq a '(1 2 3)) \n" +
02527 " (csetq b (cpop a)) \n" +
02528 " (list a b))";
02529 responseList = cycAccess.converseList(script);
02530 Assert.assertEquals(cycAccess.makeCycList("((2 3) (2 3))"), responseList);
02531
02532
02533 script = "(clear-environment)";
02534 cycAccess.converseVoid(script);
02535 script = "(get-environment)";
02536 responseString = cycAccess.converseString(script);
02537 Assert.assertEquals("\n", responseString);
02538 Assert.assertTrue(! cycAccess.converseBoolean("(boundp 'a)"));
02539 cycAccess.converseVoid("(csetq a nil)");
02540 Assert.assertTrue(cycAccess.converseBoolean("(boundp 'a)"));
02541
02542
02543 script = "(csetq my-parm '(2 #$Dog #$Plant))";
02544 cycAccess.converseVoid(script);
02545 script = "(fi-get-parameter 'my-parm)";
02546 responseList = cycAccess.converseList(script);
02547 Assert.assertEquals(cycAccess.makeCycList("(2 #$Dog #$Plant)"), responseList);
02548
02549
02550 script = "(eval '(csetq a 4))";
02551 responseObject = cycAccess.converseObject(script);
02552 Assert.assertEquals(new Integer(4), responseObject);
02553 script = "(eval 'a)";
02554 responseObject = cycAccess.converseObject(script);
02555 Assert.assertEquals(new Integer(4), responseObject);
02556
02557 script = "(eval (list 'csetq 'a 5))";
02558 responseObject = cycAccess.converseObject(script);
02559 Assert.assertEquals(new Integer(5), responseObject);
02560 script = "(eval 'a)";
02561 responseObject = cycAccess.converseObject(script);
02562 Assert.assertEquals(new Integer(5), responseObject);
02563
02564 script = "(fi-eval '(csetq a 4))";
02565 responseObject = cycAccess.converseObject(script);
02566 Assert.assertEquals(new Integer(4), responseObject);
02567 script = "(fi-eval 'a)";
02568 responseObject = cycAccess.converseObject(script);
02569 Assert.assertEquals(new Integer(4), responseObject);
02570
02571 script = "(fi-eval (list 'csetq 'a 5))";
02572 responseObject = cycAccess.converseObject(script);
02573 Assert.assertEquals(new Integer(5), responseObject);
02574 script = "(fi-eval 'a)";
02575 responseObject = cycAccess.converseObject(script);
02576 Assert.assertEquals(new Integer(5), responseObject);
02577
02578 script = "(fi-local-eval '(csetq a 4))";
02579 responseObject = cycAccess.converseObject(script);
02580 Assert.assertEquals(new Integer(4), responseObject);
02581 script = "(fi-local-eval 'a)";
02582 responseObject = cycAccess.converseObject(script);
02583 Assert.assertEquals(new Integer(4), responseObject);
02584
02585 script = "(fi-local-eval (list 'csetq 'a 5))";
02586 responseObject = cycAccess.converseObject(script);
02587 Assert.assertEquals(new Integer(5), responseObject);
02588 script = "(fi-local-eval 'a)";
02589 responseObject = cycAccess.converseObject(script);
02590 Assert.assertEquals(new Integer(5), responseObject);
02591
02592
02593
02594 script = "(apply #'+ '(1 2 3))";
02595 responseObject = cycAccess.converseObject(script);
02596 Assert.assertEquals(new Integer(6), responseObject);
02597
02598 script = "(apply #'+ 1 2 '(3 4 5))";
02599 responseObject = cycAccess.converseObject(script);
02600 Assert.assertEquals(new Integer(15), responseObject);
02601
02602 script = "(apply (function +) '(1 2 3))";
02603 responseObject = cycAccess.converseObject(script);
02604 Assert.assertEquals(new Integer(6), responseObject);
02605
02606 script = "(apply (function +) 1 2 '(3 4 5))";
02607 responseObject = cycAccess.converseObject(script);
02608 Assert.assertEquals(new Integer(15), responseObject);
02609
02610 script = "(apply #'my-copy-tree '((1 (2 (3)))))";
02611 responseList = cycAccess.converseList(script);
02612 Assert.assertEquals(cycAccess.makeCycList("(1 (2 (3)))"),
02613 responseList);
02614
02615
02616 script = "(funcall #'+ 1 2 3)";
02617 responseObject = cycAccess.converseObject(script);
02618 Assert.assertEquals(new Integer(6), responseObject);
02619
02620 script = "(funcall (function +) 1 2 3)";
02621 responseObject = cycAccess.converseObject(script);
02622 Assert.assertEquals(new Integer(6), responseObject);
02623
02624 script = "(funcall #'my-copy-tree (1 (2 (3))))";
02625 responseList = cycAccess.converseList(script);
02626 Assert.assertEquals(cycAccess.makeCycList("(1 (2 (3)))"),
02627 responseList);
02628
02629
02630 script = "(multiple-value-list (floor 5 3))";
02631 responseList = cycAccess.converseList(script);
02632 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02633
02634 script = "(clear-environment)";
02635 cycAccess.converseVoid(script);
02636 script = "(get-environment)";
02637 responseString = cycAccess.converseString(script);
02638 Assert.assertEquals("\n", responseString);
02639 script = "(csetq answer nil)";
02640 responseObject = cycAccess.converseObject(script);
02641 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02642
02643 script = "(cmultiple-value-bind (a b) \n" +
02644 " (floor 5 3) \n" +
02645 " (csetq answer (list a b)))";
02646 responseList = cycAccess.converseList(script);
02647 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02648 script = "(symbol-value 'answer)";
02649 responseList = cycAccess.converseList(script);
02650 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseList);
02651
02652 script =
02653 "(define my-multiple-value-fn (arg1 arg2) \n" +
02654 " (ret (values arg1 arg2 (list arg1 arg2) 0)))";
02655 responseObject = cycAccess.converseObject(script);
02656 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-multiple-value-fn"), responseObject);
02657
02658 script = "(my-multiple-value-fn #$Brazil #$Dog)";
02659 responseObject = cycAccess.converseObject(script);
02660 Assert.assertEquals(cycAccess.getKnownConstantByGuid("bd588f01-9c29-11b1-9dad-c379636f7270"),
02661 responseObject);
02662
02663 script = "(cmultiple-value-bind (a b c d) \n" +
02664 " (my-multiple-value-fn #$Brazil #$Dog) \n" +
02665 " (csetq answer (list a b c d)))";
02666 responseList = cycAccess.converseList(script);
02667 Assert.assertEquals(cycAccess.makeCycList("(#$Brazil #$Dog (#$Brazil #$Dog) 0)"), responseList);
02668 script = "(symbol-value 'answer)";
02669 responseList = cycAccess.converseList(script);
02670 Assert.assertEquals(cycAccess.makeCycList("(#$Brazil #$Dog (#$Brazil #$Dog) 0)"), responseList);
02671
02672
02673 script = "(untrace)";
02674 responseObject = cycAccess.converseObject(script);
02675 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02676
02677 script = "(clear-trace-log)";
02678 responseObject = cycAccess.converseObject(script);
02679 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02680
02681 script = "(get-trace-log)";
02682 responseString = cycAccess.converseString(script);
02683 Assert.assertEquals("\n", responseString);
02684
02685 script = "(trace my-copy-tree)";
02686 responseObject = cycAccess.converseObject(script);
02687 Assert.assertEquals(cycAccess.makeCycList("(my-copy-tree)"), responseObject);
02688
02689 script = "(trace)";
02690 responseObject = cycAccess.converseObject(script);
02691 Assert.assertEquals(cycAccess.makeCycList("(my-copy-tree)"), responseObject);
02692
02693 script = "(my-copy-tree '(1 (2 (3))))";
02694 responseList = cycAccess.converseList(script);
02695 Assert.assertEquals(cycAccess.makeCycList("(1 (2 (3)))"),
02696 responseList);
02697
02698 script = "(get-trace-log)";
02699 responseString = cycAccess.converseString(script);
02700 String expectedTraceLog =
02701 "\n" +
02702 " 0: (MY-COPY-TREE (1 (2 (3))))\n" +
02703 " 1: (MY-COPY-TREE 1)\n" +
02704 " 1: returned 1 \n" +
02705 " 1: (MY-COPY-TREE ((2 (3))))\n" +
02706 " 2: (MY-COPY-TREE (2 (3)))\n" +
02707 " 3: (MY-COPY-TREE 2)\n" +
02708 " 3: returned 2 \n" +
02709 " 3: (MY-COPY-TREE ((3)))\n" +
02710 " 4: (MY-COPY-TREE (3))\n" +
02711 " 5: (MY-COPY-TREE 3)\n" +
02712 " 5: returned 3 \n" +
02713 " 5: (MY-COPY-TREE NIL)\n" +
02714 " 5: returned NIL \n" +
02715 " 4: returned (3) \n" +
02716 " 4: (MY-COPY-TREE NIL)\n" +
02717 " 4: returned NIL \n" +
02718 " 3: returned ((3)) \n" +
02719 " 2: returned (2 (3)) \n" +
02720 " 2: (MY-COPY-TREE NIL)\n" +
02721 " 2: returned NIL \n" +
02722 " 1: returned ((2 (3))) \n" +
02723 " 0: returned (1 (2 (3))) \n";
02724 Assert.assertEquals(expectedTraceLog,
02725 responseString);
02726
02727 script = "(trace floor)";
02728 responseObject = cycAccess.converseObject(script);
02729 Assert.assertEquals(cycAccess.makeCycList("(FLOOR)"), responseObject);
02730
02731 script = "(floor 5 3)";
02732 responseObject = cycAccess.converseObject(script);
02733 Assert.assertEquals(new Integer(1), responseObject);
02734
02735 script = "(get-trace-log)";
02736 responseString = cycAccess.converseString(script);
02737 expectedTraceLog =
02738 "\n" +
02739 " 0: (FLOOR 5 3)\n" +
02740 " 0: returned 1 2 \n";
02741 Assert.assertEquals(expectedTraceLog,
02742 responseString);
02743
02744 script = "(floor 5 3)";
02745 responseObject = cycAccess.converseObject(script);
02746 Assert.assertEquals(new Integer(1), responseObject);
02747 script = "(floor 5 3)";
02748 responseObject = cycAccess.converseObject(script);
02749 Assert.assertEquals(new Integer(1), responseObject);
02750
02751 script = "(clear-trace-log)";
02752 responseObject = cycAccess.converseObject(script);
02753 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02754
02755 script = "(get-trace-log)";
02756 responseString = cycAccess.converseString(script);
02757 expectedTraceLog = "\n";
02758 Assert.assertEquals(expectedTraceLog,
02759 responseString);
02760
02761 script = "(trace)";
02762 responseObject = cycAccess.converseObject(script);
02763 Assert.assertEquals(cycAccess.makeCycList("(FLOOR MY-COPY-TREE)"), responseObject);
02764
02765 script = "(untrace floor)";
02766 responseObject = cycAccess.converseObject(script);
02767 Assert.assertEquals(cycAccess.makeCycList("(FLOOR)"), responseObject);
02768
02769 script = "(floor 5 3)";
02770 responseObject = cycAccess.converseObject(script);
02771 Assert.assertEquals(new Integer(1), responseObject);
02772
02773 script = "(get-trace-log)";
02774 responseString = cycAccess.converseString(script);
02775 expectedTraceLog = "\n";
02776 Assert.assertEquals(expectedTraceLog,
02777 responseString);
02778
02779 script = "(untrace)";
02780 responseObject = cycAccess.converseObject(script);
02781 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02782
02783
02784 script = "(add1 2)";
02785 responseObject = cycAccess.converseObject(script);
02786 Assert.assertEquals(new Integer(3), responseObject);
02787
02788 script = "(eq (add1 2) 3)";
02789 Assert.assertTrue(cycAccess.converseBoolean(script));
02790
02791 script = "(sub1 10)";
02792 responseObject = cycAccess.converseObject(script);
02793 Assert.assertEquals(new Integer(9), responseObject);
02794
02795 script = "(eq (sub1 10) 9)";
02796 Assert.assertTrue(cycAccess.converseBoolean(script));
02797
02798
02799 script = "(clear-environment)";
02800 cycAccess.converseVoid(script);
02801 script = "(get-environment)";
02802 responseString = cycAccess.converseString(script);
02803 Assert.assertEquals("\n", responseString);
02804 script = "(csetq a nil)";
02805 responseObject = cycAccess.converseObject(script);
02806 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02807
02808 script = "(progn (csetq a nil) (csetq a (list a)) (csetq a (list a)))";
02809 cycAccess.converseVoid(script);
02810 script = "(symbol-value 'a)";
02811 responseList = cycAccess.converseList(script);
02812 Assert.assertEquals(cycAccess.makeCycList("((nil))"), responseList);
02813
02814
02815 script = "(clet (a b) " +
02816 " (csetq a 1) " +
02817 " (csetq b (+ a 3)) " +
02818 " b)";
02819 responseObject = cycAccess.converseObject(script);
02820 Assert.assertEquals(new Integer(4), responseObject);
02821
02822 script = "(clet ((a nil)) " +
02823 " (cpush 1 a) " +
02824 " a)";
02825 responseList = cycAccess.converseList(script);
02826 Assert.assertEquals(cycAccess.makeCycList("(1)"), responseList);
02827
02828 script = "(clet (a b) " +
02829 " (csetq a '(1 2 3)) " +
02830 " (csetq b (cpop a)) " +
02831 " (list a b))";
02832 responseList = cycAccess.converseList(script);
02833 Assert.assertEquals(cycAccess.makeCycList("((2 3) (2 3))"), responseList);
02834
02835 script = "(clet ((a 1) " +
02836 " (b (add1 a)) " +
02837 " (c (sub1 b))) " +
02838 " c)";
02839 responseObject = cycAccess.converseObject(script);
02840 Assert.assertEquals(new Integer(1), responseObject);
02841
02842 script = "(clet ((*my-parm* 1)) " +
02843 " (csetq a (fi-get-parameter '*my-parm*)) " +
02844 " a)";
02845 responseObject = cycAccess.converseObject(script);
02846 Assert.assertEquals(new Integer(1), responseObject);
02847
02848
02849 script = "(cand t nil t)";
02850 responseBoolean = cycAccess.converseBoolean(script);
02851 Assert.assertTrue(! responseBoolean);
02852
02853 script = "(cand t t t)";
02854 responseBoolean = cycAccess.converseBoolean(script);
02855 Assert.assertTrue(responseBoolean);
02856
02857 script = "(cand t)";
02858 responseBoolean = cycAccess.converseBoolean(script);
02859 Assert.assertTrue(responseBoolean);
02860
02861 script = "(cand nil)";
02862 responseBoolean = cycAccess.converseBoolean(script);
02863 Assert.assertTrue(! responseBoolean);
02864
02865 script = "(cand t #$Dog)";
02866 responseObject = cycAccess.converseObject(script);
02867 Assert.assertEquals(CycObjectFactory.t, responseObject);
02868
02869 script = "(cor t nil t)";
02870 responseBoolean = cycAccess.converseBoolean(script);
02871 Assert.assertTrue(responseBoolean);
02872
02873 script = "(cor nil nil nil)";
02874 responseBoolean = cycAccess.converseBoolean(script);
02875 Assert.assertTrue(! responseBoolean);
02876
02877 script = "(cor t)";
02878 responseBoolean = cycAccess.converseBoolean(script);
02879 Assert.assertTrue(responseBoolean);
02880
02881 script = "(cor nil)";
02882 responseBoolean = cycAccess.converseBoolean(script);
02883 Assert.assertTrue(! responseBoolean);
02884
02885 script = "(cor nil #$Plant)";
02886 responseObject = cycAccess.converseObject(script);
02887 Assert.assertEquals(CycObjectFactory.t, responseObject);
02888
02889 script = "(cnot nil)";
02890 responseBoolean = cycAccess.converseBoolean(script);
02891 Assert.assertTrue(responseBoolean);
02892
02893 script = "(cnot t)";
02894 responseBoolean = cycAccess.converseBoolean(script);
02895 Assert.assertTrue(! responseBoolean);
02896
02897 script = "(cnot (cand t nil))";
02898 responseBoolean = cycAccess.converseBoolean(script);
02899 Assert.assertTrue(responseBoolean);
02900
02901 script = "(cand (cnot nil) (cor t nil))";
02902 responseBoolean = cycAccess.converseBoolean(script);
02903 Assert.assertTrue(responseBoolean);
02904
02905
02906 script = "(clear-environment)";
02907 cycAccess.converseVoid(script);
02908 script = "(get-environment)";
02909 responseString = cycAccess.converseString(script);
02910 Assert.assertEquals("\n", responseString);
02911 script = "(csetq answer nil)";
02912 responseObject = cycAccess.converseObject(script);
02913 Assert.assertEquals(CycObjectFactory.nil, responseObject);
02914
02915 script = "(pcond ((eq 0 0) \n" +
02916 " (csetq answer \"clause 1 true\")) \n" +
02917 " ((> 1 4) \n" +
02918 " (csetq answer \"clause 2 true\")) \n" +
02919 " (t \n" +
02920 " (csetq answer \"clause 3 true\")))";
02921 responseString = cycAccess.converseString(script);
02922 Assert.assertEquals("clause 1 true", responseString);
02923 script = "(symbol-value 'answer)";
02924 responseString = cycAccess.converseString(script);
02925 Assert.assertEquals("clause 1 true", responseString);
02926
02927 script = "(pcond ((eq 1 0) \n" +
02928 " (csetq answer \"clause 1 true\")) \n" +
02929 " ((> 5 4) \n" +
02930 " (csetq answer \"clause 2 true\")) \n" +
02931 " (t \n" +
02932 " (csetq answer \"clause 3 true\")))";
02933 responseString = cycAccess.converseString(script);
02934 Assert.assertEquals("clause 2 true", responseString);
02935 script = "(symbol-value 'answer)";
02936 responseString = cycAccess.converseString(script);
02937 Assert.assertEquals("clause 2 true", responseString);
02938
02939 script = "(pcond ((eq 1 0) \n" +
02940 " (csetq answer \"clause 1 true\")) \n" +
02941 " ((> 1 4) \n" +
02942 " (csetq answer \"clause 2 true\")) \n" +
02943 " (t \n" +
02944 " (csetq answer \"clause 3 true\")))";
02945 responseString = cycAccess.converseString(script);
02946 Assert.assertEquals("clause 3 true", responseString);
02947 script = "(symbol-value 'answer)";
02948 responseString = cycAccess.converseString(script);
02949 Assert.assertEquals("clause 3 true", responseString);
02950
02951 script = "(pif (string= \"abc\" \"abc\") \n" +
02952 " (csetq answer \"clause 1 true\") \n" +
02953 " ;; else \n" +
02954 " (csetq answer \"clause 2 true\"))";
02955 responseString = cycAccess.converseString(script);
02956 Assert.assertEquals("clause 1 true", responseString);
02957 script = "(symbol-value 'answer)";
02958 responseString = cycAccess.converseString(script);
02959 Assert.assertEquals("clause 1 true", responseString);
02960
02961 script = "(pif (string> \"abc\" \"abc\") \n" +
02962 " (csetq answer \"clause 1 true\") \n" +
02963 " ;; else \n" +
02964 " (csetq answer \"clause 2 true\"))";
02965 responseString = cycAccess.converseString(script);
02966 Assert.assertEquals("clause 2 true", responseString);
02967 script = "(symbol-value 'answer)";
02968 responseString = cycAccess.converseString(script);
02969 Assert.assertEquals("clause 2 true", responseString);
02970
02971 script = "(csetq answer \n" +
02972 " (fif (string= \"abc\" \"abc\") \n" +
02973 " \"clause 1 true\" \n" +
02974 " ;; else \n" +
02975 " \"clause 2 true\"))";
02976 responseString = cycAccess.converseString(script);
02977 Assert.assertEquals("clause 1 true", responseString);
02978 script = "(symbol-value 'answer)";
02979 responseString = cycAccess.converseString(script);
02980 Assert.assertEquals("clause 1 true", responseString);
02981
02982 script = "(csetq answer \n" +
02983 " (fif (string> \"abc\" \"abc\") \n" +
02984 " \"clause 1 true\" \n" +
02985 " ;; else \n" +
02986 " \"clause 2 true\"))";
02987 responseString = cycAccess.converseString(script);
02988 Assert.assertEquals("clause 2 true", responseString);
02989 script = "(symbol-value 'answer)";
02990 responseString = cycAccess.converseString(script);
02991 Assert.assertEquals("clause 2 true", responseString);
02992
02993 script = "(progn \n" +
02994 " (csetq answer \"clause 1 true\") \n" +
02995 " (pwhen (string= \"abc\" \"abc\") \n" +
02996 " (csetq answer \"clause 2 true\")))";
02997 responseString = cycAccess.converseString(script);
02998 Assert.assertEquals("clause 2 true", responseString);
02999 script = "(symbol-value 'answer)";
03000 responseString = cycAccess.converseString(script);
03001 Assert.assertEquals("clause 2 true", responseString);
03002
03003 script = "(progn \n" +
03004 " (csetq answer \"clause 1 true\") \n" +
03005 " (pwhen (string> \"abc\" \"abc\") \n" +
03006 " (csetq answer \"clause 2 true\")))";
03007 responseObject = cycAccess.converseObject(script);
03008 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03009 script = "(symbol-value 'answer)";
03010 responseString = cycAccess.converseString(script);
03011 Assert.assertEquals("clause 1 true", responseString);
03012
03013 script = "(progn \n" +
03014 " (csetq answer \"clause 1 true\") \n" +
03015 " (punless (string> \"abc\" \"abc\") \n" +
03016 " (csetq answer \"clause 2 true\")))";
03017 responseString = cycAccess.converseString(script);
03018 Assert.assertEquals("clause 2 true", responseString);
03019 script = "(symbol-value 'answer)";
03020 responseString = cycAccess.converseString(script);
03021 Assert.assertEquals("clause 2 true", responseString);
03022
03023 script = "(progn \n" +
03024 " (csetq answer \"clause 1 true\") \n" +
03025 " (punless (string= \"abc\" \"abc\") \n" +
03026 " (csetq answer \"clause 2 true\")))";
03027 responseObject = cycAccess.converseObject(script);
03028 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03029 script = "(symbol-value 'answer)";
03030 responseString = cycAccess.converseString(script);
03031 Assert.assertEquals("clause 1 true", responseString);
03032
03033
03034 script = "(clear-environment)";
03035 cycAccess.converseVoid(script);
03036 script = "(get-environment)";
03037 responseString = cycAccess.converseString(script);
03038 Assert.assertEquals("\n", responseString);
03039 script = "(csetq answer nil)";
03040 responseObject = cycAccess.converseObject(script);
03041 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03042
03043 script = "(clet ((i 11)) \n" +
03044 " (csetq answer -10) \n" +
03045 " ;;(break \"environment\") \n" +
03046 " (while (> i 0) \n" +
03047 " (cdec i) \n" +
03048 " (cinc answer)))";
03049 cycAccess.converseVoid(script);
03050 script = "(symbol-value 'answer)";
03051 responseObject = cycAccess.converseObject(script);
03052 Assert.assertEquals(new Integer(1), responseObject);
03053
03054 script = "(csetq answer nil)";
03055 responseObject = cycAccess.converseObject(script);
03056 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03057 script = "(progn \n" +
03058 " (cdo ((x 0 (add1 x)) \n" +
03059 " (y (+ 0 1) (+ y 2)) \n" +
03060 " (z -10 (- z 1))) \n" +
03061 " ((> x 3)) \n" +
03062 " (cpush (list 'x x 'y y 'z z) answer)) \n" +
03063 " (csetq answer (nreverse answer)))";
03064 responseList = cycAccess.converseList(script);
03065 Assert.assertEquals(cycAccess.makeCycList("((x 0 y 1 z -10) " +
03066 " (x 1 y 3 z -11) " +
03067 " (x 2 y 5 z -12) " +
03068 " (x 3 y 7 z -13))"),
03069 responseList);
03070
03071 script = "(csetq answer nil)";
03072 responseObject = cycAccess.converseObject(script);
03073 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03074 script = "(progn \n" +
03075 " (clet ((x '(1 2 3))) \n" +
03076 " (cdo nil ((null x) (csetq x 'y)) \n" +
03077 " (cpush x answer) \n" +
03078 " (cpop x)) \n" +
03079 " x) \n" +
03080 " (csetq answer (reverse answer)))";
03081 responseList = cycAccess.converseList(script);
03082 Assert.assertEquals(cycAccess.makeCycList("((1 2 3) " +
03083 " (2 3) " +
03084 " (3))"),
03085 responseList);
03086
03087 script = "(csetq answer nil)";
03088 responseObject = cycAccess.converseObject(script);
03089 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03090 script = "(cdolist (x '(1 2 3 4)) \n" +
03091 " (cpush x answer))";
03092 Assert.assertEquals(CycObjectFactory.nil, cycAccess.converseObject(script));
03093 script = "(symbol-value 'answer)";
03094 responseList = cycAccess.converseList(script);
03095 Assert.assertEquals(cycAccess.makeCycList("(4 3 2 1)"), responseList);
03096
03097
03098 script = "(mapcar #'list '(a b c))";
03099 responseList = cycAccess.converseList(script);
03100 Assert.assertEquals(cycAccess.makeCycList("((a) (b) (c))"), responseList);
03101
03102 script = "(mapcar #'list '(a b c) '(d e f))";
03103 responseList = cycAccess.converseList(script);
03104 Assert.assertEquals(cycAccess.makeCycList("((a d) (b e) (c f))"), responseList);
03105
03106 script = "(mapcar #'eq '(a b c) '(d b f))";
03107 responseList = cycAccess.converseList(script);
03108 Assert.assertEquals(cycAccess.makeCycList("(nil t nil)"), responseList);
03109
03110 script = "(clear-environment)";
03111 cycAccess.converseVoid(script);
03112 script = "(csetq answer nil)";
03113 responseObject = cycAccess.converseObject(script);
03114 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03115
03116 script = "(csetq my-small-dictionary nil)";
03117 responseObject = cycAccess.converseObject(script);
03118 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03119
03120
03121 script = "(progn (csetq my-small-dictionary (new-dictionary #'eq 3)) nil)";
03122 responseObject = cycAccess.converseObject(script);
03123 script = "(progn \n" +
03124 " (dictionary-enter my-small-dictionary 'a 1) \n" +
03125 " (dictionary-enter my-small-dictionary 'b 2) \n" +
03126 " (dictionary-enter my-small-dictionary 'c 3))";
03127 responseObject = cycAccess.converseObject(script);
03128 Assert.assertEquals(CycObjectFactory.makeCycSymbol("c"), responseObject);
03129 script =
03130 "(define my-mapdictionary-fn (key value) \n" +
03131 " (cpush (list key value) answer) \n" +
03132 " (ret nil))";
03133 responseObject = cycAccess.converseObject(script);
03134 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-mapdictionary-fn"), responseObject);
03135
03136 script = "(mapdictionary my-small-dictionary #'my-mapdictionary-fn)";
03137 responseObject = cycAccess.converseObject(script);
03138 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03139 script = "(symbol-value 'answer)";
03140 responseList = cycAccess.converseList(script);
03141 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(a 1)")));
03142 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(b 2)")));
03143 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(c 3)")));
03144
03145 script = "(csetq my-large-dictionary nil)";
03146 responseObject = cycAccess.converseObject(script);
03147 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03148 script = "(progn (csetq my-large-dictionary (new-dictionary #'eq 200)) nil)";
03149 responseObject = cycAccess.converseObject(script);
03150 script = "(clet ((cities (remove-duplicates \n" +
03151 " (with-all-mts \n" +
03152 " (instances #$IndependentCountry)))) \n" +
03153 " capital-city) \n" +
03154 " (cdolist (city cities) \n" +
03155 " (csetq capital-city (pred-values-in-any-mt city #$capitalCity)) \n" +
03156 " (dictionary-enter my-large-dictionary \n" +
03157 " city \n" +
03158 " (fif (consp capital-city) \n" +
03159 " (first capital-city) \n" +
03160 " ;; else \n" +
03161 " nil))))";
03162 responseObject = cycAccess.converseObject(script);
03163
03164 script = "(mapdictionary my-large-dictionary #'my-mapdictionary-fn)";
03165 responseObject = cycAccess.converseObject(script);
03166 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03167 script = "(symbol-value 'answer)";
03168 responseList = cycAccess.converseList(script);
03169 Assert.assertTrue(responseList.contains(
03170 cycAccess.makeCycList("(#$Brazil #$CityOfBrasiliaBrazil)")));
03171
03172 script =
03173 "(define my-parameterized-mapdictionary-fn (key value args) \n" +
03174 " (cpush (list key value args) answer) \n" +
03175 " (ret nil))";
03176 responseObject = cycAccess.converseObject(script);
03177 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-parameterized-mapdictionary-fn"),
03178 responseObject);
03179
03180 script = "(mapdictionary-parameterized my-small-dictionary #'my-parameterized-mapdictionary-fn '(\"x\"))";
03181 responseObject = cycAccess.converseObject(script);
03182 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03183 script = "(symbol-value 'answer)";
03184 responseList = cycAccess.converseList(script);
03185 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(a 1 (\"x\"))")));
03186 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(b 2 (\"x\"))")));
03187 Assert.assertTrue(responseList.contains(cycAccess.makeCycList("(c 3 (\"x\"))")));
03188
03189 script = "(mapdictionary-parameterized my-large-dictionary #'my-parameterized-mapdictionary-fn '(1 2))";
03190 responseObject = cycAccess.converseObject(script);
03191 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03192 script = "(symbol-value 'answer)";
03193 responseList = cycAccess.converseList(script);
03194 Assert.assertTrue(responseList.contains(
03195 cycAccess.makeCycList("(#$Brazil #$CityOfBrasiliaBrazil (1 2))")));
03196
03197
03198 script =
03199 "(define my-super () \n" +
03200 " (clet (result) \n" +
03201 " (ccatch :abort \n" +
03202 " result \n" +
03203 " (my-sub) \n" +
03204 " (csetq result 0)) \n" +
03205 " (ret result)))";
03206 responseObject = cycAccess.converseObject(script);
03207 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-super"),
03208 responseObject);
03209
03210 script =
03211 "(define my-sub () \n" +
03212 " (clet ((a 1) (b 2)) \n" +
03213 " (ignore a b) \n" +
03214 " (ret (throw :abort 99))))";
03215 responseObject = cycAccess.converseObject(script);
03216 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-sub"),
03217 responseObject);
03218 script = "(my-super)";
03219 responseObject = cycAccess.converseObject(script);
03220 Assert.assertEquals(new Integer(99), responseObject);
03221
03222
03223
03224 script =
03225 "(clet (result) \n" +
03226 " (ignore-errors \n" +
03227 " (cunwind-protect \n" +
03228 " (/ 1 0) \n" +
03229 " (csetq result \"protected\"))) \n" +
03230 " result)";
03231 responseObject = cycAccess.converseObject(script);
03232 Assert.assertEquals("protected", responseObject);
03233
03234
03235 script = "(clear-environment)";
03236 cycAccess.converseVoid(script);
03237 script = "(get-environment)";
03238 responseString = cycAccess.converseString(script);
03239 Assert.assertEquals("\n", responseString);
03240 script = "(csetq a nil)";
03241 responseObject = cycAccess.converseObject(script);
03242 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03243 script = "(csetq b -1)";
03244 responseObject = cycAccess.converseObject(script);
03245 Assert.assertEquals(new Integer(-1), responseObject);
03246 script = "(get-environment)";
03247 responseString = cycAccess.converseString(script);
03248 Assert.assertEquals("\n\n(B . -1)\n(A)", responseString);
03249
03250
03251 script = "(cdestructuring-bind () '() (print 'foo))";
03252 responseObject = cycAccess.converseObject(script);
03253 Assert.assertEquals(CycObjectFactory.makeCycSymbol("foo"),
03254 responseObject);
03255
03256 script = "(cdestructuring-bind (&whole a) () (print 'foo))";
03257 responseObject = cycAccess.converseObject(script);
03258 Assert.assertEquals(CycObjectFactory.makeCycSymbol("foo"),
03259 responseObject);
03260
03261 script = "(cdestructuring-bind (&whole a b c) '(1 2) (print (list a b c)))";
03262 responseList = cycAccess.converseList(script);
03263 Assert.assertEquals(responseList, cycAccess.makeCycList("((1 2) 1 2)"));
03264
03265 script = "(cdestructuring-bind (a b . c) '(1 2 3 4) (print (list a b c)))";
03266 responseList = cycAccess.converseList(script);
03267 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 2 (3 4))"));
03268
03269 script = "(cdestructuring-bind (&optional a) '(1) (print (list a)))";
03270 responseList = cycAccess.converseList(script);
03271 Assert.assertEquals(responseList, cycAccess.makeCycList("(1)"));
03272
03273 script = "(cdestructuring-bind (a &optional b) '(1 2) (print (list a b)))";
03274 responseList = cycAccess.converseList(script);
03275 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 2)"));
03276
03277 script = "(cdestructuring-bind (&whole a &optional b) '(1) (print (list a b)))";
03278 responseList = cycAccess.converseList(script);
03279 Assert.assertEquals(responseList, cycAccess.makeCycList("((1) 1)"));
03280
03281 script = "(cdestructuring-bind (&rest a) '(1 2) (print (list a)))";
03282 responseList = cycAccess.converseList(script);
03283 Assert.assertEquals(responseList, cycAccess.makeCycList("((1 2))"));
03284
03285 script = "(cdestructuring-bind (&whole a b &rest c) '(1 2 3) (print (list a b c)))";
03286 responseList = cycAccess.converseList(script);
03287 Assert.assertEquals(responseList, cycAccess.makeCycList("((1 2 3) 1 (2 3))"));
03288
03289 script = "(cdestructuring-bind (&key a b) '(:b 2 :a 1) (print (list a b)))";
03290 responseList = cycAccess.converseList(script);
03291 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 2)"));
03292
03293 script = "(cdestructuring-bind (&key a b) '(:b 2 :allow-other-keys t :a 1 :c 3) (print (list a b)))";
03294 responseList = cycAccess.converseList(script);
03295 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 2)"));
03296
03297 script = "(cdestructuring-bind (&key ((key a) 23 b)) '(key 1) (print (list a b)))";
03298 responseList = cycAccess.converseList(script);
03299 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 T)"));
03300
03301 script = "(cdestructuring-bind (a &optional b &key c) '(1 2 :c 3) (print (list a b c)))";
03302 responseList = cycAccess.converseList(script);
03303 Assert.assertEquals(responseList, cycAccess.makeCycList("(1 2 3)"));
03304
03305 script = "(cdestructuring-bind (&whole a b &optional c &rest d &key e &allow-other-keys &aux f) '(1 2 :d 4 :e 3) (print (list a b c d e f)))";
03306 responseList = cycAccess.converseList(script);
03307 Assert.assertEquals(responseList, cycAccess.makeCycList("((1 2 :D 4 :E 3) 1 2 (:D 4 :E 3) 3 NIL)"));
03308
03309
03310 script = "(clear-environment)";
03311 cycAccess.converseVoid(script);
03312
03313 script = "(csetq a 1)";
03314 responseObject = cycAccess.converseObject(script);
03315 Assert.assertEquals(new Integer(1), responseObject);
03316 script = "(numberp a)";
03317 Assert.assertTrue(cycAccess.converseBoolean(script));
03318 script = "(integerp a)";
03319 Assert.assertTrue(cycAccess.converseBoolean(script));
03320 script = "(stringp a)";
03321 Assert.assertTrue(! cycAccess.converseBoolean(script));
03322 script = "(atom a)";
03323 Assert.assertTrue(cycAccess.converseBoolean(script));
03324 script = "(floatp a)";
03325 Assert.assertTrue(! cycAccess.converseBoolean(script));
03326 script = "(symbolp a)";
03327 Assert.assertTrue(! cycAccess.converseBoolean(script));
03328 script = "(consp a)";
03329 Assert.assertTrue(! cycAccess.converseBoolean(script));
03330 script = "(listp a)";
03331 Assert.assertTrue(! cycAccess.converseBoolean(script));
03332 script = "(null a)";
03333 Assert.assertTrue(! cycAccess.converseBoolean(script));
03334
03335 script = "(csetq a \"abc\")";
03336 responseObject = cycAccess.converseObject(script);
03337 Assert.assertEquals("abc", responseObject);
03338 script = "(numberp a)";
03339 Assert.assertTrue(! cycAccess.converseBoolean(script));
03340 script = "(integerp a)";
03341 Assert.assertTrue(! cycAccess.converseBoolean(script));
03342 script = "(stringp a)";
03343 Assert.assertTrue(cycAccess.converseBoolean(script));
03344 script = "(atom a)";
03345 Assert.assertTrue(cycAccess.converseBoolean(script));
03346 script = "(floatp a)";
03347 Assert.assertTrue(! cycAccess.converseBoolean(script));
03348 script = "(symbolp a)";
03349 Assert.assertTrue(! cycAccess.converseBoolean(script));
03350 script = "(consp a)";
03351 Assert.assertTrue(! cycAccess.converseBoolean(script));
03352 script = "(listp a)";
03353 Assert.assertTrue(! cycAccess.converseBoolean(script));
03354 script = "(null a)";
03355 Assert.assertTrue(! cycAccess.converseBoolean(script));
03356
03357 script = "(csetq a 2.14)";
03358 responseObject = cycAccess.converseObject(script);
03359 Assert.assertTrue(responseObject instanceof Double);
03360 Assert.assertTrue(((Double) responseObject).doubleValue() > 2.13999);
03361 Assert.assertTrue(((Double) responseObject).doubleValue() < 2.14001);
03362 script = "(numberp a)";
03363 Assert.assertTrue(cycAccess.converseBoolean(script));
03364 script = "(integerp a)";
03365 Assert.assertTrue(! cycAccess.converseBoolean(script));
03366 script = "(stringp a)";
03367 Assert.assertTrue(! cycAccess.converseBoolean(script));
03368 script = "(atom a)";
03369 Assert.assertTrue(cycAccess.converseBoolean(script));
03370 script = "(floatp a)";
03371 Assert.assertTrue(cycAccess.converseBoolean(script));
03372 script = "(symbolp a)";
03373 Assert.assertTrue(! cycAccess.converseBoolean(script));
03374 script = "(consp a)";
03375 Assert.assertTrue(! cycAccess.converseBoolean(script));
03376 script = "(listp a)";
03377 Assert.assertTrue(! cycAccess.converseBoolean(script));
03378 script = "(null a)";
03379 Assert.assertTrue(! cycAccess.converseBoolean(script));
03380
03381 script = "(csetq a 'my-symbol)";
03382 responseObject = cycAccess.converseObject(script);
03383 Assert.assertEquals(CycObjectFactory.makeCycSymbol("my-symbol"), responseObject);
03384 script = "(numberp a)";
03385 Assert.assertTrue(! cycAccess.converseBoolean(script));
03386 script = "(integerp a)";
03387 Assert.assertTrue(! cycAccess.converseBoolean(script));
03388 script = "(stringp a)";
03389 Assert.assertTrue(! cycAccess.converseBoolean(script));
03390 script = "(atom a)";
03391 Assert.assertTrue(cycAccess.converseBoolean(script));
03392 script = "(floatp a)";
03393 Assert.assertTrue(! cycAccess.converseBoolean(script));
03394 script = "(symbolp a)";
03395 Assert.assertTrue(cycAccess.converseBoolean(script));
03396 script = "(consp a)";
03397 Assert.assertTrue(! cycAccess.converseBoolean(script));
03398 script = "(listp a)";
03399 Assert.assertTrue(! cycAccess.converseBoolean(script));
03400 script = "(null a)";
03401 Assert.assertTrue(! cycAccess.converseBoolean(script));
03402
03403 script = "(csetq a '(1 . 2))";
03404 responseObject = cycAccess.converseObject(script);
03405 Assert.assertEquals(cycAccess.makeCycList("(1 . 2)"), responseObject);
03406 script = "(numberp a)";
03407 Assert.assertTrue(! cycAccess.converseBoolean(script));
03408 script = "(integerp a)";
03409 Assert.assertTrue(! cycAccess.converseBoolean(script));
03410 script = "(stringp a)";
03411 Assert.assertTrue(! cycAccess.converseBoolean(script));
03412 script = "(atom a)";
03413 Assert.assertTrue(! cycAccess.converseBoolean(script));
03414 script = "(floatp a)";
03415 Assert.assertTrue(! cycAccess.converseBoolean(script));
03416 script = "(symbolp a)";
03417 Assert.assertTrue(! cycAccess.converseBoolean(script));
03418 script = "(consp a)";
03419 Assert.assertTrue(cycAccess.converseBoolean(script));
03420 script = "(listp a)";
03421 Assert.assertTrue(cycAccess.converseBoolean(script));
03422 script = "(null a)";
03423 Assert.assertTrue(! cycAccess.converseBoolean(script));
03424
03425 script = "(csetq a '(1 2))";
03426 responseObject = cycAccess.converseObject(script);
03427 Assert.assertEquals(cycAccess.makeCycList("(1 2)"), responseObject);
03428 script = "(numberp a)";
03429 Assert.assertTrue(! cycAccess.converseBoolean(script));
03430 script = "(integerp a)";
03431 Assert.assertTrue(! cycAccess.converseBoolean(script));
03432 script = "(stringp a)";
03433 Assert.assertTrue(! cycAccess.converseBoolean(script));
03434 script = "(atom a)";
03435 Assert.assertTrue(! cycAccess.converseBoolean(script));
03436 script = "(floatp a)";
03437 Assert.assertTrue(! cycAccess.converseBoolean(script));
03438 script = "(symbolp a)";
03439 Assert.assertTrue(! cycAccess.converseBoolean(script));
03440 script = "(consp a)";
03441 Assert.assertTrue(cycAccess.converseBoolean(script));
03442 script = "(listp a)";
03443 Assert.assertTrue(cycAccess.converseBoolean(script));
03444 script = "(null a)";
03445 Assert.assertTrue(! cycAccess.converseBoolean(script));
03446
03447 script = "(csetq a nil)";
03448 responseObject = cycAccess.converseObject(script);
03449 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03450 script = "(numberp a)";
03451 Assert.assertTrue(! cycAccess.converseBoolean(script));
03452 script = "(integerp a)";
03453 Assert.assertTrue(! cycAccess.converseBoolean(script));
03454 script = "(stringp a)";
03455 Assert.assertTrue(! cycAccess.converseBoolean(script));
03456 script = "(atom a)";
03457 Assert.assertTrue(cycAccess.converseBoolean(script));
03458 script = "(floatp a)";
03459 Assert.assertTrue(! cycAccess.converseBoolean(script));
03460 script = "(symbolp a)";
03461 Assert.assertTrue(cycAccess.converseBoolean(script));
03462 script = "(consp a)";
03463 Assert.assertTrue(! cycAccess.converseBoolean(script));
03464 script = "(listp a)";
03465 Assert.assertTrue(cycAccess.converseBoolean(script));
03466 script = "(null a)";
03467 Assert.assertTrue(cycAccess.converseBoolean(script));
03468
03469
03470 CycList command = new CycList();
03471 command.add(CycObjectFactory.makeCycSymbol("csetq"));
03472 command.add(CycObjectFactory.makeCycSymbol("a"));
03473 command.add(new CycList());
03474 responseObject = cycAccess.converseObject(command);
03475 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03476 script = "(numberp a)";
03477 Assert.assertTrue(! cycAccess.converseBoolean(script));
03478 script = "(integerp a)";
03479 Assert.assertTrue(! cycAccess.converseBoolean(script));
03480 script = "(stringp a)";
03481 Assert.assertTrue(! cycAccess.converseBoolean(script));
03482 script = "(atom a)";
03483 Assert.assertTrue(cycAccess.converseBoolean(script));
03484 script = "(floatp a)";
03485 Assert.assertTrue(! cycAccess.converseBoolean(script));
03486 script = "(symbolp a)";
03487 Assert.assertTrue(cycAccess.converseBoolean(script));
03488 script = "(consp a)";
03489 Assert.assertTrue(! cycAccess.converseBoolean(script));
03490 script = "(listp a)";
03491 Assert.assertTrue(cycAccess.converseBoolean(script));
03492 script = "(null a)";
03493 Assert.assertTrue(cycAccess.converseBoolean(script));
03494
03495
03496
03497
03498
03499
03500
03501
03502
03503
03504
03505
03506
03507 script = "(clear-environment)";
03508 cycAccess.converseVoid(script);
03509 script =
03510 "(clet (result) \n" +
03511 " (ignore-errors \n" +
03512 " (check-type 1 numberp) \n" +
03513 " (csetq result t)) \n" +
03514 " result)";
03515 Assert.assertEquals((Object) CycObjectFactory.t, cycAccess.converseObject(script));
03516 script =
03517 "(clet (result) \n" +
03518 " (ignore-errors \n" +
03519 " (check-type 1 stringp) \n" +
03520 " (csetq result t)) \n" +
03521 " result)";
03522 Assert.assertEquals((Object) CycObjectFactory.nil, cycAccess.converseObject(script));
03523
03524
03525
03526 }
03527 catch (Exception e) {
03528 e.printStackTrace();
03529 CycAccess.current().close();
03530 Assert.fail(e.toString());
03531 }
03532 long endMilliseconds = System.currentTimeMillis();
03533 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
03534 }
03535
03536
03537
03538
03539 public void testAsciiCycAccess8 () {
03540 if (performOnlyBinaryApiModeTests ||
03541 (connectionMode == REMOTE_CYC_CONNECTION))
03542 return;
03543 System.out.println("\n**** testAsciiCycAccess 8 ****");
03544 CycAccess cycAccess = null;
03545 try {
03546
03547 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03548 CycConnection.DEFAULT_BASE_PORT,
03549 CycConnection.ASCII_MODE,
03550 CycAccess.PERSISTENT_CONNECTION);
03551 }
03552 catch (Exception e) {
03553 Assert.fail(e.toString());
03554 }
03555
03556 doTestCycAccess8(cycAccess);
03557
03558 cycAccess.close();
03559 System.out.println("**** testAsciiCycAccess 8 OK ****");
03560 }
03561
03562
03563
03564
03565
03566 public void testBinaryCycAccess8 () {
03567 System.out.println("\n**** testBinaryCycAccess 8 ****");
03568 CycAccess cycAccess = null;
03569 try {
03570 if (connectionMode == LOCAL_CYC_CONNECTION)
03571 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03572 CycConnection.DEFAULT_BASE_PORT,
03573 CycConnection.BINARY_MODE,
03574 CycAccess.PERSISTENT_CONNECTION,
03575 CycConnection.SERIAL_MESSAGING_MODE);
03576 else if (connectionMode == REMOTE_CYC_CONNECTION)
03577 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
03578 else
03579 Assert.fail("Invalid connection mode " + connectionMode);
03580 }
03581 catch (Exception e) {
03582 Assert.fail(e.toString());
03583 }
03584
03585
03586 doTestCycAccess8(cycAccess);
03587
03588 cycAccess.close();
03589 System.out.println("**** testBinaryCycAccess 8 OK ****");
03590 }
03591
03592
03593
03594
03595 protected void doTestCycAccess8 (CycAccess cycAccess) {
03596 long startMilliseconds = System.currentTimeMillis();
03597 try {
03598
03599
03600 CycConstant coreConstant =
03601 cycAccess.getKnownConstantByGuid("c0dd1b7c-9c29-11b1-9dad-c379636f7270");
03602 Assert.assertTrue(cycAccess.isQuotedCollection(coreConstant, cycAccess.baseKB));
03603 Assert.assertTrue(cycAccess.isQuotedCollection(coreConstant));
03604 CycConstant animal =
03605 cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
03606 Assert.assertTrue(! cycAccess.isQuotedCollection(animal));
03607
03608
03609 if (cycAccess.communicationMode == CycConnection.BINARY_MODE) {
03610 String script =
03611 "(put-api-user-variable 'a '(nil 1))";
03612 Object responseObject = cycAccess.converseObject(script);
03613 Assert.assertEquals(CycObjectFactory.nil, responseObject);
03614
03615 script =
03616 "(get-api-user-variable 'a)";
03617 CycList responseList = cycAccess.converseList(script);
03618 Assert.assertEquals(cycAccess.makeCycList("(nil 1)"),
03619 responseList);
03620 }
03621
03622
03623 CycFort inferencePsc =
03624 cycAccess.getKnownConstantByGuid("bd58915a-9c29-11b1-9dad-c379636f7270");
03625 CycFort rkfEnglishLexicalMicrotheoryPsc =
03626 cycAccess.getKnownConstantByGuid("bf6df6e3-9c29-11b1-9dad-c379636f7270");
03627 String text = "penguins";
03628 CycList parseExpressions = cycAccess.rkfPhraseReader(text,
03629 rkfEnglishLexicalMicrotheoryPsc,
03630 inferencePsc);
03631 CycList parseExpression = (CycList) parseExpressions.first();
03632 CycList spanExpression = (CycList) parseExpression.first();
03633 CycList terms = (CycList) parseExpression.second();
03634
03635 CycFort penguin = cycAccess.getKnownConstantByGuid("bd58a986-9c29-11b1-9dad-c379636f7270");
03636 Assert.assertTrue(terms.contains(penguin));
03637
03638 CycFort pittsburghPenguins = cycAccess.getKnownConstantByGuid("c08dec11-9c29-11b1-9dad-c379636f7270");
03639 Assert.assertTrue(terms.contains(pittsburghPenguins));
03640
03641
03642 CycList objects = new CycList();
03643 objects.add(penguin);
03644 objects.add(pittsburghPenguins);
03645 CycList disambiguationExpression = cycAccess.generateDisambiguationPhraseAndTypes(objects);
03646 System.out.println("disambiguationExpression\n" + disambiguationExpression);
03647 Assert.assertEquals(2, disambiguationExpression.size());
03648 CycList penguinDisambiguationExpression = (CycList) disambiguationExpression.first();
03649 System.out.println("penguinDisambiguationExpression\n" + penguinDisambiguationExpression);
03650 Assert.assertTrue(penguinDisambiguationExpression.contains("penguin"));
03651 Assert.assertTrue(penguinDisambiguationExpression.contains("bird"));
03652 CycList pittsburghPenguinDisambiguationExpression = (CycList) disambiguationExpression.second();
03653 System.out.println("pittsburghPenguinDisambiguationExpression\n" +
03654 pittsburghPenguinDisambiguationExpression);
03655 Assert.assertTrue(pittsburghPenguinDisambiguationExpression.contains("the Pittsburgh Penguins"));
03656 Assert.assertTrue(pittsburghPenguinDisambiguationExpression.contains("ice hockey team"));
03657
03658 }
03659 catch (Exception e) {
03660 e.printStackTrace();
03661 CycAccess.current().close();
03662 Assert.fail(e.toString());
03663 }
03664
03665
03666 long endMilliseconds = System.currentTimeMillis();
03667 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
03668 }
03669
03670
03671
03672
03673 public void testAsciiCycAccess9 () {
03674 if (performOnlyBinaryApiModeTests ||
03675 (connectionMode == REMOTE_CYC_CONNECTION))
03676 return;
03677 System.out.println("\n**** testAsciiCycAccess 9 ****");
03678 CycAccess cycAccess = null;
03679 try {
03680
03681 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03682 CycConnection.DEFAULT_BASE_PORT,
03683 CycConnection.ASCII_MODE,
03684 CycAccess.PERSISTENT_CONNECTION);
03685 }
03686 catch (Exception e) {
03687 Assert.fail(e.toString());
03688 }
03689
03690 System.out.println(cycAccess.getCycConnection().connectionInfo());
03691
03692 doTestCycAccess9(cycAccess);
03693
03694 cycAccess.close();
03695 System.out.println("**** testAsciiCycAccess 9 OK ****");
03696 }
03697
03698
03699
03700
03701
03702 public void testBinaryCycAccess9 () {
03703 System.out.println("\n**** testBinaryCycAccess 9 ****");
03704 CycAccess cycAccess = null;
03705 try {
03706 if (connectionMode == LOCAL_CYC_CONNECTION)
03707 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03708 CycConnection.DEFAULT_BASE_PORT,
03709 CycConnection.BINARY_MODE,
03710 CycAccess.PERSISTENT_CONNECTION,
03711 CycConnection.SERIAL_MESSAGING_MODE);
03712 else if (connectionMode == REMOTE_CYC_CONNECTION)
03713 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
03714 else
03715 Assert.fail("Invalid connection mode " + connectionMode);
03716 }
03717 catch (Exception e) {
03718 Assert.fail(e.toString());
03719 }
03720 System.out.println(cycAccess.getCycConnection().connectionInfo());
03721
03722 doTestCycAccess9(cycAccess);
03723
03724 cycAccess.close();
03725 System.out.println("**** testBinaryCycAccess 9 OK ****");
03726 }
03727
03728
03729
03730
03731 protected void doTestCycAccess9 (CycAccess cycAccess) {
03732 long startMilliseconds = System.currentTimeMillis();
03733 try {
03734
03735 CycConstant brazil = cycAccess.getKnownConstantByGuid("bd588f01-9c29-11b1-9dad-c379636f7270");
03736 CycConstant country = cycAccess.getKnownConstantByGuid("bd588879-9c29-11b1-9dad-c379636f7270");
03737 CycConstant worldGeographyMt = cycAccess.getKnownConstantByGuid("bfaac020-9c29-11b1-9dad-c379636f7270");
03738 CycConstant dog =
03739 cycAccess.getKnownConstantByGuid("bd58daa0-9c29-11b1-9dad-c379636f7270");
03740 CycConstant animal =
03741 cycAccess.getKnownConstantByGuid("bd58b031-9c29-11b1-9dad-c379636f7270");
03742 CycConstant biologyVocabularyMt =
03743 cycAccess.getKnownConstantByGuid("bdd51776-9c29-11b1-9dad-c379636f7270");
03744 CycConstant performedBy =
03745 cycAccess.getKnownConstantByGuid("bd58a962-9c29-11b1-9dad-c379636f7270");
03746 CycConstant doneBy =
03747 cycAccess.getKnownConstantByGuid("c0fd4798-9c29-11b1-9dad-c379636f7270");
03748 CycConstant siblings =
03749 cycAccess.getKnownConstantByGuid("bd58e3e9-9c29-11b1-9dad-c379636f7270");
03750 CycConstant generalLexiconMt =
03751 cycAccess.getKnownConstantByGuid("c109b867-9c29-11b1-9dad-c379636f7270");
03752 CycConstant paraphraseMt =
03753 cycAccess.getKnownConstantByGuid("bf3ab672-9c29-11b1-9dad-c379636f7270");
03754
03755
03756 Assert.assertTrue(cycAccess.isa(brazil, country, worldGeographyMt));
03757 Assert.assertTrue(cycAccess.isa(brazil, country));
03758
03759
03760 Assert.assertTrue(cycAccess.isGenlOf(animal, dog, biologyVocabularyMt));
03761 Assert.assertTrue(cycAccess.isGenlOf(animal, dog));
03762
03763
03764 Assert.assertTrue(cycAccess.isGenlPredOf(doneBy, performedBy, cycAccess.baseKB));
03765 Assert.assertTrue(cycAccess.isGenlPredOf(doneBy, performedBy));
03766
03767
03768 Assert.assertTrue(cycAccess.isGenlInverseOf(siblings, siblings, biologyVocabularyMt));
03769 Assert.assertTrue(cycAccess.isGenlInverseOf(siblings, siblings));
03770
03771
03772 Assert.assertTrue(cycAccess.isGenlMtOf(cycAccess.baseKB, biologyVocabularyMt));
03773
03774
03775 HashSet allCountries = cycAccess.getAllInstancesHashSet(country, worldGeographyMt);
03776 Assert.assertTrue(allCountries instanceof HashSet);
03777 Assert.assertTrue(allCountries.contains(brazil));
03778 allCountries = cycAccess.getAllInstancesHashSet(country);
03779 Assert.assertTrue(allCountries instanceof HashSet);
03780 Assert.assertTrue(allCountries.contains(brazil));
03781
03782
03783 HashSet allAnimals = cycAccess.getAllSpecsHashSet(animal, biologyVocabularyMt);
03784 Assert.assertTrue(allAnimals instanceof HashSet);
03785 Assert.assertTrue(allAnimals.contains(dog));
03786 allAnimals = cycAccess.getAllSpecsHashSet(animal);
03787 Assert.assertTrue(allAnimals instanceof HashSet);
03788 Assert.assertTrue(allAnimals.contains(dog));
03789
03790
03791 HashSet allDoers = cycAccess.getAllSpecPredsHashSet(doneBy, cycAccess.baseKB);
03792 Assert.assertTrue(allDoers instanceof HashSet);
03793 Assert.assertTrue(allDoers.contains(performedBy));
03794 allDoers = cycAccess.getAllSpecPredsHashSet(doneBy);
03795 Assert.assertTrue(allDoers instanceof HashSet);
03796 Assert.assertTrue(allDoers.contains(performedBy));
03797
03798
03799 HashSet allSpecInverses = cycAccess.getAllSpecInversesHashSet(siblings, biologyVocabularyMt);
03800 Assert.assertTrue(allSpecInverses instanceof HashSet);
03801 Assert.assertTrue(allSpecInverses.contains(siblings));
03802 allSpecInverses = cycAccess.getAllSpecInversesHashSet(siblings);
03803 Assert.assertTrue(allSpecInverses instanceof HashSet);
03804 Assert.assertTrue(allSpecInverses.contains(siblings));
03805
03806
03807 HashSet allSpecMts = cycAccess.getAllSpecMtsHashSet(generalLexiconMt);
03808 Assert.assertTrue(allSpecMts instanceof HashSet);
03809 Assert.assertTrue(allSpecMts.contains(paraphraseMt));
03810
03811
03812
03813
03814
03815
03816
03817
03818
03819
03820
03821
03822
03823
03824
03825
03826
03827
03828
03829
03830
03831
03832
03833
03834
03835
03836
03837
03838
03839
03840
03841
03842
03843
03844 }
03845 catch (Exception e) {
03846 CycAccess.current().close();
03847 e.printStackTrace();
03848 Assert.fail(e.toString());
03849 }
03850
03851
03852 long endMilliseconds = System.currentTimeMillis();
03853 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
03854 }
03855
03856
03857
03858
03859 public void testAsciiCycAccess10 () {
03860 if (performOnlyBinaryApiModeTests ||
03861 (connectionMode == REMOTE_CYC_CONNECTION))
03862 return;
03863 System.out.println("\n**** testAsciiCycAccess 10 ****");
03864 CycAccess cycAccess = null;
03865 try {
03866
03867 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03868 CycConnection.DEFAULT_BASE_PORT,
03869 CycConnection.ASCII_MODE,
03870 CycAccess.PERSISTENT_CONNECTION);
03871 }
03872 catch (Exception e) {
03873 Assert.fail(e.toString());
03874 }
03875
03876 System.out.println(cycAccess.getCycConnection().connectionInfo());
03877
03878 doTestCycAccess10(cycAccess);
03879
03880 cycAccess.close();
03881 System.out.println("**** testAsciiCycAccess 10 OK ****");
03882 }
03883
03884
03885
03886
03887
03888 public void testBinaryCycAccess10 () {
03889 System.out.println("\n**** testBinaryCycAccess 10 ****");
03890 CycAccess cycAccess = null;
03891 try {
03892 if (connectionMode == LOCAL_CYC_CONNECTION)
03893 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
03894 CycConnection.DEFAULT_BASE_PORT,
03895 CycConnection.BINARY_MODE,
03896 CycAccess.PERSISTENT_CONNECTION,
03897 CycConnection.CONCURRENT_MESSAGING_MODE);
03898 else if (connectionMode == REMOTE_CYC_CONNECTION)
03899 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
03900 else
03901 Assert.fail("Invalid connection mode " + connectionMode);
03902 }
03903 catch (Exception e) {
03904 Assert.fail(e.toString());
03905 }
03906 System.out.println(cycAccess.getCycConnection().connectionInfo());
03907
03908 doTestCycAccess10(cycAccess);
03909
03910 cycAccess.close();
03911 System.out.println("**** testBinaryCycAccess 10 OK ****");
03912 }
03913
03914
03915
03916
03917 protected void doTestCycAccess10 (CycAccess cycAccess) {
03918 long startMilliseconds = System.currentTimeMillis();
03919 try {
03920
03921 CycList cycList53 = cycAccess.makeCycList("(\"abc\")");
03922 Assert.assertEquals(1, cycAccess.converseInt("(length '" + cycList53.cycListApiValue() + ")"));
03923 Assert.assertEquals(3, cycAccess.converseInt("(length (first '" + cycList53.cycListApiValue() + "))"));
03924 String string = "abc";
03925 CycList cycList54 = new CycList();
03926 cycList54.add(CycObjectFactory.makeCycSymbol("length"));
03927 cycList54.add(string);
03928 Assert.assertEquals(3, cycAccess.converseInt(cycList54));
03929 String quotedString = "\"abc\" def";
03930 CycList cycList55 = new CycList();
03931 cycList55.add(CycObjectFactory.makeCycSymbol("length"));
03932 cycList55.add(quotedString);
03933
03934
03935
03936
03937 Assert.assertEquals(9, cycAccess.converseInt(cycList55));
03938
03939
03940 CycList cycList56 = cycAccess.makeCycList("(\"" + string + "\")");
03941 Assert.assertEquals(1, cycAccess.converseInt("(length '" + cycList56.stringApiValue() + ")"));
03942 Assert.assertEquals(3, cycAccess.converseInt("(length (first '" + cycList56.stringApiValue() + "))"));
03943 String embeddedQuotesString = "(" + "\"\\\"abc\\\" def\"" + ")";
03944 CycList cycList57 = cycAccess.makeCycList(embeddedQuotesString);
03945 String script = "(length '" + cycList57.stringApiValue() + ")";
03946 int actualLen = cycAccess.converseInt(script);
03947 Assert.assertEquals(1, actualLen);
03948 Assert.assertEquals(9, cycAccess.converseInt("(length (first '" + cycList57.stringApiValue() + "))"));
03949
03950 script = "(identity '(#$givenNames #$Guest \"\\\"The\\\" Guest\"))";
03951 CycList answer = cycAccess.converseList(script);
03952 Object third = answer.third();
03953 Assert.assertTrue(third instanceof String);
03954 Assert.assertEquals(11, ((String) third).length());
03955
03956
03957 CycList formula1 =
03958 cycAccess.makeCycList("(#$isa #$Brazil #$IndependentCountry)");
03959 CycConstant mt = cycAccess.getKnownConstantByName("WorldPoliticalGeographyDataVocabularyMt");
03960 Assert.assertTrue(cycAccess.isFormulaWellFormed(formula1, mt));
03961 CycList formula2 =
03962 cycAccess.makeCycList("(#$genls #$Brazil #$Collection)");
03963 Assert.assertTrue(! cycAccess.isFormulaWellFormed(formula2, mt));
03964
03965
03966 CycList formula3 =
03967 cycAccess.makeCycList("(#$TheCovering #$Watercraft-Surface #$Watercraft-Subsurface)");
03968 Assert.assertTrue(cycAccess.isCycLNonAtomicReifableTerm(formula3));
03969 CycList formula4 = cycAccess.makeCycList("(#$isa #$Plant #$Animal)");
03970 Assert.assertTrue(! cycAccess.isCycLNonAtomicReifableTerm(formula4));
03971 CycList formula5 = cycAccess.makeCycList("(#$PlusFn 1)");
03972 Assert.assertTrue(! cycAccess.isCycLNonAtomicReifableTerm(formula5));
03973
03974
03975 CycList formula6 =
03976 cycAccess.makeCycList("(#$TheCovering #$Watercraft-Surface #$Watercraft-Subsurface)");
03977 Assert.assertTrue(! cycAccess.isCycLNonAtomicUnreifableTerm(formula6));
03978 CycList formula7 = cycAccess.makeCycList("(#$isa #$Plant #$Animal)");
03979 Assert.assertTrue(! cycAccess.isCycLNonAtomicUnreifableTerm(formula7));
03980 CycList formula8 = cycAccess.makeCycList("(#$PlusFn 1)");
03981 Assert.assertTrue(cycAccess.isCycLNonAtomicUnreifableTerm(formula8));
03982 }
03983 catch (Exception e) {
03984 CycAccess.current().close();
03985 e.printStackTrace();
03986 Assert.fail(e.toString());
03987 }
03988
03989
03990 long endMilliseconds = System.currentTimeMillis();
03991 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
03992 }
03993
03994
03995
03996
03997 public void testBinaryCycAccess11 () {
03998 System.out.println("\n**** testBinaryCycAccess 11 ****");
03999 CycObjectFactory.resetCaches();
04000 CycAccess cycAccess = null;
04001 try {
04002 if (connectionMode == LOCAL_CYC_CONNECTION)
04003 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
04004 CycConnection.DEFAULT_BASE_PORT,
04005 CycConnection.BINARY_MODE,
04006 CycAccess.PERSISTENT_CONNECTION,
04007 CycConnection.CONCURRENT_MESSAGING_MODE);
04008 else if (connectionMode == REMOTE_CYC_CONNECTION)
04009 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
04010 else
04011 Assert.fail("Invalid connection mode " + connectionMode);
04012 }
04013 catch (Exception e) {
04014 e.printStackTrace();
04015 Assert.fail(e.toString());
04016 }
04017
04018 doTestCycAccess11(cycAccess);
04019
04020 cycAccess.close();
04021 System.out.println("**** testBinaryCycAccess 11 OK ****");
04022 }
04023
04024
04025
04026
04027 protected void doTestCycAccess11 (CycAccess cycAccess) {
04028 long startMilliseconds = System.currentTimeMillis();
04029 try {
04030 String script = "(+ 1 2)";
04031 int answer = cycAccess.converseInt(script);
04032 Assert.assertEquals(3, answer);
04033 }
04034 catch (Exception e) {
04035 CycAccess.current().close();
04036 e.printStackTrace();
04037 Assert.fail(e.toString());
04038 }
04039 System.out.println("Concurrent API requests.");
04040 ArrayList apiRequestors = new ArrayList();
04041
04042 ApiRequestor apiRequestor = new ApiRequestor("Long",
04043 1,
04044 "60000000",
04045 cycAccess);
04046 apiRequestor.start();
04047 apiRequestors.add(apiRequestor);
04048
04049 apiRequestor = new ApiRequestor("Short1",
04050 4,
04051 "700000",
04052 cycAccess);
04053 apiRequestor.start();
04054 apiRequestors.add(apiRequestor);
04055
04056 apiRequestor = new ApiRequestor("Short2",
04057 4,
04058 "700000",
04059 cycAccess);
04060 apiRequestor.start();
04061 apiRequestors.add(apiRequestor);
04062
04063 apiRequestor = new ApiRequestor("Short3",
04064 4,
04065 "700000",
04066 cycAccess);
04067 apiRequestor.start();
04068 apiRequestors.add(apiRequestor);
04069
04070 apiRequestor = new ApiRequestor("Short4",
04071 4,
04072 "700000",
04073 cycAccess);
04074 apiRequestor.start();
04075 apiRequestors.add(apiRequestor);
04076
04077 apiRequestor = new ApiRequestor("Short5",
04078 4,
04079 "700000",
04080 cycAccess);
04081 apiRequestor.start();
04082 apiRequestors.add(apiRequestor);
04083
04084 apiRequestor = new ApiRequestor("Short6",
04085 4,
04086 "700000",
04087 cycAccess);
04088 apiRequestor.start();
04089 apiRequestors.add(apiRequestor);
04090
04091 apiRequestor = new ApiRequestor("Short7",
04092 4,
04093 "700000",
04094 cycAccess);
04095 apiRequestor.start();
04096 apiRequestors.add(apiRequestor);
04097
04098 apiRequestor = new ApiRequestor("Short8",
04099 4,
04100 "700000",
04101 cycAccess);
04102 apiRequestor.start();
04103 apiRequestors.add(apiRequestor);
04104
04105 while (true) {
04106 boolean apiRequestorTheadRunning = false;
04107 try {
04108 Thread.sleep(3000);
04109 }
04110 catch (InterruptedException e) {
04111 break;
04112 }
04113 for (int i = 0; i < apiRequestors.size(); i++) {
04114 apiRequestor = (ApiRequestor) apiRequestors.get(i);
04115 if (! apiRequestor.done) {
04116 apiRequestorTheadRunning = true;
04117 System.out.println(" " + apiRequestor.name + " is still running");
04118 break;
04119 }
04120 }
04121 if (! apiRequestorTheadRunning)
04122 break;
04123 }
04124 long endMilliseconds = System.currentTimeMillis();
04125 System.out.println(" " + (endMilliseconds - startMilliseconds) + " milliseconds");
04126 }
04127
04128
04129
04130
04131 protected class ApiRequestor extends Thread {
04132
04133
04134 private CycAccess cycAccess;
04135 public String name;
04136 private int repeatCount;
04137 private String durationFactor;
04138 public boolean done = false;
04139
04140
04141
04142
04143 public ApiRequestor(String name,
04144 int repeatCount,
04145 String durationFactor,
04146 CycAccess cycAccess) {
04147 this.name = name;
04148 this.repeatCount = repeatCount;
04149 this.durationFactor = durationFactor;
04150 this.cycAccess = cycAccess;
04151 }
04152
04153
04154
04155
04156 public void run() {
04157 System.out.println("ApiRequestor " + name + " starting.");
04158 try {
04159 for (int i = 0; i < repeatCount; i++) {
04160 String testPhrase = name + "-" +Integer.toString(i + 1);
04161 String script = "(progn (cdotimes (x " + durationFactor + "))\n" +
04162 " \"" + testPhrase + "\")";
04163 String answer = cycAccess.converseString(script);
04164 System.out.println(name + " iteration " + answer + " done.");
04165 if (! answer.equals(testPhrase))
04166 throw new RuntimeException(testPhrase + " not equal to " + answer);
04167 }
04168
04169 }
04170 catch (Exception e) {
04171 e.printStackTrace();
04172 return;
04173 }
04174 System.out.println("ApiRequestor " + name + " done.");
04175 done = true;
04176 }
04177 }
04178
04179
04180
04181
04182 public void testBinaryCycAccess12 () {
04183 System.out.println("\n**** testBinaryCycAccess 12 ****");
04184 CycAccess cycAccess = null;
04185 try {
04186 if (connectionMode == LOCAL_CYC_CONNECTION)
04187 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
04188 CycConnection.DEFAULT_BASE_PORT,
04189 CycConnection.BINARY_MODE,
04190 CycAccess.PERSISTENT_CONNECTION,
04191 CycConnection.DEFAULT_MESSAGING_MODE);
04192 else if (connectionMode == REMOTE_CYC_CONNECTION)
04193 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
04194 else
04195 Assert.fail("Invalid connection mode " + connectionMode);
04196 }
04197 catch (Exception e) {
04198 CycAccess.current().close();
04199 Assert.fail(e.toString());
04200 }
04201 doTestCycAccess12(cycAccess);
04202
04203 cycAccess.close();
04204 System.out.println("**** testBinaryCycAccess 12 OK ****");
04205 }
04206
04207
04208
04209
04210 protected void doTestCycAccess12 (CycAccess cycAccess) {
04211 long startMilliseconds = System.currentTimeMillis();
04212 try {
04213
04214 String utf8String = "ABCdef";
04215 Assert.assertEquals(utf8String, cycAccess.converseString("(identity \"" + utf8String + "\")"));
04216
04217 InputStreamReader inputStreamReader = null;
04218 try {
04219 inputStreamReader =
04220 new InputStreamReader(
04221 new FileInputStream(
04222 new File("utf8-sample.html")), "UTF-8");
04223 }
04224 catch (IOException e) {
04225 return;
04226 }
04227 StringBuffer utf8StringBuffer = new StringBuffer();
04228 while (true) {
04229 int ch = inputStreamReader.read();
04230 if (ch == -1)
04231 break;
04232 if (ch == '\n' ||
04233 ch == '\r')
04234 utf8StringBuffer.append(' ');
04235 else
04236 utf8StringBuffer.append((char) ch);
04237 }
04238 utf8String = utf8StringBuffer.toString();
04239
04240 PrintWriter utf8Output =
04241 new PrintWriter(
04242 new OutputStreamWriter(
04243 new FileOutputStream("utf8-sample-without-newlines.html"), "UTF8"));
04244 utf8Output.print(utf8String);
04245 utf8Output.close();
04246
04247 String escapedUtf8String = StringUtils.escapeDoubleQuotes(utf8String);
04248
04249 CycList command = new CycList();
04250 command.add(CycObjectFactory.makeCycSymbol("identity"));
04251 command.add(escapedUtf8String);
04252 String echoUtf8Sting = cycAccess.converseString(command);
04253
04254 utf8Output =
04255 new PrintWriter(
04256 new OutputStreamWriter(
04257 new FileOutputStream("utf8-sample-from-cyc.html"), "UTF8"));
04258 utf8Output.print(utf8String);
04259 utf8Output.close();
04260
04261 System.out.println("utf8String\n" + utf8String);
04262 System.out.println("escapedUtf8String\n" + escapedUtf8String);
04263 System.out.println("echoUtf8Sting\n" + echoUtf8Sting);
04264 Assert.assertEquals(escapedUtf8String, echoUtf8Sting);
04265
04266
04267 CycFort myTerm = cycAccess.getConstantByName("my-term");
04268 if (myTerm != null)
04269 cycAccess.kill(myTerm);
04270 myTerm = cycAccess.findOrCreate("my-term");
04271 cycAccess.assertComment(myTerm, escapedUtf8String, cycAccess.baseKB);
04272
04273
04274
04275
04276 }
04277 catch (Exception e) {
04278 CycAccess.current().close();
04279 e.printStackTrace();
04280 Assert.fail(e.toString());
04281 }
04282 }
04283
04284
04285
04286
04287 public void testBinaryCycAccess13 () {
04288 System.out.println("\n**** testBinaryCycAccess 13 ****");
04289 CycAccess cycAccess = null;
04290 try {
04291 if (connectionMode == LOCAL_CYC_CONNECTION)
04292 cycAccess = new CycAccess(CycConnection.DEFAULT_HOSTNAME,
04293 CycConnection.DEFAULT_BASE_PORT,
04294 CycConnection.BINARY_MODE,
04295 CycAccess.PERSISTENT_CONNECTION,
04296 CycConnection.DEFAULT_MESSAGING_MODE);
04297 else if (connectionMode == REMOTE_CYC_CONNECTION)
04298 cycAccess = new CycAccess(myAgentName, cycProxyAgentName, agentCommunity);
04299 else
04300 Assert.fail("Invalid connection mode " + connectionMode);
04301 }
04302 catch (Exception e) {
04303 CycAccess.current().close();
04304 Assert.fail(e.toString());
04305 }
04306 try {
04307 cycAccess.traceOn();
04308 Object answer =
04309 cycAccess.converseObject(
04310 "(generate-phrase-for-java " +
04311 " (nart-substitute '(#$isa #$AtlanticOcean #$BodyOfWater)) " +
04312 " :any " +
04313 " :declarative " +
04314 " #$RKF-GenerationInteractionContext " +
04315 " #$RKF-InteractionContext)");
04316 }
04317 catch (Exception e) {
04318 e.printStackTrace();
04319 Assert.fail();
04320
04321 }
04322 cycAccess.close();
04323 System.out.println("**** testBinaryCycAccess 13 OK ****");
04324 }
04325
04326
04327
04328
04329
04330 }
04331
04332
04333
04334
04335