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 reduceStatsTest() {
          List<NormalDistributionStatistics> left = Arrays.asList(
              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)
          );
  
          List<NormalDistributionStatistics> right = Arrays.asList(
              new NormalDistributionStatistics(6, 15, 1185, 105, 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(2, 11, 505, 65, 10),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(0, 9, 285, 45, 10)
          );
  
          List<NormalDistributionStatistics> res = computer.reduceStats(left, right, meta);
          NormalDistributionStatistics[] exp = new NormalDistributionStatistics[] {
              new NormalDistributionStatistics(0, 15, 1470, 150, 20),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(2, 13, 1310, 150, 20),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(2, 13, 1310, 150, 20),
              new NormalDistributionStatistics(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0, 0, 10),
              new NormalDistributionStatistics(0, 15, 1470, 150, 20)
          };
  
          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.reduceStatsTest()
test_case.full_signature: @Test public void reduceStatsTest()
test_case.identifier: reduceStatsTest
test_case.invocations: asList asList reduceStats 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 reduceStatsTest()
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> reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta) {
  
          if (left == null)
              return right;
          if (right == null)
              return left;
  
          assert meta.size() == left.size() && meta.size() == right.size();
          List<NormalDistributionStatistics> res = new ArrayList<>();
          for (int featureId = 0; featureId < meta.size(); featureId++) {
              NormalDistributionStatistics leftStat = left.get(featureId);
              NormalDistributionStatistics rightStat = right.get(featureId);
              res.add(leftStat.plus(rightStat));
          }
          return res;
      }
focal_method.class_method_signature: NormalDistributionStatisticsComputer.reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_method.full_signature: public List<NormalDistributionStatistics> reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_method.identifier: reduceStats
focal_method.invocations: size size size size size get get add plus
focal_method.modifiers: public
focal_method.parameters: (List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)
focal_method.return: List<NormalDistributionStatistics>
focal_method.signature: List<NormalDistributionStatistics> reduceStats(List<NormalDistributionStatistics> left,
          List<NormalDistributionStatistics> right,
          List<FeatureMeta> meta)