test_class.declarator: meta = Arrays.asList(
          new FeatureMeta("", 0, false),
          new FeatureMeta("", 1, true),
          new FeatureMeta("", 2, false),
          new FeatureMeta("", 3, true),
          new FeatureMeta("", 4, false),
          new FeatureMeta("", 5, true),
          new FeatureMeta("", 6, false)
      )
test_class.modifier: private final
test_class.original_string: private final List<FeatureMeta> meta = Arrays.asList(
          new FeatureMeta("", 0, false),
          new FeatureMeta("", 1, true),
          new FeatureMeta("", 2, false),
          new FeatureMeta("", 3, true),
          new FeatureMeta("", 4, false),
          new FeatureMeta("", 5, true),
          new FeatureMeta("", 6, false)
      );
test_class.type: List<FeatureMeta>
test_class.var_name: meta
test_class.declarator: partition = new BootstrappedDatasetPartition(new BootstrappedVector[] {
          new BootstrappedVector(VectorUtils.of(0, 1, 2, 1, 4, 2, 6), 0., null),
          new BootstrappedVector(VectorUtils.of(1, 0, 3, 2, 5, 3, 7), 0., null),
          new BootstrappedVector(VectorUtils.of(2, 1, 4, 1, 6, 2, 8), 0., null),
          new BootstrappedVector(VectorUtils.of(3, 0, 5, 2, 7, 3, 9), 0., null),
          new BootstrappedVector(VectorUtils.of(4, 1, 6, 1, 8, 2, 10), 0., null),
          new BootstrappedVector(VectorUtils.of(5, 0, 7, 2, 9, 3, 11), 0., null),
          new BootstrappedVector(VectorUtils.of(6, 1, 8, 1, 10, 2, 12), 0., null),
          new BootstrappedVector(VectorUtils.of(7, 0, 9, 2, 11, 3, 13), 0., null),
          new BootstrappedVector(VectorUtils.of(8, 1, 10, 1, 12, 2, 14), 0., null),
          new BootstrappedVector(VectorUtils.of(9, 0, 11, 2, 13, 3, 15), 0., null),
      })
test_class.modifier: private
test_class.original_string: private BootstrappedDatasetPartition partition = new BootstrappedDatasetPartition(new BootstrappedVector[] {
          new BootstrappedVector(VectorUtils.of(0, 1, 2, 1, 4, 2, 6), 0., null),
          new BootstrappedVector(VectorUtils.of(1, 0, 3, 2, 5, 3, 7), 0., null),
          new BootstrappedVector(VectorUtils.of(2, 1, 4, 1, 6, 2, 8), 0., null),
          new BootstrappedVector(VectorUtils.of(3, 0, 5, 2, 7, 3, 9), 0., null),
          new BootstrappedVector(VectorUtils.of(4, 1, 6, 1, 8, 2, 10), 0., null),
          new BootstrappedVector(VectorUtils.of(5, 0, 7, 2, 9, 3, 11), 0., null),
          new BootstrappedVector(VectorUtils.of(6, 1, 8, 1, 10, 2, 12), 0., null),
          new BootstrappedVector(VectorUtils.of(7, 0, 9, 2, 11, 3, 13), 0., null),
          new BootstrappedVector(VectorUtils.of(8, 1, 10, 1, 12, 2, 14), 0., null),
          new BootstrappedVector(VectorUtils.of(9, 0, 11, 2, 13, 3, 15), 0., null),
      });
test_class.type: BootstrappedDatasetPartition
test_class.var_name: partition
test_class.declarator: computer = new NormalDistributionStatisticsComputer()
test_class.modifier: private
test_class.original_string: private NormalDistributionStatisticsComputer computer = new NormalDistributionStatisticsComputer();
test_class.type: NormalDistributionStatisticsComputer
test_class.var_name: computer
test_class.file: modules/ml/src/test/java/org/apache/ignite/ml/tree/randomforest/data/statistics/NormalDistributionStatisticsComputerTest.java
test_class.identifier: NormalDistributionStatisticsComputerTest
test_case.body: @Test
      public void computeStatsOnPartitionTest() {
          List<NormalDistributionStatistics> res = computer.computeStatsOnPartition(partition, meta);
          NormalDistributionStatistics[] exp = new NormalDistributionStatistics[] {
              new NormalDistributionStatistics(0, 9, 285, 45, 10),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(2, 11, 505, 65, 10),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(4, 13, 805, 85, 10),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(6, 15, 1185, 105, 10),
          };
  
          assertEquals(exp.length, res.size());
          for (int i = 0; i < exp.length; i++) {
              NormalDistributionStatistics expStat = exp[i];
              NormalDistributionStatistics resStat = res.get(i);
              assertEquals(expStat.mean(), resStat.mean(), 0.01);
              assertEquals(expStat.variance(), resStat.variance(), 0.01);
              assertEquals(expStat.std(), resStat.std(), 0.01);
              assertEquals(expStat.min(), resStat.min(), 0.01);
              assertEquals(expStat.max(), resStat.max(), 0.01);
          }
      }
test_case.class_method_signature: NormalDistributionStatisticsComputerTest.computeStatsOnPartitionTest()
test_case.full_signature: @Test public void computeStatsOnPartitionTest()
test_case.identifier: computeStatsOnPartitionTest
test_case.invocations: computeStatsOnPartition assertEquals size get assertEquals mean mean assertEquals variance variance assertEquals std std assertEquals min min assertEquals max max
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void computeStatsOnPartitionTest()
focal_class.declarator: serialVersionUID = -3699071003012595743L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = -3699071003012595743L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.file: modules/ml/src/main/java/org/apache/ignite/ml/tree/randomforest/data/statistics/NormalDistributionStatisticsComputer.java
focal_class.identifier: NormalDistributionStatisticsComputer
focal_class.interfaces: implements Serializable
focal_class.class_method_signature: NormalDistributionStatisticsComputer.computeStatistics(List<FeatureMeta> meta, Dataset<EmptyContext,
          BootstrappedDatasetPartition> dataset)
focal_class.full_signature: public List<NormalDistributionStatistics> computeStatistics(List<FeatureMeta> meta, Dataset<EmptyContext,
          BootstrappedDatasetPartition> dataset)
focal_class.identifier: computeStatistics
focal_class.modifiers: public
focal_class.parameters: (List<FeatureMeta> meta, Dataset<EmptyContext,
          BootstrappedDatasetPartition> dataset)
focal_class.return: List<NormalDistributionStatistics>
focal_class.signature: List<NormalDistributionStatistics> computeStatistics(List<FeatureMeta> meta, Dataset<EmptyContext,
          BootstrappedDatasetPartition> dataset)
focal_class.class_method_signature: NormalDistributionStatisticsComputer.computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_class.full_signature: public List<NormalDistributionStatistics> computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_class.identifier: computeStatsOnPartition
focal_class.modifiers: public
focal_class.parameters: (BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_class.return: List<NormalDistributionStatistics>
focal_class.signature: List<NormalDistributionStatistics> computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_class.class_method_signature: NormalDistributionStatisticsComputer.reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_class.full_signature: public List<NormalDistributionStatistics> reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_class.identifier: reduceStats
focal_class.modifiers: public
focal_class.parameters: (List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_class.return: List<NormalDistributionStatistics>
focal_class.signature: List<NormalDistributionStatistics> reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_method.body: public List<NormalDistributionStatistics> computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta) {
  
          double[] sumOfValues = new double[meta.size()];
          double[] sumOfSquares = new double[sumOfValues.length];
          double[] min = new double[sumOfValues.length];
          double[] max = new double[sumOfValues.length];
          Arrays.fill(min, Double.POSITIVE_INFINITY);
          Arrays.fill(max, Double.NEGATIVE_INFINITY);
  
          for (int i = 0; i < part.getRowsCount(); i++) {
              Vector vec = part.getRow(i).features();
              for (int featureId = 0; featureId < vec.size(); featureId++) {
                  if (!meta.get(featureId).isCategoricalFeature()) {
                      double featureVal = vec.get(featureId);
                      sumOfValues[featureId] += featureVal;
                      sumOfSquares[featureId] += Math.pow(featureVal, 2);
                      min[featureId] = Math.min(min[featureId], featureVal);
                      max[featureId] = Math.max(max[featureId], featureVal);
                  }
              }
          }
  
          ArrayList<NormalDistributionStatistics> res = new ArrayList<>();
          for (int featureId = 0; featureId < sumOfSquares.length; featureId++) {
              res.add(new NormalDistributionStatistics(
                  min[featureId], max[featureId],
                  sumOfSquares[featureId], sumOfValues[featureId],
                  part.getRowsCount())
              );
          }
          return res;
      }
focal_method.class_method_signature: NormalDistributionStatisticsComputer.computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_method.full_signature: public List<NormalDistributionStatistics> computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_method.identifier: computeStatsOnPartition
focal_method.invocations: size fill fill getRowsCount features getRow size isCategoricalFeature get get pow min max add getRowsCount
focal_method.modifiers: public
focal_method.parameters: (BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)
focal_method.return: List<NormalDistributionStatistics>
focal_method.signature: List<NormalDistributionStatistics> computeStatsOnPartition(BootstrappedDatasetPartition part,
          List<FeatureMeta> meta)