test_class.declarator: ONE_POINT_ONE = new BigDecimal("1.1")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal ONE_POINT_ONE = new BigDecimal("1.1");
test_class.type: BigDecimal
test_class.var_name: ONE_POINT_ONE
test_class.declarator: ONE_POINT_ONE_ONE = new BigDecimal("1.11")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal ONE_POINT_ONE_ONE = new BigDecimal("1.11");
test_class.type: BigDecimal
test_class.var_name: ONE_POINT_ONE_ONE
test_class.declarator: ONE_UNIT = new BigDecimal("0.00001")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal ONE_UNIT = new BigDecimal("0.00001");
test_class.type: BigDecimal
test_class.var_name: ONE_UNIT
test_class.declarator: FIVE_UNIT = new BigDecimal("0.00005")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal FIVE_UNIT = new BigDecimal("0.00005");
test_class.type: BigDecimal
test_class.var_name: FIVE_UNIT
test_class.declarator: TEN_PERCENT = new BigDecimal("0.1")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal TEN_PERCENT = new BigDecimal("0.1");
test_class.type: BigDecimal
test_class.var_name: TEN_PERCENT
test_class.declarator: ON_DEMAND = new BigDecimal("1.00")
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal ON_DEMAND = new BigDecimal("1.00");
test_class.type: BigDecimal
test_class.var_name: ON_DEMAND
test_class.declarator: ON_DEMAND_LESS_ONE = ON_DEMAND.subtract(ONE_UNIT)
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal ON_DEMAND_LESS_ONE = ON_DEMAND.subtract(ONE_UNIT);
test_class.type: BigDecimal
test_class.var_name: ON_DEMAND_LESS_ONE
test_class.declarator: SPOT_PRICE_LOW = new BigDecimal(MockEc2OperationsImpl.SPOT_PRICE_LOW)
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal SPOT_PRICE_LOW = new BigDecimal(MockEc2OperationsImpl.SPOT_PRICE_LOW);
test_class.type: BigDecimal
test_class.var_name: SPOT_PRICE_LOW
test_class.declarator: SPOT_PRICE_LOW_LESS_ONE = SPOT_PRICE_LOW.subtract(ONE_UNIT)
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal SPOT_PRICE_LOW_LESS_ONE = SPOT_PRICE_LOW.subtract(ONE_UNIT);
test_class.type: BigDecimal
test_class.var_name: SPOT_PRICE_LOW_LESS_ONE
test_class.declarator: SPOT_PRICE_LOW_PLUS_ONE = SPOT_PRICE_LOW.add(ONE_UNIT)
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal SPOT_PRICE_LOW_PLUS_ONE = SPOT_PRICE_LOW.add(ONE_UNIT);
test_class.type: BigDecimal
test_class.var_name: SPOT_PRICE_LOW_PLUS_ONE
test_class.declarator: SPOT_PRICE_VERY_HIGH = new BigDecimal(MockEc2OperationsImpl.SPOT_PRICE_VERY_HIGH)
test_class.modifier: private static final
test_class.original_string: private static final BigDecimal SPOT_PRICE_VERY_HIGH = new BigDecimal(MockEc2OperationsImpl.SPOT_PRICE_VERY_HIGH);
test_class.type: BigDecimal
test_class.var_name: SPOT_PRICE_VERY_HIGH
test_class.declarator: emrPricingHelper
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private EmrPricingHelper emrPricingHelper;
test_class.type: EmrPricingHelper
test_class.var_name: emrPricingHelper
test_class.file: herd-code/herd-dao/src/test/java/org/finra/herd/dao/helper/EmrPricingHelperTest.java
test_class.identifier: EmrPricingHelperTest
test_class.superclass: extends AbstractDaoTest
test_case.body: @Test
      public void testGetEmrClusterPricesWithinLowestCoreInstancePriceThresholdMultiplePricing() throws Exception
      {
          List<EmrClusterPriceDto> pricingList = Arrays
              .asList(createSimpleEmrClusterPrice(AVAILABILITY_ZONE_1, BigDecimal.ONE), createSimpleEmrClusterPrice(AVAILABILITY_ZONE_2, BigDecimal.TEN),
                  createSimpleEmrClusterPrice(AVAILABILITY_ZONE_3, ONE_POINT_ONE), createSimpleEmrClusterPrice(AVAILABILITY_ZONE_4, ONE_POINT_ONE_ONE));
  
          List<EmrClusterPriceDto> lowestCoreInstancePriceClusters =
              emrPricingHelper.getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(pricingList, TEN_PERCENT);
          assertEquals(2, lowestCoreInstancePriceClusters.size());
          for (EmrClusterPriceDto emrClusterPriceDto : lowestCoreInstancePriceClusters)
          {
              assertTrue(Arrays.asList(AVAILABILITY_ZONE_1, AVAILABILITY_ZONE_3).contains(emrClusterPriceDto.getAvailabilityZone()));
          }
      }
test_case.class_method_signature: EmrPricingHelperTest.testGetEmrClusterPricesWithinLowestCoreInstancePriceThresholdMultiplePricing()
test_case.full_signature: @Test public void testGetEmrClusterPricesWithinLowestCoreInstancePriceThresholdMultiplePricing()
test_case.identifier: testGetEmrClusterPricesWithinLowestCoreInstancePriceThresholdMultiplePricing
test_case.invocations: asList createSimpleEmrClusterPrice createSimpleEmrClusterPrice createSimpleEmrClusterPrice createSimpleEmrClusterPrice getEmrClusterPricesWithinLowestCoreInstancePriceThreshold assertEquals size assertTrue contains asList getAvailabilityZone
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetEmrClusterPricesWithinLowestCoreInstancePriceThresholdMultiplePricing()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(EmrPricingHelper.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(EmrPricingHelper.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: ec2Dao
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private Ec2Dao ec2Dao;
focal_class.type: Ec2Dao
focal_class.var_name: ec2Dao
focal_class.declarator: emrVpcPricingStateFormatter
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private EmrVpcPricingStateFormatter emrVpcPricingStateFormatter;
focal_class.type: EmrVpcPricingStateFormatter
focal_class.var_name: emrVpcPricingStateFormatter
focal_class.declarator: herdStringHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private HerdStringHelper herdStringHelper;
focal_class.type: HerdStringHelper
focal_class.var_name: herdStringHelper
focal_class.declarator: jsonHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private JsonHelper jsonHelper;
focal_class.type: JsonHelper
focal_class.var_name: jsonHelper
focal_class.declarator: configurationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private ConfigurationHelper configurationHelper;
focal_class.type: ConfigurationHelper
focal_class.var_name: configurationHelper
focal_class.file: herd-code/herd-dao/src/main/java/org/finra/herd/dao/helper/EmrPricingHelper.java
focal_class.identifier: EmrPricingHelper
focal_class.class_method_signature: EmrPricingHelper.updateEmrClusterDefinitionWithBestPrice(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.full_signature: public void updateEmrClusterDefinitionWithBestPrice(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.identifier: updateEmrClusterDefinitionWithBestPrice
focal_class.modifiers: public
focal_class.parameters: (EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.return: void
focal_class.signature: void updateEmrClusterDefinitionWithBestPrice(EmrClusterAlternateKeyDto emrClusterAlternateKeyDto, EmrClusterDefinition emrClusterDefinition,
          AwsParamsDto awsParamsDto)
focal_class.class_method_signature: EmrPricingHelper.getTotalInstanceCount(EmrClusterDefinition emrClusterDefinition)
focal_class.full_signature: private int getTotalInstanceCount(EmrClusterDefinition emrClusterDefinition)
focal_class.identifier: getTotalInstanceCount
focal_class.modifiers: private
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition)
focal_class.return: int
focal_class.signature: int getTotalInstanceCount(EmrClusterDefinition emrClusterDefinition)
focal_class.class_method_signature: EmrPricingHelper.updateInstanceDefinitionsWithBestPrice(EmrClusterDefinition emrClusterDefinition, Subnet bestEmrClusterSubnet,
          EmrClusterPriceDto bestEmrClusterPrice)
focal_class.full_signature: private void updateInstanceDefinitionsWithBestPrice(EmrClusterDefinition emrClusterDefinition, Subnet bestEmrClusterSubnet,
          EmrClusterPriceDto bestEmrClusterPrice)
focal_class.identifier: updateInstanceDefinitionsWithBestPrice
focal_class.modifiers: private
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition, Subnet bestEmrClusterSubnet,
          EmrClusterPriceDto bestEmrClusterPrice)
focal_class.return: void
focal_class.signature: void updateInstanceDefinitionsWithBestPrice(EmrClusterDefinition emrClusterDefinition, Subnet bestEmrClusterSubnet,
          EmrClusterPriceDto bestEmrClusterPrice)
focal_class.class_method_signature: EmrPricingHelper.getSpotBidPrice(Ec2PriceDto ec2Price)
focal_class.full_signature: private BigDecimal getSpotBidPrice(Ec2PriceDto ec2Price)
focal_class.identifier: getSpotBidPrice
focal_class.modifiers: private
focal_class.parameters: (Ec2PriceDto ec2Price)
focal_class.return: BigDecimal
focal_class.signature: BigDecimal getSpotBidPrice(Ec2PriceDto ec2Price)
focal_class.class_method_signature: EmrPricingHelper.getBestSubnetForAvailabilityZone(String availabilityZone, List<Subnet> subnets)
focal_class.full_signature: private Subnet getBestSubnetForAvailabilityZone(String availabilityZone, List<Subnet> subnets)
focal_class.identifier: getBestSubnetForAvailabilityZone
focal_class.modifiers: private
focal_class.parameters: (String availabilityZone, List<Subnet> subnets)
focal_class.return: Subnet
focal_class.signature: Subnet getBestSubnetForAvailabilityZone(String availabilityZone, List<Subnet> subnets)
focal_class.class_method_signature: EmrPricingHelper.getTop(List<T> list, Comparator<T> comparator)
focal_class.full_signature: private T getTop(List<T> list, Comparator<T> comparator)
focal_class.identifier: getTop
focal_class.modifiers: private
focal_class.parameters: (List<T> list, Comparator<T> comparator)
focal_class.return: T
focal_class.signature: T getTop(List<T> list, Comparator<T> comparator)
focal_class.class_method_signature: EmrPricingHelper.getEmrClusterPriceWithLowestCoreInstancePrice(final List<EmrClusterPriceDto> emrClusterPrices)
focal_class.full_signature:  EmrClusterPriceDto getEmrClusterPriceWithLowestCoreInstancePrice(final List<EmrClusterPriceDto> emrClusterPrices)
focal_class.identifier: getEmrClusterPriceWithLowestCoreInstancePrice
focal_class.parameters: (final List<EmrClusterPriceDto> emrClusterPrices)
focal_class.return: EmrClusterPriceDto
focal_class.signature: EmrClusterPriceDto getEmrClusterPriceWithLowestCoreInstancePrice(final List<EmrClusterPriceDto> emrClusterPrices)
focal_class.class_method_signature: EmrPricingHelper.getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_class.full_signature:  List<EmrClusterPriceDto> getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_class.identifier: getEmrClusterPricesWithinLowestCoreInstancePriceThreshold
focal_class.parameters: (final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_class.return: List<EmrClusterPriceDto>
focal_class.signature: List<EmrClusterPriceDto> getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_class.class_method_signature: EmrPricingHelper.getEmrClusterCoreInstancePrice(EmrClusterPriceDto emrClusterPrice)
focal_class.full_signature: private BigDecimal getEmrClusterCoreInstancePrice(EmrClusterPriceDto emrClusterPrice)
focal_class.identifier: getEmrClusterCoreInstancePrice
focal_class.modifiers: private
focal_class.parameters: (EmrClusterPriceDto emrClusterPrice)
focal_class.return: BigDecimal
focal_class.signature: BigDecimal getEmrClusterCoreInstancePrice(EmrClusterPriceDto emrClusterPrice)
focal_class.class_method_signature: EmrPricingHelper.removeSubnetsWithAvailableIpsLessThan(List<Subnet> subnets, int availableIps)
focal_class.full_signature: private void removeSubnetsWithAvailableIpsLessThan(List<Subnet> subnets, int availableIps)
focal_class.identifier: removeSubnetsWithAvailableIpsLessThan
focal_class.modifiers: private
focal_class.parameters: (List<Subnet> subnets, int availableIps)
focal_class.return: void
focal_class.signature: void removeSubnetsWithAvailableIpsLessThan(List<Subnet> subnets, int availableIps)
focal_class.class_method_signature: EmrPricingHelper.createEmrClusterPrice(AvailabilityZone availabilityZone, Ec2PriceDto masterPrice, Ec2PriceDto corePrice, Ec2PriceDto taskPrice)
focal_class.full_signature: private EmrClusterPriceDto createEmrClusterPrice(AvailabilityZone availabilityZone, Ec2PriceDto masterPrice, Ec2PriceDto corePrice, Ec2PriceDto taskPrice)
focal_class.identifier: createEmrClusterPrice
focal_class.modifiers: private
focal_class.parameters: (AvailabilityZone availabilityZone, Ec2PriceDto masterPrice, Ec2PriceDto corePrice, Ec2PriceDto taskPrice)
focal_class.return: EmrClusterPriceDto
focal_class.signature: EmrClusterPriceDto createEmrClusterPrice(AvailabilityZone availabilityZone, Ec2PriceDto masterPrice, Ec2PriceDto corePrice, Ec2PriceDto taskPrice)
focal_class.class_method_signature: EmrPricingHelper.getBestInstancePrice(BigDecimal spotPrice, InstanceDefinition instanceDefinition)
focal_class.full_signature: private Ec2PriceDto getBestInstancePrice(BigDecimal spotPrice, InstanceDefinition instanceDefinition)
focal_class.identifier: getBestInstancePrice
focal_class.modifiers: private
focal_class.parameters: (BigDecimal spotPrice, InstanceDefinition instanceDefinition)
focal_class.return: Ec2PriceDto
focal_class.signature: Ec2PriceDto getBestInstancePrice(BigDecimal spotPrice, InstanceDefinition instanceDefinition)
focal_class.class_method_signature: EmrPricingHelper.setBestPriceToSpotPricing(BigDecimal spotPrice, BigDecimal bidPrice, int instanceCount)
focal_class.full_signature: private Ec2PriceDto setBestPriceToSpotPricing(BigDecimal spotPrice, BigDecimal bidPrice, int instanceCount)
focal_class.identifier: setBestPriceToSpotPricing
focal_class.modifiers: private
focal_class.parameters: (BigDecimal spotPrice, BigDecimal bidPrice, int instanceCount)
focal_class.return: Ec2PriceDto
focal_class.signature: Ec2PriceDto setBestPriceToSpotPricing(BigDecimal spotPrice, BigDecimal bidPrice, int instanceCount)
focal_class.class_method_signature: EmrPricingHelper.getCoreInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.full_signature: private InstanceDefinition getCoreInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.identifier: getCoreInstanceDefinition
focal_class.modifiers: private
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition)
focal_class.return: InstanceDefinition
focal_class.signature: InstanceDefinition getCoreInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.class_method_signature: EmrPricingHelper.getTaskInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.full_signature: private InstanceDefinition getTaskInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.identifier: getTaskInstanceDefinition
focal_class.modifiers: private
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition)
focal_class.return: InstanceDefinition
focal_class.signature: InstanceDefinition getTaskInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.class_method_signature: EmrPricingHelper.getMasterInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.full_signature: private InstanceDefinition getMasterInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.identifier: getMasterInstanceDefinition
focal_class.modifiers: private
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition)
focal_class.return: InstanceDefinition
focal_class.signature: InstanceDefinition getMasterInstanceDefinition(EmrClusterDefinition emrClusterDefinition)
focal_class.class_method_signature: EmrPricingHelper.getInstanceTypeSpotPrices(AvailabilityZone availabilityZone, Set<String> instanceTypes, AwsParamsDto awsParamsDto)
focal_class.full_signature: private Map<String, BigDecimal> getInstanceTypeSpotPrices(AvailabilityZone availabilityZone, Set<String> instanceTypes, AwsParamsDto awsParamsDto)
focal_class.identifier: getInstanceTypeSpotPrices
focal_class.modifiers: private
focal_class.parameters: (AvailabilityZone availabilityZone, Set<String> instanceTypes, AwsParamsDto awsParamsDto)
focal_class.return: Map<String, BigDecimal>
focal_class.signature: Map<String, BigDecimal> getInstanceTypeSpotPrices(AvailabilityZone availabilityZone, Set<String> instanceTypes, AwsParamsDto awsParamsDto)
focal_class.class_method_signature: EmrPricingHelper.getAvailabilityZones(List<Subnet> subnets, AwsParamsDto awsParamsDto)
focal_class.full_signature: private List<AvailabilityZone> getAvailabilityZones(List<Subnet> subnets, AwsParamsDto awsParamsDto)
focal_class.identifier: getAvailabilityZones
focal_class.modifiers: private
focal_class.parameters: (List<Subnet> subnets, AwsParamsDto awsParamsDto)
focal_class.return: List<AvailabilityZone>
focal_class.signature: List<AvailabilityZone> getAvailabilityZones(List<Subnet> subnets, AwsParamsDto awsParamsDto)
focal_class.class_method_signature: EmrPricingHelper.getSubnets(EmrClusterDefinition emrClusterDefinition, AwsParamsDto awsParamsDto)
focal_class.full_signature: public List<Subnet> getSubnets(EmrClusterDefinition emrClusterDefinition, AwsParamsDto awsParamsDto)
focal_class.identifier: getSubnets
focal_class.modifiers: public
focal_class.parameters: (EmrClusterDefinition emrClusterDefinition, AwsParamsDto awsParamsDto)
focal_class.return: List<Subnet>
focal_class.signature: List<Subnet> getSubnets(EmrClusterDefinition emrClusterDefinition, AwsParamsDto awsParamsDto)
focal_class.superclass: extends AwsHelper
focal_method.body: List<EmrClusterPriceDto> getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
      {
          // Builds a tree map that has the core instance price as the key, and the list of pricing with the same core instance price as the value. The tree map
          // is automatically sorted, so it is easy to find the lowest core instance price range.
          TreeMap<BigDecimal, List<EmrClusterPriceDto>> emrClusterPriceMapKeyedByCoreInstancePrice = new TreeMap<>();
          for (final EmrClusterPriceDto emrClusterPriceDto : emrClusterPrices)
          {
              final BigDecimal coreInstancePrice = getEmrClusterCoreInstancePrice(emrClusterPriceDto);
              if (coreInstancePrice != null)
              {
                  if (emrClusterPriceMapKeyedByCoreInstancePrice.containsKey(coreInstancePrice))
                  {
                      emrClusterPriceMapKeyedByCoreInstancePrice.get(coreInstancePrice).add(emrClusterPriceDto);
                  }
                  else
                  {
                      List<EmrClusterPriceDto> emrClusterPriceList = new ArrayList<>();
                      emrClusterPriceList.add(emrClusterPriceDto);
                      emrClusterPriceMapKeyedByCoreInstancePrice.put(coreInstancePrice, emrClusterPriceList);
                  }
              }
          }
  
          // Log all the information in the tree map
          LOGGER.info("All available EMR clusters keyed by core instance price: availableEmrClusters={}",
              jsonHelper.objectToJson(emrClusterPriceMapKeyedByCoreInstancePrice));
  
          // Finds the list of pricing in the range of the lowest core instance price
          List<EmrClusterPriceDto> lowestCoreInstancePriceEmrClusters = new ArrayList<>();
          if (!emrClusterPriceMapKeyedByCoreInstancePrice.isEmpty())
          {
              // calculate the lowest core instance price range
              final BigDecimal lowestCoreInstancePriceLowerBound = emrClusterPriceMapKeyedByCoreInstancePrice.firstEntry().getKey();
              final BigDecimal lowestCoreInstancePriceUpperBound =
                  lowestCoreInstancePriceLowerBound.multiply(BigDecimal.ONE.add(lowestCoreInstancePriceThresholdPercentage));
  
              LOGGER.info("emrClusterLowestCoreInstancePriceRange={}",
                  jsonHelper.objectToJson(Arrays.asList(lowestCoreInstancePriceLowerBound, lowestCoreInstancePriceUpperBound)));
  
              for (final Map.Entry<BigDecimal, List<EmrClusterPriceDto>> entry : emrClusterPriceMapKeyedByCoreInstancePrice.entrySet())
              {
                  final BigDecimal coreInstancePrice = entry.getKey();
                  // Fall into the lowest price range? add it to the list.
                  // There is no need to check the lower bound here, since the tree map is sorted, and lower bound is the lowest core price in the tree map.
                  if (coreInstancePrice.compareTo(lowestCoreInstancePriceUpperBound) <= 0)
                  {
                      lowestCoreInstancePriceEmrClusters.addAll(entry.getValue());
                  }
                  else
                  {
                      // since the tree map is sorted in ascending order, we do not need to check the rest of entries in the map
                      break;
                  }
              }
          }
          return lowestCoreInstancePriceEmrClusters;
      }
focal_method.class_method_signature: EmrPricingHelper.getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_method.full_signature:  List<EmrClusterPriceDto> getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_method.identifier: getEmrClusterPricesWithinLowestCoreInstancePriceThreshold
focal_method.invocations: getEmrClusterCoreInstancePrice containsKey add get add put info objectToJson isEmpty getKey firstEntry multiply add info objectToJson asList entrySet getKey compareTo addAll getValue
focal_method.parameters: (final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)
focal_method.return: List<EmrClusterPriceDto>
focal_method.signature: List<EmrClusterPriceDto> getEmrClusterPricesWithinLowestCoreInstancePriceThreshold(final List<EmrClusterPriceDto> emrClusterPrices,
          final BigDecimal lowestCoreInstancePriceThresholdPercentage)