Try to move the tests to hy.

This commit is contained in:
kenkeiras 2017-05-23 20:40:09 +02:00
parent 5297158110
commit fe7b550cdb
4 changed files with 67 additions and 99 deletions

View File

@ -1 +1,2 @@
jsondiff jsondiff
hy

View File

@ -11,5 +11,6 @@ setup(name='tree_nlu',
include_package_data=True, include_package_data=True,
install_requires = [ install_requires = [
'jsondiff', 'jsondiff',
'hy',
], ],
zip_safe=False) zip_safe=False)

View File

@ -6,105 +6,8 @@ logging.getLogger().setLevel(logging.INFO)
from .knowledge_base import KnowledgeBase from .knowledge_base import KnowledgeBase
from .modifiable_property import is_modifiable_property from .modifiable_property import is_modifiable_property
examples = [ import hy
{ from .tests import base
"text": "icecream is cold",
"parsed": ("exists-property-with-value", 'icecream', 'cold'),
},
{
"text": "is icecream cold?",
"parsed": ("question", ("exists-property-with-value", 'icecream', 'cold'))
},
{
"text": "lava is dangerous",
"parsed": ("exists-property-with-value", 'lava', 'dangerous')
},
{
"text": "is lava dangerous?",
"parsed": ("question", ("exists-property-with-value", 'lava', 'dangerous')),
},
{
"text": "earth is a planet",
"parsed": ("pertenence-to-group", 'earth', 'planet'),
},
{
"text": "io is a moon",
"parsed": ("pertenence-to-group", 'io', 'moon'),
},
{
"text": "is earth a moon?",
"parsed": ("question", ("pertenence-to-group", 'earth', 'moon')),
},
{
"text": "Green is a color",
"parsed": ("pertenence-to-group", 'green', 'color'),
},
{
"text": "a plane can fly",
"parsed": ("has-capacity", 'plane', 'fly')
},
{
"text": "a wale can swim",
"parsed": ("has-capacity", 'wale', 'swim')
},
{
"text": "if earth is a planet, it is big",
"parsed": ("implies",
("pertenence-to-group", 'earth', 'planet'),
("exists-property-with-value", 'earth', 'big')),
},
]
base_knowledge = {
'icecream': {
"groups": set(['noun', 'object', 'comestible', 'sweet']),
},
'lava': {
"groups": set(['noun', 'object']),
},
'earth': {
"groups": set(['noun', 'object', 'planet']),
},
'io': {
"groups": set(['noun', 'object']),
},
'green': {
"groups": set(['noun', 'color', 'concept']),
},
'plane': {
"groups": set(['noun', 'object', 'vehicle', 'fast']),
},
'car': {
"groups": set(['noun', 'object', 'vehicle', 'slow-ish']),
},
'wale': {
"groups": set(['noun', 'object', 'living-being']),
},
'cold': {
"groups": set(['property', 'temperature']),
"as_property": "temperature",
},
'dangerous': {
"groups": set(['property']),
"as_property": "safety",
},
'planet': {
"groups": set(['noun', 'group']),
},
'moon': {
"groups": set(['noun', 'group']),
},
'color': {
"groups": set(['property', 'group']),
},
'fly': {
"groups": set(['verb']),
},
'swim': {
"groups": set(['verb']),
},
}
def test_assumption(expectedResponse, knowledge, query): def test_assumption(expectedResponse, knowledge, query):
logging.info("Query: {}".format(query['text'])) logging.info("Query: {}".format(query['text']))
@ -118,6 +21,7 @@ def test_assumption(expectedResponse, knowledge, query):
def main(): def main():
base.run_tests()
knowledge = KnowledgeBase( knowledge = KnowledgeBase(
knowledge=base_knowledge, knowledge=base_knowledge,
) )

View File

@ -0,0 +1,62 @@
(import [..knowledge_base [KnowledgeBase]])
(setv knowledge-base
{
"icecream" { "groups" (set ["noun" "object" "comestible" "sweet"]) }
"lava" { "groups" (set ["noun" "object"]) }
"earth" { "groups" (set ["noun" "object" "planet"]) }
"io" { "groups" (set ["noun" "object"]) }
"green" { "groups" (set ["noun" "color" "concept"]) }
"plane" { "groups" (set ["noun" "object" "vehicle" "fast"]) }
"car" { "groups" (set ["noun" "object" "vehicle" "slow-ish"]) }
"wale" { "groups" (set ["noun" "object" "living-being"]) }
"cold" { "groups" (set ["property" "temperature"]) "as_property" "temperature" }
"dangerous" { "groups" (set ["property"]) "as_property" "safety" }
"planet" { "groups" (set ["noun" "group"]) }
"moon" { "groups" (set ["noun" "group"]) }
"color" { "groups" (set ["property" "group"]) }
"fly" { "groups" (set ["verb"]) }
"swim" { "groups" (set ["verb"]) }
}
)
(setv examples
[
{ "text" "icecream is cold"
"parsed" '(exists-property-with-value icecream cold) }
{ "text" "is icecream cold?"
"parsed" '(question (exists-property-with-value icecream cold)) }
{ "text" "lava is dangerous"
"parsed" '(exists-property-with-value lava dangerous) }
{ "text" "is lava dangerous?"
"parsed" '(question (exists-property-with-value lava dangerous)) }
{ "text" "earth is a planet"
"parsed" '(pertenence-to-group earth planet) }
{ "text" "io is a moon"
"parsed" '(pertenence-to-group io moon) }
{ "text" "is earth a moon?"
"parsed" '(question (pertenence-to-group earth moon)) }
{ "text" "Green is a color"
"parsed" '(pertenence-to-group green color) }
{ "text" "a plane can fly"
"parsed" '(has-capacity plane fly) }
{ "text" "a wale can swim"
"parsed" '(has-capacity wale swim) }
{
"text" "if earth is a planet it is big"
"parsed" '(implies
(pertenence-to-group earth planet)
(exists-property-with-value earth big)) }
]
)
(defn run_tests []
[
(setv knowledge (KnowledgeBase
knowledge=base_knowledge,
)
)
]
)