ia-guiao-rc/tests/test_aula7.py

64 lines
3.0 KiB
Python

import pytest
from semantic_network import *
from tests.test_aula6 import sn_net
def compare_decl_lists(l1,l2):
l1_tuples = [str(d) for d in l1]
l2_tuples = [str(d) for d in l2]
return len(l1_tuples)==len(l2_tuples) and set(l1_tuples)==set(l2_tuples)
def test_exercicio10(sn_net):
assert sn_net.predecessor_path('vertebrado','socrates') == ['vertebrado', 'mamifero', 'homem', 'socrates']
def test_exercicio11(sn_net):
assert compare_decl_lists(sn_net.query('socrates','altura'),[
Declaration('descartes',Association('mamifero','altura',1.2)), \
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75))] )
assert compare_decl_lists(sn_net.query('platao'), [
Declaration('darwin',Association('mamifero','mamar','sim')), \
Declaration('descartes',Association('mamifero','altura',1.2)), \
Declaration('darwin',Association('homem','gosta','carne')), \
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75)), \
Declaration('descartes',Association('platao','professor','filosofia')), \
Declaration('simao',Association('platao','professor','filosofia')), \
Declaration('darwin',Association('platao','peso',75))] )
assert compare_decl_lists(sn_net.query2('platao'), [
Declaration('darwin',Association('mamifero','mamar','sim')), \
Declaration('descartes',Association('mamifero','altura',1.2)), \
Declaration('darwin',Association('homem','gosta','carne')), \
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75)), \
Declaration('descartes',Association('platao','professor','filosofia')), \
Declaration('simao',Association('platao','professor','filosofia')), \
Declaration('darwin',Association('platao','peso',75)), \
Declaration('descartes',Member('platao','homem'))] )
def test_exercicio12(sn_net):
assert compare_decl_lists(sn_net.query_cancel('socrates','altura'), [
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75))] )
def test_exercicio13(sn_net):
assert compare_decl_lists(sn_net.query_down('vertebrado', 'altura'), [
Declaration('descartes',Association('mamifero','altura',1.2)), \
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75))] )
assert compare_decl_lists(sn_net.query_down('mamifero', 'altura'), [
Declaration('descartes',Association('homem','altura',1.75)), \
Declaration('simao',Association('homem','altura',1.85)), \
Declaration('darwin',Association('homem','altura',1.75))] )
assert compare_decl_lists(sn_net.query_down('homem', 'altura'), [])