コード例 #1
0
 def test_has_next(self):
     singly_linked_list = SinglyLinkedList()
     it = singly_linked_list.iterator()
     self.assertFalse(it.has_next())
     singly_linked_list.insert_last("element 1")
     singly_linked_list.insert_last("element 2")
     singly_linked_list.insert_last("element 3")
     it = singly_linked_list.iterator()
     self.assertTrue(it.has_next())
     it.get_next()
     self.assertTrue(it.has_next())
     it.get_next()
     self.assertTrue(it.has_next())
     it.get_next()
     self.assertFalse(it.has_next())
コード例 #2
0
 def mostrar_familia(self, nome_familia):
     # Retuns a list [["Jovem","Galinha"],["Idoso","Gilinho"]]
     familia = self.get_familia(nome_familia)
     result = SinglyLinkedList()
     jovem = self.list_to_array(familia.get_jovens())
     adulto = self.list_to_array(familia.get_adultos())
     idoso = self.list_to_array(familia.get_idosos())
     if familia.get_jovens().size() != 0:
         jovem = Sorting_Algorithm().sort(jovem,
                                          familia.get_jovens().size())
         result.insert_last(jovem)
     if familia.get_adultos().size() != 0:
         adulto = Sorting_Algorithm().sort(adulto,
                                           familia.get_adultos().size())
         result.insert_last(adulto)
     if familia.get_idosos().size() != 0:
         idoso = Sorting_Algorithm().sort(idoso,
                                          familia.get_idosos().size())
         result.insert_last(idoso)
     return result
コード例 #3
0
 def listar_utentes(self):
     # Returns a List[["Gil","Idoso","Gilinho"]]
     result = SinglyLinkedList()
     jovem = self.list_to_array(self.faixasetarias.get("Jovem").keys())
     adulto = self.list_to_array(self.faixasetarias.get("Adulto").keys())
     idoso = self.list_to_array(self.faixasetarias.get("Idoso").keys())
     if self.faixasetarias.get('Jovem').keys().size() != 0:
         jovem = Sorting_Algorithm().sort(
             jovem,
             self.faixasetarias.get('Jovem').keys().size())
         result.insert_last(jovem)
     if self.faixasetarias.get('Adulto').keys().size() != 0:
         adulto = Sorting_Algorithm().sort(
             adulto,
             self.faixasetarias.get("Adulto").keys().size())
         result.insert_last(adulto)
     if self.faixasetarias.get('Idoso').keys().size() != 0:
         idoso = Sorting_Algorithm().sort(
             idoso,
             self.faixasetarias.get("Idoso").keys().size())
         result.insert_last(idoso)
     return result
コード例 #4
0
 def listar_profissionais(self):
     # Returns a List [["Medicina","Gilinho"]]
     result = SinglyLinkedList()
     medicina = self.list_to_array(self.categorias.get("Medicina").keys())
     enfermagem = self.list_to_array(
         self.categorias.get("Enfermagem").keys())
     auxiliar = self.list_to_array(self.categorias.get("Auxiliar").keys())
     if self.categorias.get('Medicina').keys().size() != 0:
         medicina = Sorting_Algorithm().sort(
             medicina,
             self.categorias.get('Medicina').keys().size())
         result.insert_last(medicina)
     if self.categorias.get('Enfermagem').keys().size() != 0:
         enfermagem = Sorting_Algorithm().sort(
             enfermagem,
             self.categorias.get("Enfermagem").keys().size())
         result.insert_last(enfermagem)
     if self.categorias.get('Auxiliar').keys().size() != 0:
         auxiliar = Sorting_Algorithm().sort(
             auxiliar,
             self.categorias.get("Auxiliar").keys().size())
         result.insert_last(auxiliar)
     return result
コード例 #5
0
class TestSinglyLinkedList(unittest.TestCase):
    def setUp(self):
        self.list = SinglyLinkedList()

    def add_elements(self, quantity, shift=0):
        for i in range(quantity):
            self.list.insert_last(f"element {i+1+shift}")

    def remove_elements(self, quantity):
        for _ in range(quantity):
            self.list.remove_last()

    def test_is_empty(self):
        self.assertTrue(self.list.is_empty())
        self.add_elements(1)
        self.assertFalse(self.list.is_empty())

    def test_size(self):
        self.assertEqual(self.list.size(), 0)
        self.add_elements(3)
        self.assertEqual(self.list.size(), 3)
        self.remove_elements(3)
        self.assertEqual(self.list.size(), 0)

    def test_get_first(self):
        with self.assertRaises(EmptyListException):
            self.list.get_first()
        self.add_elements(3)
        self.assertEqual(self.list.get_first(), "element 1")

    def test_get_last(self):
        with self.assertRaises(EmptyListException):
            self.list.get_last()
        self.add_elements(3)
        self.assertEqual(self.list.get_last(), "element 3")

    def test_get(self):
        with self.assertRaises(EmptyListException):
            self.list.get(0)
        self.add_elements(5)
        self.assertEqual(self.list.get(2), "element 3")

    def test_find(self):
        self.assertEqual(self.list.find("empty list"), -1)
        self.add_elements(5)
        self.assertEqual(self.list.find("element 3"), 2)
        self.assertEqual(self.list.find("missing element"), -1)

    def test_insert_first(self):
        self.list.insert_first("element")
        self.assertEqual(self.list.get_first(), "element")
        self.list.make_empty()
        self.add_elements(5)
        self.assertNotEqual(self.list.get_first(), "element")
        self.list.insert_first("element")
        self.assertEqual(self.list.get_first(), "element")

    def test_insert_last(self):
        self.list.insert_first("element")
        self.assertEqual(self.list.get_last(), "element")
        self.list.make_empty()
        self.add_elements(5)
        self.assertNotEqual(self.list.get_last(), "element")
        self.list.insert_last("element")
        self.assertEqual(self.list.get_last(), "element")

    def test_insert(self):
        with self.assertRaises(InvalidPositionException):
            self.list.insert("element X", 42)
        self.list.insert("element 1", 0)
        self.assertEqual(self.list.get_first(), "element 1")
        self.add_elements(4, shift=1)
        self.list.insert("element X", 2)
        self.assertEqual(self.list.get(2), "element X")
        self.list.insert("last element", self.list.size())
        self.assertEqual(self.list.get_last(), "last element")
        with self.assertRaises(InvalidPositionException):
            self.list.insert("element bean", 42)

    def test_remove_first(self):
        with self.assertRaises(EmptyListException):
            self.list.remove_first()
        self.add_elements(5)
        self.list.remove_first()
        self.assertEqual(self.list.get_first(), "element 2")

    def test_remove_first_single_element(self):
        self.add_elements(1)
        self.assertEqual(self.list.remove_first(), "element 1")

        with self.assertRaises(EmptyListException):
            self.list.remove_first()

        with self.assertRaises(EmptyListException):
            self.list.get(0)

        with self.assertRaises(EmptyListException):
            self.list.get_last()

        with self.assertRaises(EmptyListException):
            self.list.get_first()

        self.assertTrue(self.list.is_empty())

        self.assertEqual(self.list.find("element 1"), -1)

        self.add_elements(1)
        self.assertEqual(self.list.get_first(), "element 1")
        self.assertEqual(self.list.get_last(), "element 1")
        self.assertEqual(self.list.remove_first(), "element 1")

    def test_remove_last(self):
        with self.assertRaises(EmptyListException):
            self.list.remove_last()
        self.add_elements(5)
        self.list.remove_last()
        self.assertEqual(self.list.get_last(), "element 4")

    def test_remove_last_two_elements(self):
        self.add_elements(2)
        self.assertEqual(self.list.remove_last(), "element 2")

    def test_remove_last_single_element(self):
        self.list.make_empty()
        self.add_elements(1)
        self.assertEqual(self.list.remove_last(), "element 1")

        with self.assertRaises(EmptyListException):
            self.list.remove_last()

        with self.assertRaises(EmptyListException):
            self.list.get(0)

        with self.assertRaises(EmptyListException):
            self.list.get_last()

        with self.assertRaises(EmptyListException):
            self.list.get_first()

        self.assertTrue(self.list.is_empty())

        self.assertEqual(self.list.find("element 1"), -1)

        self.add_elements(1)
        self.assertEqual(self.list.get_first(), "element 1")
        self.assertEqual(self.list.get_last(), "element 1")
        self.assertEqual(self.list.remove_last(), "element 1")

    def test_remove(self):
        with self.assertRaises(InvalidPositionException):
            self.list.remove(1)
        self.add_elements(5)
        with self.assertRaises(InvalidPositionException):
            self.list.remove(6)
        self.assertEqual(self.list.remove(0), "element 1")
        self.assertEqual(self.list.remove(2), "element 4")
        self.assertEqual(self.list.remove(2), "element 5")

    def test_remove_single_element(self):
        self.list.make_empty()
        self.add_elements(1)
        self.assertEqual(self.list.remove(0), "element 1")

        with self.assertRaises(InvalidPositionException):
            self.list.remove(0)

        with self.assertRaises(EmptyListException):
            self.list.get(0)

        with self.assertRaises(EmptyListException):
            self.list.get_last()

        with self.assertRaises(EmptyListException):
            self.list.get_first()

        self.assertTrue(self.list.is_empty())

        self.assertEqual(self.list.find("element 1"), -1)

        self.add_elements(1)
        self.assertEqual(self.list.get_first(), "element 1")
        self.assertEqual(self.list.get_last(), "element 1")
        self.assertEqual(self.list.remove(0), "element 1")

    def test_make_empty(self):
        self.assertTrue(self.list.is_empty())
        self.add_elements(5)
        self.assertFalse(self.list.is_empty())
        self.list.make_empty()
        self.assertTrue(self.list.is_empty())

    def test_iterator(self):
        self.assertIsInstance(self.list.iterator(), Iterator)
        self.assertIsInstance(self.list.iterator(), SinglyLinkedListIterator)
コード例 #6
0
class Utente(Pessoa, Tad_Utente):
    def __init__(self, nome, Faixa_Etaria):
        Pessoa.__init__(self, nome)
        self.faixa_etaria = Faixa_Etaria
        self.lista_de_cuidados = SinglyLinkedList()
        self.familia = None  # Sting nome familia
        self.profissionais_in = HashTable()
        self.serviços_in = HashTable()  # todos os serviços dentro de utente

    def get_faixa_etaria(self):
        return self.faixa_etaria

    def get_cuidados(self):
        return self.lista_de_cuidados

    def add_to_cuidados(self, cuidado):
        self.lista_de_cuidados.insert_last(cuidado)

    def remove_cuidados(self):
        self.lista_de_cuidados.make_empty()
        self.remove_profissional_in()
        self.remove_serviços_in()

    def get_familia(self):
        return self.familia

    def remove_familia(self):
        self.familia = None

    def set_familia(self, NomeFamila):
        self.familia = NomeFamila

    def has_familia(self):  # Returns true if the utente is in a familia
        if self.get_familia():
            return True
        return False

    def has_cuidados(self):
        return self.get_cuidados().is_empty()

    def add_to_cuidados(self, cuidado):
        self.get_cuidados.insert_last(cuidado)

    def get_profissionais_in(self):
        return self.profissionais_in.keys(
        )  # List with all the profissionais in utente

    def add_profissional_in(self, nome_profissional):
        if not self.profissionais_in.has_key(nome_profissional):
            self.profissionais_in.insert(nome_profissional, None)

    def remove_profissional_in(self):
        profissionais_in = self.profissionais_in.keys().iterator()
        while profissionais_in.has_next():
            self.profissionais_in.remove(profissionais_in.next())

    def get_servicos_in(self):
        return self.serviços_in.keys()  # List with all the serviços in utente

    def add_servicos_in(self, name_serviço):
        if not self.serviços_in.has_key(name_serviço):
            self.serviços_in.insert(name_serviço, None)

    def remove_servicos_in(self):
        serviços_in = self.serviços_in.keys().iterator()
        while serviços_in.has_next():
            self.serviços_in.remove(serviços_in.next())