hunk.code_window:   _jsTestSuiteResult = nil;
     _rootViewController = (EXRootViewController *)[ExpoKit sharedInstance].rootViewController;
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_onTestSuiteCompleted:) name:EXTestSuiteCompletedNotification object:nil];
   }
   - (void)testDoesTestSuiteAppPassAllJSTests
   {
  
hunk.labels: keep keep keep replace keep keep keep keep
hunk.after_edit:   [[NSNotificationCenter defaultCenter] addObserver:self
                                              selector:@selector(_onKernelJSLoaded)
                                                  name:kEXKernelJSIsLoadedNotification
                                                object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self
                                              selector:@selector(_onTestSuiteCompleted:)
                                                  name:EXTestSuiteCompletedNotification object:nil];
  
hunk.file_path: ios/ExponentIntegrationTests/ExponentIntegrationTests.m
hunk.type: replace
file: //
  // Created by Leland Richardson on 12/27/15.
  // Copyright (c) 2015 Facebook. All rights reserved.
  //
  
  #import "ABI17_0_0AIRMapPolyline.h"
  #import <ReactABI17_0_0/UIView+ReactABI17_0_0.h>
  
  
  @implementation ABI17_0_0AIRMapPolyline {
  
  }
  
  - (void)setFillColor:(UIColor *)fillColor {
      _fillColor = fillColor;
      [self update];
  }
  
  - (void)setStrokeColor:(UIColor *)strokeColor {
      _strokeColor = strokeColor;
      [self update];
  }
  
  - (void)setStrokeWidth:(CGFloat)strokeWidth {
      _strokeWidth = strokeWidth;
      [self update];
  }
  
  - (void)setLineJoin:(CGLineJoin)lineJoin {
      _lineJoin = lineJoin;
      [self update];
  }
  
  - (void)setLineCap:(CGLineCap)lineCap {
      _lineCap = lineCap;
      [self update];
  }
  
  - (void)setMiterLimit:(CGFloat)miterLimit {
      _miterLimit = miterLimit;
      [self update];
  }
  
  - (void)setLineDashPhase:(CGFloat)lineDashPhase {
      _lineDashPhase = lineDashPhase;
      [self update];
  }
  
  - (void)setLineDashPattern:(NSArray <NSNumber *> *)lineDashPattern {
      _lineDashPattern = lineDashPattern;
      [self update];
  }
  
  - (void)setCoordinates:(NSArray<ABI17_0_0AIRMapCoordinate *> *)coordinates {
      _coordinates = coordinates;
      CLLocationCoordinate2D coords[coordinates.count];
      for(int i = 0; i < coordinates.count; i++)
      {
          coords[i] = coordinates[i].coordinate;
      }
      self.polyline = [MKPolyline polylineWithCoordinates:coords count:coordinates.count];
      self.renderer = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
      [self update];
  }
  
  - (void) update
  {
      if (!_renderer) return;
      _renderer.fillColor = _fillColor;
      _renderer.strokeColor = _strokeColor;
      _renderer.lineWidth = _strokeWidth;
      _renderer.lineCap = _lineCap;
      _renderer.lineJoin = _lineJoin;
      _renderer.miterLimit = _miterLimit;
      _renderer.lineDashPhase = _lineDashPhase;
      _renderer.lineDashPattern = _lineDashPattern;
  
      if (_map == nil) return;
      [_map removeOverlay:self];
      [_map addOverlay:self];
  }
  
  
  #pragma mark MKOverlay implementation
  
  - (CLLocationCoordinate2D) coordinate
  {
      return self.polyline.coordinate;
  }
  
  - (MKMapRect) boundingMapRect
  {
      return self.polyline.boundingMapRect;
  }
  
  - (BOOL)intersectsMapRect:(MKMapRect)mapRect
  {
      BOOL answer = [self.polyline intersectsMapRect:mapRect];
      return answer;
  }
  
  - (BOOL)canReplaceMapContent
  {
      return NO;
  }
  
  
  #pragma mark ABI17_0_0AIRMapSnapshot implementation
  
  - (void) drawToSnapshot:(MKMapSnapshot *) snapshot context:(CGContextRef) context
  {
      // Prepare context
      CGContextSetStrokeColorWithColor(context, self.strokeColor.CGColor);
      CGContextSetLineWidth(context, self.strokeWidth);
      CGContextSetLineCap(context, self.lineCap);
      CGContextSetLineJoin(context, self.lineJoin);
      CGContextSetMiterLimit(context, self.miterLimit);
      CGFloat dashes[self.lineDashPattern.count];
      for (NSUInteger i = 0; i < self.lineDashPattern.count; i++) {
          dashes[i] = self.lineDashPattern[i].floatValue;
      }
      CGContextSetLineDash(context, self.lineDashPhase, dashes, self.lineDashPattern.count);
      
      // Begin path
      CGContextBeginPath(context);
      
      // Get coordinates
      CLLocationCoordinate2D coordinates[[self.polyline pointCount]];
      [self.polyline getCoordinates:coordinates range:NSMakeRange(0, [self.polyline pointCount])];
      
      // Draw line segments
      for(int i = 0; i < [self.polyline pointCount]; i++) {
          CGPoint point = [snapshot pointForCoordinate:coordinates[i]];
          if (i == 0) {
              CGContextMoveToPoint(context,point.x, point.y);
          }
          else{
              CGContextAddLineToPoint(context,point.x, point.y);
          }
      }
      
      // Finish path
      CGContextStrokePath(context);
  }
  
  @end
  