rmonico / neutrino

3 stars 1 forks source link

Falha na execução do Add explanation #10

Closed saulodefaria closed 11 years ago

saulodefaria commented 12 years ago

Deu esse erro:

java.lang.NullPointerException at org.ita.neutrino.astparser.SourceFileParser$ImportVisitor.visit(SourceFileParser.java:49) at org.eclipse.jdt.core.dom.ImportDeclaration.accept0(ImportDeclaration.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:218) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.ita.neutrino.astparser.SourceFileParser.populateImportList(SourceFileParser.java:176) at org.ita.neutrino.astparser.SourceFileParser.parse(SourceFileParser.java:166) at org.ita.neutrino.astparser.ASTParser.parseAllSourceFilesInWorkspace(ASTParser.java:118) at org.ita.neutrino.astparser.ASTParser.parse(ASTParser.java:72) at org.ita.neutrino.abstracrefactoring.AbstractEclipseRefactoringAction.doCodeParsing(AbstractEclipseRefactoringAction.java:130) at org.ita.neutrino.abstracrefactoring.AbstractEclipseRefactoringAction.run(AbstractEclipseRefactoringAction.java:60) at org.ita.neutrino.testsmells.smells.NeutrinoRefactoringForEclipseProvider$1.run(NeutrinoRefactoringForEclipseProvider.java:24) at org.ita.neutrino.testsmells.core.EclipseQuickFixRunner.run(EclipseQuickFixRunner.java:30) at org.eclipse.jdt.internal.ui.text.correction.proposals.MarkerResolutionProposal.apply(MarkerResolutionProposal.java:53) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:935) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$27(CompletionProposalPopup.java:877) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$5.widgetDefaultSelected(CompletionProposalPopup.java:657) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:119) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Com esse código:

import org.junit.Test; import org.junit.Before; import static org.junit.Assert.*;

public class TesteCarro { private Carro[] carro; @Before public void criaReferencia(){ carro = new Carro[3]; carro[0]= new Carro("delta", 200 , 400); carro[1]= new Carro("A", -2 , -4 ); carro[2]= new Carro("A", 500 , 900.3); } @Test public void testeConstrutor(){
verificaCondIniciais(); } @Test private void verificaCondIniciais() { assertTrue("lala",carro[0].getVelocidade() == 0); assertTrue("lala",carro[0].getPotencia() == 400); assertTrue(carro[0].getVelocMax() == 200); assertTrue(carro[0].getApelido().equals("delta")); assertTrue(carro[0].getAceleracao() == 0.1_carro[0].getPotencia()); assertTrue(carro[0].getPorcent()== 0.7); assertTrue(carro[0].getReducao()== 0.5); } @Test public void testaconstrutor2(){ assertTrue ("Em caso de valor invalido a potencia default é 1", carro[1].getPotencia() == 1); assertTrue("Em caso de valor invalido a velocidade maxima default é 3", carro[1].getVelocMax() == 3); carro[1].setPorcent(9); carro[1].setReducao(-1); assertTrue("Em caso de setar valor invalido, porcent deve continuar com 0.7, default", carro[1].getPorcent()== 0.7); assertTrue("Valor invalido de reducao, permanece o valor de default: 0.5", carro[1].getReducao()== 0.5); carro[1].setPorcent(0.8); carro[1].setReducao(0.3); assertTrue("Testando se o valor 0.8 foi setado corretamente", carro[1].getPorcent() == 0.8); assertTrue("Testando se o valor 0.3 foi setado corretamente para a variavel reducao", carro[1].getReducao() == 0.3); } @Test public void testaAlgoritmoVeloc(){
while (carro[2].getVelocidade()< carro[2].getVelocMax()_carro[2].getPorcent()){ carro[2].acelerar(); } assertTrue("Verificando se a velocidade fica igual a porcent_velocidade, antes de ficar maior", carro[2].getVelocidade() == carro[2].getVelocMax()_carro[2].getPorcent()); assertTrue("Verificando se a aceleracao mudou para a reduzida, apos atingir porcent_velocidade" , carro[2].getAceleracao()== carro[2].getPotencia()_0.1*carro[2].getReducao()); for(int i =0 ; i < 50; i++){ carro[2].acelerar(); } assertTrue("Testando se a velocidade nao ultrapassou a maxima, mesmo apos varias chamadas do metodo acelerar" , carro[2].getVelocidade() == carro[2].getVelocMax()); } @Test public void testaAlgoritmoFrear(){

      int i = 0;
      double aux;

      carro[2].frear();
      assertTrue("Verificando se a velocidade nao fica menor que zero quando freia", carro[2].getVelocidade() == 0);
      carro[2].acelerar();
      carro[2].acelerar();
      for(i =0 ; i < 3; i++){
          carro[2].frear();
      }
      assertTrue("Velocidade minima é zero", carro[2].getVelocidade() == 0);

      for(i =0 ; i < 3; i++){
          carro[2].acelerar();
      }
      aux = carro[2].getVelocidade();
      carro[2].frear();
      assertTrue("Testando algoritmo pra frear numa situacao normal", carro[2].getVelocidade() == aux - carro[2].getAceleracao());
}

}

rmonico commented 12 years ago

Saulo,

Tenho que debugar um pouco, mas pelo que me lembro o Neutrino não suporta import do tipo:

import org.alguma.coisa.*;

Por causa do asterisco no final. Se colocar:

import org.alguma.coisa.Classe;

Teoricamente funciona, mas ainda preciso testar isso.

2012/7/10 saulodefaria < reply@reply.github.com

Deu esse erro:

java.lang.NullPointerException at org.ita.neutrino.astparser.SourceFileParser$ImportVisitor.visit(SourceFileParser.java:49) at org.eclipse.jdt.core.dom.ImportDeclaration.accept0(ImportDeclaration.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:218) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514) at org.ita.neutrino.astparser.SourceFileParser.populateImportList(SourceFileParser.java:176) at org.ita.neutrino.astparser.SourceFileParser.parse(SourceFileParser.java:166) at org.ita.neutrino.astparser.ASTParser.parseAllSourceFilesInWorkspace(ASTParser.java:118) at org.ita.neutrino.astparser.ASTParser.parse(ASTParser.java:72) at org.ita.neutrino.abstracrefactoring.AbstractEclipseRefactoringAction.doCodeParsing(AbstractEclipseRefactoringAction.java:130) at org.ita.neutrino.abstracrefactoring.AbstractEclipseRefactoringAction.run(AbstractEclipseRefactoringAction.java:60) at org.ita.neutrino.testsmells.smells.NeutrinoRefactoringForEclipseProvider$1.run(NeutrinoRefactoringForEclipseProvider.java:24) at org.ita.neutrino.testsmells.core.EclipseQuickFixRunner.run(EclipseQuickFixRunner.java:30) at org.eclipse.jdt.internal.ui.text.correction.proposals.MarkerResolutionProposal.apply(MarkerResolutionProposal.java:53) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:935) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$27(CompletionProposalPopup.java:877) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$5.widgetDefaultSelected(CompletionProposalPopup.java:657) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:119) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Com esse código:

import org.junit.Test; import org.junit.Before; import static org.junit.Assert.*;

public class TesteCarro { private Carro[] carro; @Before public void criaReferencia(){ carro = new Carro[3]; carro[0]= new Carro("delta", 200 , 400); carro[1]= new Carro("A", -2 , -4 ); carro[2]= new Carro("A", 500 , 900.3); } @Test public void testeConstrutor(){ verificaCondIniciais(); } @Test private void verificaCondIniciais() { assertTrue("lala",carro[0].getVelocidade() == 0); assertTrue("lala",carro[0].getPotencia() == 400); assertTrue(carro[0].getVelocMax() == 200); assertTrue(carro[0].getApelido().equals("delta")); assertTrue(carro[0].getAceleracao() == 0.1_carro[0].getPotencia()); assertTrue(carro[0].getPorcent()== 0.7); assertTrue(carro[0].getReducao()== 0.5); } @Test public void testaconstrutor2(){ assertTrue ("Em caso de valor invalido a potencia default é 1", carro[1].getPotencia() == 1); assertTrue("Em caso de valor invalido a velocidade maxima default é 3", carro[1].getVelocMax() == 3); carro[1].setPorcent(9); carro[1].setReducao(-1); assertTrue("Em caso de setar valor invalido, porcent deve continuar com 0.7, default", carro[1].getPorcent()== 0.7); assertTrue("Valor invalido de reducao, permanece o valor de default: 0.5", carro[1].getReducao()== 0.5); carro[1].setPorcent(0.8); carro[1].setReducao(0.3); assertTrue("Testando se o valor 0.8 foi setado corretamente", carro[1].getPorcent() == 0.8); assertTrue("Testando se o valor 0.3 foi setado corretamente para a variavel reducao", carro[1].getReducao() == 0.3); } @Test public void testaAlgoritmoVeloc(){ while (carro[2].getVelocidade()< carro[2].getVelocMax()_carro[2].getPorcent()){ carro[2].acelerar(); } assertTrue("Verificando se a velocidade fica igual a porcent_velocidade, antes de ficar maior", carro[2].getVelocidade() == carro[2].getVelocMax()_carro[2].getPorcent()); assertTrue("Verificando se a aceleracao mudou para a reduzida, apos atingir porcent_velocidade" , carro[2].getAceleracao()== carro[2].getPotencia()_0.1*carro[2].getReducao()); for(int i =0 ; i < 50; i++){ carro[2].acelerar(); } assertTrue("Testando se a velocidade nao ultrapassou a maxima, mesmo apos varias chamadas do metodo acelerar" , carro[2].getVelocidade() == carro[2].getVelocMax()); } @Test public void testaAlgoritmoFrear(){

              int i = 0;
              double aux;

              carro[2].frear();
              assertTrue("Verificando se a velocidade nao fica menor

que zero quando freia", carro[2].getVelocidade() == 0); carro[2].acelerar(); carro[2].acelerar(); for(i =0 ; i < 3; i++){ carro[2].frear(); } assertTrue("Velocidade minima é zero", carro[2].getVelocidade() == 0);

              for(i =0 ; i < 3; i++){
                      carro[2].acelerar();
              }
              aux = carro[2].getVelocidade();
              carro[2].frear();
              assertTrue("Testando algoritmo pra frear numa situacao

normal", carro[2].getVelocidade() == aux - carro[2].getAceleracao()); } }


Reply to this email directly or view it on GitHub: https://github.com/rmonico/Neutrino/issues/10

bbonagura9 commented 11 years ago

Resolvido.