-
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/issue/4 #5
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
O script mensagemAjuda.sh e o script mensagemErro.sh padronizam as mensagens de ajuda e erro de scripts do shell. São originais da biblioteca Shellinclude, e suas versões atualizadas podem ser encontradas em https://github.com/Dirack/Shellinclude
Interface do programa geomodel esboçada, possui menu de opções, mensagens de erro e mensagens de ajuda.
O programa geomodel lê de um arquivo de interfaces no formato do trimodel. Um exemplo deste arquivo é 'modelo.interface'. As linhas iniciadas com '#' no arquivo de interfaces serão ignoradas pelo programa geomodel
O arquivo de interfaces agora possui a extensão '.itf' e marcações '<tm>' e '<sp>' para indicar as seções dos parâmetros dos programas trimodel e spsplot utilizados para gerar e plotar o modelo
Adapta o programa geomodel para a leitura dos parâmetros do modelo a partir de arquivo '.itf'
O programa interfaceBuilder constrói o arquivo de interfaces com extensão '.itf' para ser lido pelo programa geomodel. Este permite adicionar, listar e remover as interfaces do arquivo.
A opção '-a' do programa interfaceBuilder serve para adicionar interfaces a um arquivo .itf no formato lido pelo trimodel. O arquivo de interfaces deve existir previamente. O programa cria um arquivo temporário a partir do arquivo pré existente e adiciona a nova interface seguindo o formato adequado. Por fim substitui o arquivo antigo pela nova versão criada, com uma interface a mais adicionada a pilha de interfaces.
A opção -s do programa interfaceBuilder permite ver as interfaces e camadas descritas no arquivo '.itf' de maneira mais amigável.
A correta remoção da interface envolve a remoção de 3 linhas que a descrevem, isto é de LINHA_IN (linha inicial da descrição da interface) até LINHA_OUT=LINHA_IN+2 (linha final da descrição da interface). O bug ocorreu pela utilização de LINHA_OUT=LINHA_IN+3, oque resultou em apagar uma linha extra que descrevia as camadas.
A opção '-r' não permite a remoção da última interface da pilha no arquivo de interfaces. Esta primeira interface é a própria superfície de aquisição e não faria sentido remover tal interface. Por isto o programa sugere ao usuário que crie um novo modelo
A opção '-c' permite ao usuário criar um novo modelo do zero. O programa interfaceBuilder verifica se o usuário forneceu o nome de arquivo de modelo e se este já existe, para não permitir sobreescrever modelos já existentes. Depois o programa pede ao usuário as informações básicas do modelo, como dimensão e parâmetros de plotagem e gera o arquivo .itf correspondente com a primeira interface (A primeira interface é a superfície de aquisição).
Quando tem apenas uma interface no arquivo de interfaces lido pelo programa interfaceBuilder, não é possível exibir informação sobre camadas (precisa de no mínimo duas interfaces para formar uma camada). Este commit adapta a lógica do programa para este caso
O comando sed estava interpretando incorretamente a regex de substituição, retirar o caractere '$' da regex impede a interpretação da barra '/' de fechamento como parte da variável. Basta o conjunto '.*' para fazer referência a qualquer conjunto de caracteres depois de 'kedge='
Roda os testes automáticos para o programa interfaceBuilder. No futuro será integrado ao Travis CI para deploy automatizado das versões desta biblioteca
A biblioteca tdd_lib.sh possui funções para testes simples de verificação de condições 'error' e para verificação de instalação de listas de arquivos em 'verificaInstalacao'.
Pasta com arquivos no formato ITF lido pelo programa interfaceBuilder
A opção -c de interfaceBuilder agora é não interativa, pois tal abordagem prejudica a lógica dos testes automatizados. Todos os parâmetros são passados pela linha de comandos
A variável DIR serve para garantir que o teste possa ser realizado tanto de dentro da pasta TDD, chamando '../interfaceBuilder_tdd.sh' quanto de dentro da pasta da proSU, chamando './interfaceBuilder_tdd.sh'. O teste cria um modelo em um arquivo temporário e apaga ao sair o script de teste ou ao atingir algum erro fatal
Testa a opção -a para adicionar interfaces a um modelo ITF. Este teste adiciona 7 interfaces em um looping, utilizando os arrays xedge, zedge e sfill para adicionar uma interface por vez ao modelo
Testa a opção -r que remove uma interface da pilha, e a opção -s que permite visualizar informações sobre o modelo. Estas opções podem ser combinadas em um teste que armazena o número de interfaces antes da remoção e compara com o número de interfaces depois da remoção
Estes manuais de uso são lidos com o programa man do Shell
O programa interfaceBuilder depende apenas do shell bash para gerar os arquivos de interfaces '.itf'. Os programas que parseam estes arquivos para gerar modelos para o programa trimodel do SU é que precisam do pacote SU instalado
Travis CI roda os testes automatizaos do diretório TDD a partir de um Makefile.
O arquivo Makefile estava ignorando os testes automatizados. Chamando diretamente os arquivos de teste, no alvo test, faz com que os testes não sejam ignorados
4 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📤 Pull Request
Descrição
Programa para gerar os arquivos de interfaces lidos pelo programa geomodel no formato '.itf'.
Resolve #4
Tipo da modificação
Adicione imagens abaixo e o contexto se necessário
O programa interfaceBuilder tem as seguintes opções:
O usuário poderá criar um novo arquivo de interfaces do zero com o seguinte comando:
~$ interfaceBuilder -c arquivo.itf
Este comando cria o arquivo de interfaces 'arquivo.itf' a partir de parâmetros do modelo solicitados ao usuário no momento da criação do modelo.
O comando a seguir cria uma nova interface:
Esta nova interface é criada abaixo da última interface do 'arquivo.itf', estas duas interfaces formarão uma camada com slooth (1/v²) de vallor s1. O ponto p1 é um ponto na camada (entre as duas interfaces) para o programa atribuir o valor s1.
O usuário poderá visualizar as informações do arquivo de interfaces com a opção -s:
A opção para remover a última interface é -r a seguir:
Esta opção remove sempre a última interface da pilha (a última interface do arquivo). Não é permitido remover a primeira interface do modelo (esta é a superfície de aquisição, definida no momento da criação do modelo com a opção -a)
Os arquivos '.itf' manipulados por este programa são arquivos de texto normais e podem ser editados manualmente pelo usuário. Este tipo de arquivo é um parser para o programa geomodel e
estabelece as interfaces no formato lido pelo programa triseis do SU que realiza a modelagem através do traçamento do raio.
Este programa facilita o processo de escrita dos arquivos '.itf'.
A seguir um exemplo de arquivo .itf criado e editado por este programa (Modelo com apenas duas interfaces):
Esta modificação contém uma suíte de testes que roda a partir de um Makefile, demonstrando como o programa funciona. Basta rodar o Seguinte comando:
Também possui alguns exemplos de arquivos .itf no diretório 'su_test_models' que podem ser carregados e visualizados pelo interfaceBuiler, exemplo:
~$ ./interfaceBuilder ./su_test_models/modelo.itf