Esempio n. 1
0
def test_input():
  from numpy import array, all, abs
  from pylada.error import ValueError
  from pylada.gulp import Functional

  functional = Functional()
  functional.morse['Ti', 'O']  = [1.0279493, 3.640737, 1.88265, 0, 25]
  functional.morse['Ti', 'Ti'] = [0.00567139, 1.5543, 4.18784, 0, 25]
  functional.morse['O', 'O']   = [0.00567139, 1.5543, 4.18784, 0, 25] 

  # should fail since no interaction enabled yet.
  try: functional.input_string()
  except ValueError: pass
  else: raise Exception()

  functional.morse.enabled = True
  string = functional.input_string().splitlines()
  assert string[:2] == [''] * 2
  assert string[2] == 'morse'
  assert string[3].split()[:4] == ['O', 'core'] * 2
  assert all(abs(array( string[3].split()[4:], dtype='float64')
                        - functional.morse['O', 'O'] ) < 1e-3) 
  assert string[4].split()[:4] == ['Ti', 'core'] * 2
  assert all(abs(array( string[4].split()[4:], dtype='float64')
                        - functional.morse['Ti', 'Ti'] ) < 1e-3) 
  assert string[5].split()[:4] == ['O', 'core', 'Ti', 'core']
  assert all(abs(array( string[5].split()[4:], dtype='float64')
                        - functional.morse['Ti', 'O'] ) < 1e-3)