anchor.diff:        DateTime validToAt = _parseDateTime(Uri.decodeComponent(validTo));
         Duration duration = validToAt.difference(validFromAt);
   
  -      List<TimeseriesNode> nodes = _extractNodes(locations, elements, product, model);
  +      List<TimeseriesNode> nodes =
  +      _extractNodes(locations, elements, product, model);
   
         return cache.getTimeseriesBestSeriesSet(nodes, validFromAt, duration);
       } catch (e) {
  
positive.code:       elementList.forEach((element) {
          String locationName = location.split("\.")[0];
          String locationSuffix = location.split("\.")[1];
          nodes.add(new TimeseriesNode.create(product, model, element, locationName, locationSuffix));
        });
      });
      return nodes;
  
negative.code:   }
  
    @ApiMethod(method: 'GET', path: 'byAnalysis/{product}/{model}/{analysis}')
    Future<List<TimeseriesAssembly>> byAnalysis(
        String product, String model, String analysis,
        {String locations, String elements, String validFrom, String validTo}) {
      try {
        if ((locations == null) || (elements == null)) {
          throw new FormatException(
              "locations and elements are required query paramters");
        }
        product = Uri.decodeComponent(product);
        model = Uri.decodeComponent(model);
        analysis = Uri.decodeComponent(analysis);
  
        List<TimeseriesNode> nodes =
        _extractNodes(locations, elements, product, model);
  
        DateTime analysisAt = _parseDateTime(analysis);
  
  