package com.moseph.mra.test; import com.moseph.mra.*; import com.moseph.mra.agent.*; import com.moseph.mra.agent.analyser.*; import com.moseph.mra.agent.attribute.*; import junit.framework.TestCase; public class NumericAnalysisTest extends TestCase { MusicianInformation me = new MusicianInformation( new Musician( "bob" )); MusicianInformation him = new MusicianInformation( new Musician( "norm" )); Piece p = TestUtilities.getBasicPiece(); Context context = new Context( me ); FeatureSet features = context.getFeatures(); DensityAnalysis density = new DensityAnalysis(context, 0.0); DynamicAverageAnalyser dynamics = new DynamicAverageAnalyser(context, 0.0); Score s = new Score(); Fragment activeFragment; public void setUp() { context.setPiece( p ); Fragment f = new Fragment( 1.0 ); f.setMusician( him.getMusician() ); f.setInstrument( new Instrument( "AcousticPiano") ); s.add( f ); activeFragment = s.fragments().iterator().next(); density.init(); dynamics.init(); density.setMinNotes( 0 ); dynamics.setMinNotes( 0 ); } public void testCorrectFeatureSets() { features.listFeatures(); assertTrue( features.contains( "Density")); } public void testDynamicsAndDensity() { double densityValue = 0.0; double dynamicsValue = 0.0; System.out.println( "Analysing: " + s ); density.analyse( s ); assertEquals( features.getOrCreate( "Density"), density.getFeatureSet() ); densityValue = ( (GroupNumericFeature) features.getOrCreate( "Density") ).getAverageValue(); assertEquals( 0.0, densityValue ); dynamics.analyse( s ); dynamicsValue = ( (GroupNumericFeature) features.getOrCreate( "Dynamics") ).getAverageValue(); //assertEquals( 0.0, dynamicsValue ); assertEquals( features.getOrCreate( "Density"), density.getFeatureSet() ); activeFragment.addNote( 0.0, 64, 0.5, 1.0 ); //System.out.println( activeFragment ); density.analyse( s ); densityValue = ( (GroupNumericFeature) features.getOrCreate( "Density") ).getAverageValue(); assertEquals( 1.0, densityValue ); dynamics.analyse( s ); dynamicsValue = ( (GroupNumericFeature) features.getOrCreate( "Dynamics") ).getAverageValue(); assertEquals( 0.5, dynamicsValue ); } }