Advertisement
tomasfdel

Complementos I Práctica Lab 4 Test

Sep 26th, 2017
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.21 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. '''Tests complementarios practica 4'''
  4.  
  5. import unittest
  6.  
  7. import practica4 as p4
  8.  
  9. class TestEj1(unittest.TestCase):
  10.  
  11.     def test_1_1(self):
  12.         grafo1 = (['a', 'b'], [('a', 'b', 1)])
  13.        
  14.         res = p4.dijkstra(grafo1, 'a')
  15.        
  16.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  17.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  18.      
  19.         self.assertEqual(res['a'], 0) # Costo a 'a'
  20.         self.assertEqual(res['b'], 1) # Costo a 'b'
  21.  
  22.     def test_1_2(self):
  23.         grafo2 = (['a', 'b', 'c', 'd'], [('a', 'b', 1), ('a', 'a', 0.5), ('b', 'c', 1.5), ('a', 'c', 5)])
  24.  
  25.         res = p4.dijkstra(grafo2, 'a')
  26.  
  27.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  28.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  29.         self.assertTrue('c' in res) # Se puede llegar a 'c'
  30.         self.assertFalse('d' in res) # No se puede llegar a 'd'
  31.  
  32.         self.assertEqual(res['a'], 0) # Costo a 'a'
  33.         self.assertEqual(res['b'], 1) # Costo a 'b'
  34.         self.assertEqual(res['c'], 2.5) # Costo a 'c'
  35.  
  36.     def test_1_3(self):
  37.         grafo3 = (['a','b','c','d','e'],[('a','b',3),('b','c',5),('a','c',10),('a','a',3),('d','d',5),('d','e',4)])
  38.    
  39.         res = p4.dijkstra(grafo3, 'a')
  40.  
  41.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  42.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  43.         self.assertTrue('c' in res) # Se puede llegar a 'c'
  44.         self.assertFalse('d' in res) # No se puede llegar a 'd'
  45.         self.assertFalse('e' in res) # No se puede llegar a 'e'
  46.  
  47.         self.assertEqual(res['a'], 0) # Costo a 'a'
  48.         self.assertEqual(res['b'], 3) # Costo a 'b'
  49.         self.assertEqual(res['c'], 8) # Costo a 'c'
  50.  
  51.  
  52.  
  53.  
  54. class TestEj2(unittest.TestCase):
  55.  
  56.     def test_2_1(self):
  57.         grafo1 = (['a', 'b'], [('a', 'b', 1)])
  58.         caminos_esperados = {
  59.             'a' : ['a'],
  60.             'b' : ['a', 'b']          
  61.         }
  62.  
  63.         res = p4.dijkstra_2(grafo1, 'a')
  64.  
  65.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  66.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  67.        
  68.         for nodo, camino_res in res.iteritems():
  69.             camino_esperado = caminos_esperados[nodo]
  70.             self.comparar_caminos(camino_res, camino_esperado)
  71.  
  72.     def test_2_2(self):
  73.         grafo2 = (['a', 'b', 'c', 'd'], [('a', 'b', 1), ('a', 'a', 0.5), ('b', 'c', 1.5), ('a', 'c', 5)])
  74.         caminos_esperados = {
  75.             'a' : ['a'],
  76.             'b' : ['a', 'b'],
  77.             'c' : ['a', 'b', 'c']
  78.         }
  79.        
  80.         res = p4.dijkstra_2(grafo2, 'a')
  81.        
  82.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  83.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  84.         self.assertTrue('c' in res) # Se puede llegar a 'c'
  85.         self.assertFalse('d' in res) # No se puede llegar a 'd'
  86.  
  87.         for nodo, camino_res in res.iteritems():
  88.             camino_esperado = caminos_esperados[nodo]
  89.             self.comparar_caminos(camino_res, camino_esperado)
  90.            
  91.     def test_2_3(self):
  92.         grafo3 = (['a','b','c','d','e'],[('a','b',3),('b','c',5),('a','c',10),('a','a',3),('d','d',5),('d','e',4)])
  93.         caminos_esperados = {
  94.             'a' : ['a'],
  95.             'b' : ['a', 'b'],
  96.             'c' : ['a', 'b', 'c']
  97.         }
  98.  
  99.         res = p4.dijkstra_2(grafo3, 'a')
  100.  
  101.         self.assertTrue('a' in res) # Se puede llegar a 'a'      
  102.         self.assertTrue('b' in res) # Se puede llegar a 'b'
  103.         self.assertTrue('c' in res) # Se puede llegar a 'c'    
  104.         self.assertFalse('d' in res) # No se puede llegar a 'd'          
  105.         self.assertFalse('e' in res) # No se puede llegar a 'e'          
  106.  
  107.         for nodo, camino_res in res.iteritems():
  108.             camino_esperado = caminos_esperados[nodo]
  109.             self.comparar_caminos(camino_res, camino_esperado)
  110.  
  111.  
  112.  
  113.     def comparar_caminos(self, camino_1, camino_2):
  114.         # Comparar longitud caminos
  115.         self.assertEqual(len(camino_1), len(camino_2))
  116.         # Comparar elementos
  117.         for i in range(len(camino_1)):
  118.             self.assertEqual(camino_1[i], camino_2[i])
  119.    
  120.  
  121.  
  122. if __name__ == '__main__':
  123.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement