### Question:
CciL3FileType extends AbstractCciFileType { @Override public CellFactory<SpatialAggregationCell> getCellFactory5(final AggregationContext context) { return new CellFactory<SpatialAggregationCell>() { @Override public SynopticCell5 createCell(int cellX, int cellY) { return new SynopticCell5(context, cellX, cellY); } }; }  @Override AggregationContext readSourceGrids(NetcdfFile datafile,
                                              SstDepth sstDepth,
                                              AggregationContext context); @Override Variable[] addResultVariables(NetcdfFileWriteable datafile, Dimension[] dims, SstDepth sstDepth); @Override AggregationFactory<SameMonthAggregation<AggregationCell>> getSameMonthAggregationFactory(); @Override AggregationFactory<MultiMonthAggregation<RegionalAggregation>> getMultiMonthAggregationFactory(); @Override CellFactory<SpatialAggregationCell> getCellFactory5(final AggregationContext context); @Override CellFactory<CellAggregationCell<AggregationCell>> getCellFactory90(final AggregationContext context); @Override String getFilenameRegex();  }### Answer:
@Test public void testCell5Aggregation() throws Exception { final GridDef sourceGridDef = FILE_TYPE.getGridDef(); final AggregationContext context = new AggregationContext(); context.setSstGrid(new ScalarGrid(sourceGridDef, 292.0)); context.setQualityGrid(new ScalarGrid(sourceGridDef, 5)); context.setRandomUncertaintyGrid(new ScalarGrid(sourceGridDef, 1.0)); context.setLargeScaleUncertaintyGrid(new ScalarGrid(sourceGridDef, 2.0)); context.setClimatologySstGrid(new ScalarGrid(sourceGridDef, 291.5)); context.setSeaCoverageGrid(new ScalarGrid(sourceGridDef, 0.8)); context.setCoverageUncertaintyProvider(new MockCoverageUncertaintyProvider(1.1, 1.2, 0.5)); final CellFactory<SpatialAggregationCell> cell5Factory = FILE_TYPE.getCellFactory5(context); final SpatialAggregationCell cell5 = cell5Factory.createCell(0, 0); cell5.accumulate(context, new Rectangle(0, 0, 100, 100)); final int expectedN = 100 * 100; assertEquals(expectedN, cell5.getSampleCount()); final Number[] results = cell5.getResults(); assertNotNull(results); assertEquals(8, results.length); assertEquals(292.0, results[Aggregation.SST].doubleValue(), 1.0e-6); assertEquals(0.5, results[Aggregation.SST_ANOMALY].doubleValue(), 1.0e-6); assertEquals(1.2 * (1.0 - Math.pow(expectedN / 77500.0, 0.5)), results[Aggregation.COVERAGE_UNCERTAINTY].doubleValue(), 1.0e-6); assertEquals(sqrt((0.8 * 0.8 * 10000) / ((0.8 * 10000) * (0.8 * 10000))), results[Aggregation.RANDOM_UNCERTAINTY].doubleValue(), 1.0e-6); assertEquals((2.0 * 0.8 * 10000) / (0.8 * 10000), results[Aggregation.LARGE_SCALE_UNCERTAINTY].doubleValue(), 1.0e-6); }