package org.projectusus.core.proportions.rawdata.jdtdriver.ml;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import org.eclipse.core.resources.IFile;
import org.junit.Test;
import org.projectusus.core.proportions.rawdata.jdtdriver.JavaFileDriver;
import org.projectusus.core.statistics.test.PDETestForMetricsComputation;
import com.google.common.collect.Multimap;
public class ML_PDETest extends PDETestForMetricsComputation {
@Test
public void assumptionsAreValid() throws Exception {
project.createFolder( "pde" );
IFile file = createJavaFile( "pde/ML.java" );
MLInspector inspector = new MLInspector();
new JavaFileDriver( file ).compute( createSetWith( inspector ) );
Multimap<String, Integer> map = inspector.getValues();
assertThat( map.get( "initializer" ), contains( 1 ) );
assertThat( map.get( "static initializer" ), contains( 1 ) );
assertThat( map.get( "empty" ), contains( 0 ) );
assertThat( map.get( "ite_block" ), contains( 1, 0, 1, 1 ) );
assertThat( map.get( "ite_single" ), contains( 1, 2 ) );
assertThat( map.get( "for_block" ), contains( 1, 0, 1 ) );
assertThat( map.get( "for_single" ), contains( 1, 1 ) );
assertThat( map.get( "foreach_block" ), contains( 1, 0, 1 ) );
assertThat( map.get( "foreach_single" ), contains( 1, 1 ) );
assertThat( map.get( "do_block" ), contains( 1, 0, 1 ) );
assertThat( map.get( "do_single" ), contains( 1, 1 ) );
assertThat( map.get( "while_block" ), contains( 1, 0, 1 ) );
assertThat( map.get( "while_single" ), contains( 1, 1 ) );
assertThat( map.get( "switchCase_block" ), contains( 1, 3, 2, 3, 4 ) );
assertThat( map.get( "switchCase_single" ), contains( 1, 12 ) );
assertThat( map.get( "tryCatch" ), contains( 1, 1, 1 ) );
assertThat( map.get( "assign" ), contains( 1 ) );
assertThat( map.get( "anon" ), contains( 1 ) );
assertThat( map.get( "anonWithMeth" ), contains( 1 ) );
assertThat( map.get( "anonWithMeth_1" ), contains( 0 ) );
assertThat( map.get( "anonWith3VarsBefore" ), contains( 4 ) );
assertThat( map.get( "anonWithMethAnd3VarsBefore" ), contains( 3, 0, 1, 1 ) );
assertThat( map.get( "anonWithMethAnd3VarsBefore_1" ), contains( 0 ) );
assertThat( map.get( "anonWith3VarsAfter" ), contains( 4 ) );
assertThat( map.get( "anonWithMethAnd3VarsAfter" ), contains( 3, 0, 1, 1 ) );
assertThat( map.get( "anonWithMethAnd3VarsAfter_1" ), contains( 0 ) );
assertThat( map.get( "anonWith4Meth" ), contains( 3 ) );
assertThat( map.get( "anonWith4Meth_1" ), contains( 1 ) );
assertThat( map.get( "anonWith4Meth_2" ), contains( 1 ) );
assertThat( map.get( "anonWith4Meth_3" ), contains( 1 ) );
assertThat( map.get( "anonWith4Meth_4" ), contains( 1 ) );
assertThat( map.get( "assignInML2" ), contains( 1 ) );
assertThat( map.get( "m1" ), is( empty() ) );
assertThat( map.get( "m2" ), is( empty() ) );
}
}