test_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AggregationUnitFactoryTest.java
test_class.identifier: AggregationUnitFactoryTest
test_case.body: @Test
      public void assertCreateDistinctAverageAggregationUnit() {
          assertThat(AggregationUnitFactory.create(AggregationType.AVG, true), instanceOf(DistinctAverageAggregationUnit.class));
      }
test_case.class_method_signature: AggregationUnitFactoryTest.assertCreateDistinctAverageAggregationUnit()
test_case.full_signature: @Test public void assertCreateDistinctAverageAggregationUnit()
test_case.identifier: assertCreateDistinctAverageAggregationUnit
test_case.invocations: assertThat create instanceOf
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertCreateDistinctAverageAggregationUnit()
focal_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AggregationUnitFactory.java
focal_class.identifier: AggregationUnitFactory
focal_class.class_method_signature: AggregationUnitFactory.create(final AggregationType type, final boolean isDistinct)
focal_class.full_signature: public static AggregationUnit create(final AggregationType type, final boolean isDistinct)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (final AggregationType type, final boolean isDistinct)
focal_class.return: AggregationUnit
focal_class.signature: AggregationUnit create(final AggregationType type, final boolean isDistinct)
focal_method.body: public static AggregationUnit create(final AggregationType type, final boolean isDistinct) {
          switch (type) {
              case MAX:
                  return new ComparableAggregationUnit(false);
              case MIN:
                  return new ComparableAggregationUnit(true);
              case SUM:
                  return isDistinct ? new DistinctSumAggregationUnit() : new AccumulationAggregationUnit();
              case COUNT:
                  return isDistinct ? new DistinctCountAggregationUnit() : new AccumulationAggregationUnit();
              case AVG:
                  return isDistinct ? new DistinctAverageAggregationUnit() : new AverageAggregationUnit();
              default:
                  throw new UnsupportedOperationException(type.name());
          }
      }
focal_method.class_method_signature: AggregationUnitFactory.create(final AggregationType type, final boolean isDistinct)
focal_method.full_signature: public static AggregationUnit create(final AggregationType type, final boolean isDistinct)
focal_method.identifier: create
focal_method.invocations: name
focal_method.modifiers: public static
focal_method.parameters: (final AggregationType type, final boolean isDistinct)
focal_method.return: AggregationUnit
focal_method.signature: AggregationUnit create(final AggregationType type, final boolean isDistinct)