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())
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
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
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
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)
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())