Пример #1
0
    def test_walls(self) -> None:
        """Prueba de las paredes."""

        karel_in = libkarel.KarelInput('''
<ejecucion>
  <condiciones instruccionesMaximasAEjecutar="10000000" longitudStack="65000"></condiciones>
  <mundos>
    <mundo nombre="mundo_0" ancho="3" alto="2">
      <pared x1="1" y1="0" y2="1"></pared>
      <pared x1="1" y1="1" x2="2"></pared>
      <pared x1="2" y1="1" y2="2"></pared>
    </mundo>
  </mundos>
  <programas tipoEjecucion="CONTINUA" intruccionesCambioContexto="1" milisegundosParaPasoAutomatico="0">
    <programa nombre="p1" ruta="{$2$}" mundoDeEjecucion="mundo_0" xKarel="1" yKarel="1" direccionKarel="NORTE" mochilaKarel="0"></programa>
  </programas>
</ejecucion>
        ''')

        self.assertEqual(
            karel_in.paredes(1, 1), libkarel.Direccion.SUR
            | libkarel.Direccion.OESTE | libkarel.Direccion.ESTE)
        self.assertEqual(
            karel_in.paredes(2, 1), libkarel.Direccion.SUR
            | libkarel.Direccion.OESTE | libkarel.Direccion.NORTE)
        self.assertEqual(karel_in.paredes(3, 1),
                         libkarel.Direccion.SUR | libkarel.Direccion.ESTE)
        self.assertEqual(karel_in.paredes(1, 2),
                         libkarel.Direccion.NORTE | libkarel.Direccion.OESTE)
        self.assertEqual(
            karel_in.paredes(2, 2), libkarel.Direccion.SUR
            | libkarel.Direccion.ESTE | libkarel.Direccion.NORTE)
        self.assertEqual(
            karel_in.paredes(3, 2), libkarel.Direccion.NORTE
            | libkarel.Direccion.OESTE | libkarel.Direccion.ESTE)
Пример #2
0
    def test_basic(self) -> None:
        """Prueba básica."""
        karel_in = libkarel.KarelInput('''
<ejecucion>
  <condiciones instruccionesMaximasAEjecutar="10000000" longitudStack="65000" />
  <mundos>
    <mundo nombre="mundo_0" ancho="100" alto="100">
    </mundo>
  </mundos>
  <programas tipoEjecucion="CONTINUA" intruccionesCambioContexto="1" milisegundosParaPasoAutomatico="0">
    <programa nombre="p1" ruta="{$2$}" mundoDeEjecucion="mundo_0" xKarel="1" yKarel="1" direccionKarel="NORTE" mochilaKarel="0" >
      <despliega tipo="MUNDO" />
    </programa>
  </programas>
</ejecucion>
        ''')
        # Dimensiones del mundo
        self.assertEqual(karel_in.w, 100)
        self.assertEqual(karel_in.h, 100)

        # Condiciones
        self.assertEqual(karel_in.instrucciones_maximas, 10000000)
        self.assertEqual(karel_in.longitud_stack, 65000)

        # Límites
        self.assertIsNone(karel_in.limite_comando('foo'))

        # Estado inicial de Karel
        self.assertEqual(karel_in.x, 1)
        self.assertEqual(karel_in.y, 1)
        self.assertEqual(karel_in.mochila, 0)
        self.assertEqual(karel_in.direccion, 'NORTE')

        # Despliegas
        self.assertEqual(karel_in.despliega, ['MUNDO'])
        self.assertEqual(karel_in.despliega_orientacion, False)
        self.assertEqual(karel_in.despliega_mundo, True)
        self.assertEqual(karel_in.despliega_posicion, False)
        self.assertEqual(karel_in.despliega_instrucciones, False)

        # Listas
        self.assertEqual(karel_in.lista_zumbadores, {})
        self.assertEqual(karel_in.lista_dump, set())

        # API público
        self.assertEqual(karel_in.zumbadores(1, 1), 0)
        self.assertEqual(karel_in.dump(1, 1), False)
Пример #3
0
 def __init__(self):
     with open('data.in', 'r') as data_in:
         self.input = self.world = libkarel.KarelInput(data_in.read())
     with open('data.out', 'r') as data_out:
         self.output = libkarel.KarelOutput(data_out.read())
     self.caseName = sys.argv[1]
 def __init__(self):
     self.world = libkarel.KarelInput(sys.stdin.read())
     self.caseName = sys.argv[1]