Como testar um script python com um arquivo de entrada cheio de testcases?
Pergunta
Estou participando de concursos de juízes on -line e quero testar meu código com um arquivo .in cheio de testcases para cronometrar meu algoritmo. Como posso obter meu script para obter informações deste arquivo .in?
Solução
Portanto, o script normalmente leva casos de teste da Stdin e agora você deseja testar usando casos de teste de um arquivo?
Se for esse o caso, use o <
Operação de redirecionamento na linha CMD:
my_script < testcases.in
Outras dicas
Leia de arquivos e/ou stdin:
import fileinput
for line in fileinput.input():
process(line)
Pyunit "A estrutura de teste de unidade padrão para Python" pode ser o que você está procurando.
Fazendo um pequeno script que faça algo assim:
#!/usr/bin/env python
import sys
def main():
in_file = open('path_to_file')
for line in in_file:
sys.stdout.write(line)
if __name__ == "__main__":
main()
E correr como
this_script.py | your_app.py
Você pode fazer isso em um arquivo separado.
testmyscript.py
import sys
someFile= open( "somefile.in", "r" )
sys.stdin= someFile
execfile( "yourscript.py" )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow