### Question:
NumberRangeStepAnalyzer extends StepAnalyzer<NumberRangeMeta> { @Override public Set<ComponentDerivationRecord> getChangeRecords( final NumberRangeMeta meta ) throws MetaverseAnalyzerException { Set<ComponentDerivationRecord> changeRecords = new HashSet<>(); ComponentDerivationRecord changeRecord = new ComponentDerivationRecord( meta.getInputField(), meta.getOutputField(), ChangeType.DATA ); List<NumberRangeRule> rules = meta.getRules(); if ( rules != null ) { for ( NumberRangeRule rule : rules ) { changeRecord.addOperation( new Operation( Operation.MAPPING_CATEGORY, ChangeType.DATA, DictionaryConst.PROPERTY_TRANSFORMS, rule.getLowerBound() + " <= " + meta.getInputField() + " <= " + rule.getUpperBound() + " -> " + rule.getValue() ) ); } } changeRecords.add( changeRecord ); return changeRecords; }  @Override Set<ComponentDerivationRecord> getChangeRecords( final NumberRangeMeta meta ); @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps();  }### Answer:
@Test public void testGetChangeRecords() throws Exception { Set<ComponentDerivationRecord> changeRecords = analyzer.getChangeRecords( meta ); assertEquals( 1, changeRecords.size() ); ComponentDerivationRecord changeRecord = changeRecords.iterator().next(); assertEquals( "inField", changeRecord.getOriginalEntityName() ); assertEquals( "outField", changeRecord.getChangedEntityName() ); Operations operations = changeRecord.getOperations(); assertEquals( 1, operations.size() ); List<IOperation> dataOperations = operations.get( ChangeType.DATA ); assertEquals( 2, dataOperations.size() ); }