!7 cmodule WTC > DynPrintLog { transient S program = [[ theory (discord token) { synonym token = (discord token) synonym bot = (discord bot) a token is something a bot needs in order to (connect to discord) } a $a is something a $b needs in order to $c & $d is a $b & $d wants to $c => $d needs a $a pattern (x wants to y) gazelle is a bot gazelle wants to (connect to discord) expect (gazelle needs a token) ]]; start-thread { PhilosophyBot1 bot = new(program); bot.run(); new Matches m; assertEquals(ll(litmap("$x" := "gazelle needs a token")), bot.matchFacts("expect $x")); assertEquals("logic rules", 1, l(bot.logicRules)); bot.openAllTheories(); // assert that fact from theory was loaded assertContainsIC(bot.facts, "a token is something a bot needs in order to (connect to discord)"); print("Theory opened OK."); pnl("RULE", bot.logicRules); bot.think(); bot.checkExpectations(); print("OK!!"); } }