http://hapi-server.org/servers/TestData2.0/hapi
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.4","lookup":"5.3","connect":"6.6","response":"11.4","end":"11.6"}, {"wait":"0.4","dns":"4.9","tcp":"1.3","firstByte":"4.7","download":"0.3","total":"11.6"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^text\/html/
Got: text/html; charset=utf-8

http://hapi-server.org/servers/TestData2.0/hapi/capabilities
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.9","connect":"3.2","response":"7.6","end":"7.8"}, {"wait":"0.5","dns":"1.5","tcp":"1.3","firstByte":"4.4","download":"0.2","total":"7.8"}
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.HTTP200(): Expect HTTP status code to be 200
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'capabilities' schema.
Got: JSON is valid with respect to JSON schema.
  Expect outputFormats to have 'csv'
Got: csv, binary, json

http://hapi-server.org/servers/TestData2.0/hapi/catalog
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.4","connect":"3.2","response":"6.9","end":"7.2"}, {"wait":"0.5","dns":"0.9","tcp":"1.9","firstByte":"3.7","download":"0.2","total":"7.2"}
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.HTTP200(): Expect HTTP status code to be 200
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'catalog' schema.
Got: JSON is valid with respect to JSON schema.
  is.Unique(): Expect all 'id' values in objects in datasets array to be unique
is.TooLong(): Prefer titles in objects to be ≤ 40 characters
Got: catalog has 2 datasets with a title > 40 characters:

id: 'dataset2'; title: 'Dataset w/valid HAPI 2.0 - Same as dataset1 but at PT1H resolution'
id: 'dataset3'; title: 'Dataset w/valid HAPI 2.0 - Same as dataset1 but at P1D resolution'
  is.CIdentifier(): Prefer dataset id to match c identifier regex '[_a-zA-Z][_a-zA-Z0-9]{1,30}'.
Got: All dataset id(s) match.

http://hapi-server.org/servers/TestData2.0/hapi/info?id=a_test_of_an_invalid_id_by_verifier-nodejs
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.2","response":"6.0","end":"6.2"}, {"wait":"0.5","dns":"0.6","tcp":"1.1","firstByte":"3.8","download":"0.2","total":"6.2"}
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.ErrorCorrect(): Expect HTTP code in JSON to be 404
  is.StatusInformative(): Want HTTP status message to contain the string '[object Object]' (default HAPI error message). (Explanation.)
Got: 'HAPI error 1406: unknown id'
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'HAPIStatus' schema.
Got: JSON is valid with respect to JSON schema.
  is.ErrorCorrect(): Expect HAPI code in JSON to be 1406
  is.StatusInformative(): Want HAPI status message in JSON responseto contain the string 'HAPI error 1406' (default HAPI error message). (Explanation.)
Got: 'HAPI error 1406: unknown id'

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset1
 👁 Visually check data and test performance
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"3.2","lookup":"3.8","connect":"5.0","response":"10.7","end":"11.0"}, {"wait":"3.2","dns":"0.6","tcp":"1.1","firstByte":"5.8","download":"0.2","total":"11.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  is.Unique(): Expect all 'name' values in objects in parameters array to be unique
  is.FormatInHeader(): /info response should not have 'format' specified.
Got: No format given.
  is.FirstParameterOK(): First parameter should (not must) be named 'Time' b/c clients will likely label first parameter as 'Time' on plot to protect against first parameter names that are not sensible.
Got: header.parameters[0].name
  is.FirstParameterOK(): First parameter must have a fill of null or it should not be specified.
Got: null
  is.TimeIncreasing(): Expect info.startDate < info.stopDate
Got: startDate = 1970-01-01T00Z; stopDate = 2016-12-31T00Z
  is.TimeIncreasing(): Expect info.sampleStartDate < info.sampleStopDate
Got: sampleStartDate = 1970-01-01T00Z; sampleStopDate = 1970-01-01T00:00:11Z
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter Time.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 24 for parameter 'Time'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'scalar'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter scalar.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter scalarint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'scalarstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'scalariso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vector'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vector.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter vectorint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'vectorstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'vectoriso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vectormulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vectormulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transform'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transform.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transformmulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transformmulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectra'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectra["size"][0]
Got: bins[0][centers].length = 10 and spectra["size"][0] = 10
  is.BinsCentersOrRangesOK(): Expect spectra["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectra.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectranobins'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectranobins.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectralarge'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectralarge["size"][0]
Got: bins[0][centers].length = 100 and spectralarge["size"][0] = 100
  is.BinsCentersOrRangesOK(): Expect spectralarge["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectralarge.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectramulti'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectramulti["size"][0]
Got: bins[0][centers].length = 2 and spectramulti["size"][0] = 2
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[1]["centers"].length = spectramulti["size"][1]
Got: bins[1][centers].length = 10 and spectramulti["size"][1] = 10
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][1]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectramulti.
  is.CadenceGiven(): Expect the nominal cadence to be given (see the HAPI spec for definition). A nominal cadence is useful for clients and obviates the need for it to be inferred programatically.
Got: PT1S
  is.CadenceOK(): Expect (sampleStopDate-sampleStartDate)/cadence > 10
Got: (sampleStartDate-sampleStopDate)/cadence = 11

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset1&parameters=scalar
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.2","connect":"2.4","response":"6.9","end":"7.1"}, {"wait":"0.7","dns":"0.6","tcp":"1.2","firstByte":"4.5","download":"0.2","total":"7.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  Expect # parameters in JSON to be 2 when one non-time parameter is requested
Got: 2 parameters.
  Expect info response for one parameter to match content in response for all parameters
Got: Match.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.3","response":"115.5","end":"156.0"}, {"wait":"0.5","dns":"0.7","tcp":"1.1","firstByte":"113.2","download":"40.5","total":"156.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 25181 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (185) - (185)

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&time.min=1970-001Z&time.max=1970-001T00:00:11Z
  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.3","connect":"2.7","response":"142.2","end":"187.8"}, {"wait":"0.7","dns":"0.7","tcp":"1.4","firstByte":"139.5","download":"45.7","total":"187.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 25181 bytes.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z&include=header
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.6","lookup":"1.4","connect":"2.7","response":"137.4","end":"179.1"}, {"wait":"0.6","dns":"0.8","tcp":"1.3","firstByte":"134.8","download":"41.7","total":"179.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 28814 bytes.
  is.HeaderParsable(): Expect header lines in data stream to be JSON parsable after removal of leading #s.
  is.FormatInHeader(): Header in CSV response should have 'format: csv' specified.
Got: Format of 'csv' specified.
  is.HeaderSame(): Expect /info response to match header in data response when 'include=header' requested.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&time.min=1970-01-01T00:00:00.001Z&time.max=1970-01-01T00:00:00.002Z
  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.3","connect":"2.7","response":"134.5","end":"134.7"}, {"wait":"0.7","dns":"0.6","tcp":"1.4","firstByte":"131.8","download":"0.2","total":"134.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): If data part of response has zero length, prefer 'HAPI 1201' (no data in time range) in HTTP header status message (if possible). (Details.)
Got: Zero bytes and HTTP header status message of 'HAPI 1201: No data in interval'

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=Time&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.3","response":"126.3","end":"169.9"}, {"wait":"0.5","dns":"0.6","tcp":"1.1","firstByte":"124.0","download":"43.6","total":"169.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 250 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.SizeCorrect(): Expect number of commas on first line to be 0 because only first parameter (time) requested.
Got: 0 commas

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=scalar&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.0","connect":"2.2","response":"134.2","end":"175.0"}, {"wait":"0.5","dns":"0.5","tcp":"1.2","firstByte":"131.9","download":"40.9","total":"175.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 436 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '6\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=scalarint&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.3","response":"85.1","end":"143.1"}, {"wait":"0.5","dns":"0.6","tcp":"1.2","firstByte":"82.7","download":"58.1","total":"143.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 278 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=scalarstr&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.6","response":"122.9","end":"170.0"}, {"wait":"0.5","dns":"0.6","tcp":"1.6","firstByte":"120.3","download":"47.1","total":"170.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 290 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=scalarcats&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.4","response":"145.0","end":"189.2"}, {"wait":"0.5","dns":"0.8","tcp":"1.2","firstByte":"142.5","download":"44.2","total":"189.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 270 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '0\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=scalariso&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.2","response":"130.2","end":"170.3"}, {"wait":"0.4","dns":"0.7","tcp":"1.2","firstByte":"128.0","download":"40.1","total":"170.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 460 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vector&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.5","connect":"2.7","response":"87.3","end":"130.8"}, {"wait":"0.7","dns":"0.8","tcp":"1.2","firstByte":"84.6","download":"43.5","total":"130.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 817 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vectorint&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.2","connect":"2.4","response":"141.3","end":"184.1"}, {"wait":"0.4","dns":"0.8","tcp":"1.2","firstByte":"138.8","download":"42.8","total":"184.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 334 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vectorstr&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.3","connect":"4.6","response":"147.4","end":"191.3"}, {"wait":"0.5","dns":"0.8","tcp":"3.3","firstByte":"142.8","download":"43.9","total":"191.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 370 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vectorcats&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.3","response":"136.5","end":"178.5"}, {"wait":"0.5","dns":"0.7","tcp":"1.1","firstByte":"134.2","download":"42.0","total":"178.5"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 310 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vectoriso&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"140.5","end":"184.1"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"138.2","download":"43.7","total":"184.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 880 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=vectormulti&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.0","connect":"2.2","response":"85.3","end":"127.1"}, {"wait":"0.5","dns":"0.5","tcp":"1.2","firstByte":"83.1","download":"41.8","total":"127.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 1386 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (7) - (7)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=transform&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.3","response":"135.2","end":"175.9"}, {"wait":"0.5","dns":"0.6","tcp":"1.3","firstByte":"132.9","download":"40.7","total":"175.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 430 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=transformmulti&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"0.9","connect":"2.1","response":"140.3","end":"183.4"}, {"wait":"0.4","dns":"0.5","tcp":"1.2","firstByte":"138.2","download":"43.2","total":"183.4"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 430 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=spectra&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"82.5","end":"123.7"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"80.2","download":"41.3","total":"123.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 1260 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '1\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=spectranobins&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.3","response":"141.3","end":"184.1"}, {"wait":"0.5","dns":"0.6","tcp":"1.2","firstByte":"139.1","download":"42.7","total":"184.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 450 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '9\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=spectralarge&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.3","response":"158.1","end":"202.8"}, {"wait":"0.4","dns":"0.7","tcp":"1.1","firstByte":"155.8","download":"44.7","total":"202.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 18570 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (101) - (101)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset1&parameters=spectramulti&time.min=1970-01-01Z&time.max=1970-01-01T00:00:11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.0","connect":"2.1","response":"137.6","end":"180.6"}, {"wait":"0.5","dns":"0.6","tcp":"1.1","firstByte":"135.5","download":"42.9","total":"180.6"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 2210 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T00:00:11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T00:00:09.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (21) - (21)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset2
 👁 Visually check data and test performance
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"6.5","end":"6.7"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"4.3","download":"0.2","total":"6.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  is.Unique(): Expect all 'name' values in objects in parameters array to be unique
  is.FormatInHeader(): /info response should not have 'format' specified.
Got: No format given.
  is.FirstParameterOK(): First parameter should (not must) be named 'Time' b/c clients will likely label first parameter as 'Time' on plot to protect against first parameter names that are not sensible.
Got: header.parameters[0].name
  is.FirstParameterOK(): First parameter must have a fill of null or it should not be specified.
Got: null
  is.TimeIncreasing(): Expect info.startDate < info.stopDate
Got: startDate = 1970-01-01T00Z; stopDate = 2016-12-31T00Z
  is.TimeIncreasing(): Expect info.sampleStartDate < info.sampleStopDate
Got: sampleStartDate = 1970-01-01T00Z; sampleStopDate = 1970-01-01T11Z
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter Time.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 24 for parameter 'Time'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'scalar'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter scalar.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter scalarint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'scalarstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'scalariso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vector'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vector.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter vectorint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'vectorstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'vectoriso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vectormulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vectormulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transform'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transform.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transformmulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transformmulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectra'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectra["size"][0]
Got: bins[0][centers].length = 10 and spectra["size"][0] = 10
  is.BinsCentersOrRangesOK(): Expect spectra["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectra.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectranobins'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectranobins.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectralarge'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectralarge["size"][0]
Got: bins[0][centers].length = 100 and spectralarge["size"][0] = 100
  is.BinsCentersOrRangesOK(): Expect spectralarge["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectralarge.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectramulti'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectramulti["size"][0]
Got: bins[0][centers].length = 2 and spectramulti["size"][0] = 2
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[1]["centers"].length = spectramulti["size"][1]
Got: bins[1][centers].length = 10 and spectramulti["size"][1] = 10
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][1]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectramulti.
  is.CadenceGiven(): Expect the nominal cadence to be given (see the HAPI spec for definition). A nominal cadence is useful for clients and obviates the need for it to be inferred programatically.
Got: PT1H
  is.CadenceOK(): Expect (sampleStopDate-sampleStartDate)/cadence > 10
Got: (sampleStartDate-sampleStopDate)/cadence = 11

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset2&parameters=scalar
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.2","connect":"2.4","response":"6.4","end":"6.6"}, {"wait":"0.4","dns":"0.8","tcp":"1.2","firstByte":"4.0","download":"0.2","total":"6.6"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  Expect # parameters in JSON to be 2 when one non-time parameter is requested
Got: 2 parameters.
  Expect info response for one parameter to match content in response for all parameters
Got: Match.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&time.min=1970-01-01Z&time.max=1970-01-01T11Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.4","lookup":"16.7","connect":"17.9","response":"151.0","end":"193.7"}, {"wait":"0.4","dns":"16.2","tcp":"1.3","firstByte":"133.0","download":"42.7","total":"193.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 25309 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (185) - (185)

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&time.min=1970-001Z&time.max=1970-001T11Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.3","connect":"2.5","response":"151.8","end":"192.2"}, {"wait":"0.5","dns":"0.8","tcp":"1.2","firstByte":"149.3","download":"40.4","total":"192.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 25309 bytes.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&time.min=1970-01-01Z&time.max=1970-01-01T11Z&include=header
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.3","connect":"2.5","response":"153.3","end":"195.8"}, {"wait":"0.7","dns":"0.6","tcp":"1.2","firstByte":"150.8","download":"42.5","total":"195.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 28922 bytes.
  is.HeaderParsable(): Expect header lines in data stream to be JSON parsable after removal of leading #s.
  is.FormatInHeader(): Header in CSV response should have 'format: csv' specified.
Got: Format of 'csv' specified.
  is.HeaderSame(): Expect /info response to match header in data response when 'include=header' requested.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&time.min=1970-01-01T00:00:00.001Z&time.max=1970-01-01T00:00:00.002Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.2","connect":"2.4","response":"139.7","end":"139.9"}, {"wait":"0.4","dns":"0.7","tcp":"1.2","firstByte":"137.3","download":"0.2","total":"139.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): If data part of response has zero length, prefer 'HAPI 1201' (no data in time range) in HTTP header status message (if possible). (Details.)
Got: Zero bytes and HTTP header status message of 'HAPI 1201: No data in interval'

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=Time&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"0.9","connect":"2.1","response":"130.6","end":"183.2"}, {"wait":"0.4","dns":"0.5","tcp":"1.2","firstByte":"128.5","download":"52.6","total":"183.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 250 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.SizeCorrect(): Expect number of commas on first line to be 0 because only first parameter (time) requested.
Got: 0 commas

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=scalar&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.3","response":"129.3","end":"171.6"}, {"wait":"0.5","dns":"0.6","tcp":"1.2","firstByte":"127.0","download":"42.3","total":"171.6"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 436 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '6\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=scalarint&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.3","response":"134.1","end":"179.2"}, {"wait":"0.4","dns":"0.5","tcp":"1.3","firstByte":"131.8","download":"45.0","total":"179.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 310 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '3\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=scalarstr&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.0","connect":"2.2","response":"136.3","end":"184.0"}, {"wait":"0.5","dns":"0.6","tcp":"1.1","firstByte":"134.2","download":"47.7","total":"184.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 290 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=scalarcats&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.3","response":"83.6","end":"132.0"}, {"wait":"0.5","dns":"0.6","tcp":"1.2","firstByte":"81.3","download":"48.5","total":"132.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 270 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '0\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=scalariso&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"135.7","end":"178.2"}, {"wait":"0.4","dns":"0.5","tcp":"1.2","firstByte":"133.5","download":"42.5","total":"178.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 460 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vector&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"138.2","end":"179.7"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"136.0","download":"41.5","total":"179.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 817 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vectorint&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"90.0","end":"146.3"}, {"wait":"0.4","dns":"0.6","tcp":"1.1","firstByte":"87.9","download":"56.3","total":"146.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 430 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '3\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vectorstr&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.1","connect":"2.2","response":"122.7","end":"163.2"}, {"wait":"0.5","dns":"0.6","tcp":"1.0","firstByte":"120.5","download":"40.4","total":"163.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 370 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vectorcats&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"3.8","response":"136.2","end":"178.9"}, {"wait":"0.4","dns":"0.6","tcp":"2.8","firstByte":"132.4","download":"42.6","total":"178.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 310 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vectoriso&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"140.9","end":"184.1"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"138.7","download":"43.2","total":"184.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 880 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=vectormulti&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.7","lookup":"1.2","connect":"2.5","response":"87.0","end":"134.3"}, {"wait":"0.7","dns":"0.6","tcp":"1.3","firstByte":"84.5","download":"47.3","total":"134.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 1386 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (7) - (7)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=transform&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.3","response":"132.0","end":"175.4"}, {"wait":"0.4","dns":"0.7","tcp":"1.2","firstByte":"129.7","download":"43.3","total":"175.4"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 430 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=transformmulti&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"139.7","end":"179.9"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"137.5","download":"40.2","total":"179.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 430 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=spectra&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"87.2","end":"128.2"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"85.0","download":"41.0","total":"128.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 1260 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '1\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=spectranobins&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.3","response":"151.1","end":"195.7"}, {"wait":"0.4","dns":"0.6","tcp":"1.3","firstByte":"148.7","download":"44.7","total":"195.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 450 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '9\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=spectralarge&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.2","response":"154.5","end":"199.8"}, {"wait":"0.4","dns":"0.6","tcp":"1.1","firstByte":"152.3","download":"45.3","total":"199.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 18570 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (101) - (101)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset2&parameters=spectramulti&time.min=1970-01-01Z&time.max=1970-01-01T11Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"0.9","connect":"2.3","response":"133.9","end":"173.2"}, {"wait":"0.4","dns":"0.5","tcp":"1.4","firstByte":"131.6","download":"39.3","total":"173.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 2210 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 11 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-01T11 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-01T09:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (21) - (21)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset3
 👁 Visually check data and test performance
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.6","lookup":"1.2","connect":"2.3","response":"6.3","end":"6.5"}, {"wait":"0.6","dns":"0.6","tcp":"1.1","firstByte":"4.0","download":"0.2","total":"6.5"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  is.Unique(): Expect all 'name' values in objects in parameters array to be unique
  is.FormatInHeader(): /info response should not have 'format' specified.
Got: No format given.
  is.FirstParameterOK(): First parameter should (not must) be named 'Time' b/c clients will likely label first parameter as 'Time' on plot to protect against first parameter names that are not sensible.
Got: header.parameters[0].name
  is.FirstParameterOK(): First parameter must have a fill of null or it should not be specified.
Got: null
  is.TimeIncreasing(): Expect info.startDate < info.stopDate
Got: startDate = 1970-01-01T00Z; stopDate = 2016-12-31T00Z
  is.TimeIncreasing(): Expect info.sampleStartDate < info.sampleStopDate
Got: sampleStartDate = 1970-01-01T00Z; sampleStopDate = 1970-01-03T00Z
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter Time.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 24 for parameter 'Time'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'scalar'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter scalar.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter scalarint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'scalarstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'scalarcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'scalariso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter scalariso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vector'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vector.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorint'
  is.FillOK(): Expect fill value for a integer parameter to not have a decimal point
Got: fill = '-1e31' for parameter vectorint.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = string and length = 3 for parameter 'vectorstr'
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = integer and length = undefined for parameter 'vectorcats'
  is.TimeParameterUnitsOK(): Expect parameter of type isotime to have units of 'UTC'.
Got: type = 'isotime' and units = 'UTC' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = isotime and length = 20 for parameter 'vectoriso'
  is.FillOK(): Expect length of fill value for a isotime parameter to be equal to length of the string parameter
Got: fill = '0000-00-00:T00:00:00Z' for parameter vectoriso.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'vectormulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter vectormulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transform'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transform.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'transformmulti'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter transformmulti.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectra'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectra["size"][0]
Got: bins[0][centers].length = 10 and spectra["size"][0] = 10
  is.BinsCentersOrRangesOK(): Expect spectra["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectra.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectranobins'
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectranobins.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectralarge'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectralarge["size"][0]
Got: bins[0][centers].length = 100 and spectralarge["size"][0] = 100
  is.BinsCentersOrRangesOK(): Expect spectralarge["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectralarge.
  is.LengthAppropriate(): Length may only be given for types string and isotime
Got: Type = double and length = undefined for parameter 'spectramulti'
  Expect bins.length == size.length
Got: Match
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[0]["centers"].length = spectramulti["size"][0]
Got: bins[0][centers].length = 2 and spectramulti["size"][0] = 2
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][0]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.BinsCentersOrRangesOK(): is.BinsCentersOrRangesOK(): Expect bins[1]["centers"].length = spectramulti["size"][1]
Got: bins[1][centers].length = 10 and spectramulti["size"][1] = 10
  is.BinsCentersOrRangesOK(): Expect spectramulti["bins"][1]["ranges"] to have correct size and if "centers" = null, no "ranges" given.
  is.FillOK(): Expect fill value for a double parameter to not have a two or more non-zero decimal places.
Got: fill = '-1e31' for parameter spectramulti.
  is.CadenceGiven(): Expect the nominal cadence to be given (see the HAPI spec for definition). A nominal cadence is useful for clients and obviates the need for it to be inferred programatically.
Got: P1D
  is.CadenceOK(): Expect (sampleStopDate-sampleStartDate)/cadence > 10
Got: (sampleStartDate-sampleStopDate)/cadence = Infinity

http://hapi-server.org/servers/TestData2.0/hapi/info?id=dataset3&parameters=scalar
  is.RequestError(): Expect no request error for timeout of 1000 ms used when request is for metadata.
Got: Timing info [ms]: {"socket":"0.4","lookup":"2.3","connect":"3.5","response":"7.2","end":"7.4"}, {"wait":"0.4","dns":"1.9","tcp":"1.2","firstByte":"3.8","download":"0.2","total":"7.4"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.ContentType(): Expect HTTP Content-Type to match /^application\/json/
Got: application/json; charset=utf-8
  is.JSONParsable(): Expect JSON.parse(response) to not throw error
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPIJSON(): Expect body to be valid HAPI 2.0 'info' schema.
Got: JSON is valid with respect to JSON schema.
  Expect # parameters in JSON to be 2 when one non-time parameter is requested
Got: 2 parameters.
  Expect info response for one parameter to match content in response for all parameters
Got: Match.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&time.min=1970-01-01Z&time.max=1970-01-03Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.3","connect":"2.6","response":"121.5","end":"165.2"}, {"wait":"0.5","dns":"0.8","tcp":"1.3","firstByte":"118.9","download":"43.7","total":"165.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 4953 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (185) - (185)

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&time.min=1970-001Z&time.max=1970-003Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"139.0","end":"180.7"}, {"wait":"0.4","dns":"0.5","tcp":"1.1","firstByte":"137.0","download":"41.7","total":"180.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 4953 bytes.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&time.min=1970-01-01Z&time.max=1970-01-03Z&include=header
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.1","response":"87.2","end":"145.3"}, {"wait":"0.4","dns":"0.7","tcp":"1.1","firstByte":"85.0","download":"58.1","total":"145.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 8556 bytes.
  is.HeaderParsable(): Expect header lines in data stream to be JSON parsable after removal of leading #s.
  is.FormatInHeader(): Header in CSV response should have 'format: csv' specified.
Got: Format of 'csv' specified.
  is.HeaderSame(): Expect /info response to match header in data response when 'include=header' requested.
  is.FileContentSame(): Expect data response to be same as previous request given differing request URLs.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&time.min=1970-01-01T00:00:00.001Z&time.max=1970-01-01T00:00:00.002Z
  is.RequestError(): Expect no request error for timeout of 10000 ms used when a previous request for data failed or timed out.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"137.6","end":"137.8"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"135.5","download":"0.2","total":"137.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): If data part of response has zero length, prefer 'HAPI 1201' (no data in time range) in HTTP header status message (if possible). (Details.)
Got: Zero bytes and HTTP header status message of 'HAPI 1201: No data in interval'

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=Time&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"187.9","end":"231.7"}, {"wait":"0.4","dns":"0.6","tcp":"1.1","firstByte":"185.8","download":"43.8","total":"231.7"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 50 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.SizeCorrect(): Expect number of commas on first line to be 0 because only first parameter (time) requested.
Got: 0 commas

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=scalar&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"134.7","end":"178.3"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"132.6","download":"43.6","total":"178.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 72 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=scalarint&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.3","connect":"2.4","response":"86.2","end":"141.4"}, {"wait":"0.4","dns":"0.9","tcp":"1.1","firstByte":"83.8","download":"55.1","total":"141.4"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 59 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=scalarstr&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"0.9","connect":"2.1","response":"126.5","end":"169.1"}, {"wait":"0.4","dns":"0.5","tcp":"1.2","firstByte":"124.4","download":"42.6","total":"169.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 58 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=scalarcats&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"145.1","end":"186.0"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"142.9","download":"41.0","total":"186.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 54 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '1\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=scalariso&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.3","response":"141.8","end":"181.8"}, {"wait":"0.5","dns":"0.7","tcp":"1.1","firstByte":"139.5","download":"40.0","total":"181.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 92 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (2) - (2)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vector&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"91.6","end":"133.9"}, {"wait":"0.4","dns":"0.5","tcp":"1.1","firstByte":"89.5","download":"42.3","total":"133.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 135 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vectorint&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"138.7","end":"186.0"}, {"wait":"0.4","dns":"0.6","tcp":"1.1","firstByte":"136.5","download":"47.3","total":"186.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 77 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vectorstr&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"131.7","end":"177.9"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"129.5","download":"46.2","total":"177.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 74 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'F\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vectorcats&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"88.4","end":"130.0"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"86.2","download":"41.6","total":"130.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 62 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '0\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vectoriso&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.3","response":"144.4","end":"187.0"}, {"wait":"0.4","dns":"0.6","tcp":"1.3","firstByte":"142.1","download":"42.6","total":"187.0"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 176 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters 'Z\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (4) - (4)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=vectormulti&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.5","lookup":"1.2","connect":"2.5","response":"134.7","end":"175.5"}, {"wait":"0.5","dns":"0.7","tcp":"1.3","firstByte":"132.2","download":"40.8","total":"175.5"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 224 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '7\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (7) - (7)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=transform&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.1","response":"91.0","end":"147.3"}, {"wait":"0.4","dns":"0.5","tcp":"1.2","firstByte":"88.9","download":"56.3","total":"147.3"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 86 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=transformmulti&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"128.1","end":"168.5"}, {"wait":"0.4","dns":"0.6","tcp":"1.3","firstByte":"125.8","download":"40.4","total":"168.5"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 86 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '8\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (10) - (10)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=spectra&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.1","connect":"2.1","response":"139.2","end":"185.9"}, {"wait":"0.4","dns":"0.6","tcp":"1.1","firstByte":"137.0","download":"46.7","total":"185.9"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 252 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '1\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=spectranobins&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"140.8","end":"183.1"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"138.6","download":"42.3","total":"183.1"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 90 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '9\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (11) - (11)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=spectralarge&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"0.9","connect":"2.0","response":"85.7","end":"129.2"}, {"wait":"0.4","dns":"0.5","tcp":"1.1","firstByte":"83.6","download":"43.5","total":"129.2"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 3714 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (101) - (101)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

http://hapi-server.org/servers/TestData2.0/hapi/data?id=dataset3&parameters=spectramulti&time.min=1970-01-01Z&time.max=1970-01-03Z
   Direct link for following plot.. Please report any plotting issues at the Python hapiplot GitHub page.

  is.RequestError(): Expect no request error for timeout of 5000 ms used when time.min/max not given to validator but sampleStart/Stop is given in /info response.
Got: Timing info [ms]: {"socket":"0.4","lookup":"1.0","connect":"2.2","response":"143.2","end":"184.8"}, {"wait":"0.4","dns":"0.6","tcp":"1.2","firstByte":"141.0","download":"41.6","total":"184.8"}
  is.HTTP200(): Expect HTTP status code to be 200
  is.FileStructureOK(): Expect nonzero length for data part of response.
Got: 442 bytes.
  is.CompressionAvailable(): Expect HTTP Accept-Encoding to match /gzip/.
  is.ContentType(): Expect HTTP Content-Type to match /^text\/csv/
Got: text/csv; charset=utf-8
  is.CORSAvailable(): To enable AJAX clients, want CORS HTTP Headers: Access-Control-Allow-Origin = '*' and, if given, Access-Control-Allow-Methods to include 'GET'
Got: Access-Control-Allow-Origin = '*' and, Access-Control-Allow-Methods 'GET'
  is.FileStructureOK(): Expect first character of CSV response to be an integer.
Got: 1
  is.FileStructureOK(): Expect last character of CSV response be a newline.
  is.FileStructureOK(): Expect last two characters of CSV response to not be newlines.
Got: The characters '2\n'
  is.FileStructureOK(): Expect at least one newline in CSV response.
Got: 3 newlines
  is.CorrectLength(): Expect (trimmed length of Time string parameter in CSV) - (parameters.Time.length) = 0.
Got: (24) - (24)
  is.HAPIVersionSame(): Expect HAPI version to match that from last requests where found.
Got: Current: '2.0' and Last: '2.0'
  is.HAPIVersion(): Expect HAPI version in JSON response to be one of ["1.1","2.0","2.1","3.0","3.1"]
Got: 2.0
  is.HAPITime(): Expect time column to contain valid HAPI 2.0 HAPITime strings
  is.TimeIncreasing(): Expect
  is.TimeInBounds(): Expect first time in CSV ≥ 1970-01-01 and last time in CSV < 1970-01-03 (only checks to ms)
Got: First time = 1970-01-01T00:00:00.000; LastTime = 1970-01-02T00:00:00.000
  is.FileLineOK(): Expect (# of columns in CSV) - (# computed from length and size metadata) = 0.
Got: (21) - (21)
  is.FileContentSame(): Expect content from one parameter request to match content from all parameter request.

End of validation tests. Summary: Pass: 1282; Warns: 1; Fails: 0. Warnings and failures repeated below.


http://hapi-server.org/servers/TestData2.0/hapi/catalog
is.TooLong(): Prefer titles in objects to be ≤ 40 characters
Got: catalog has 2 datasets with a title > 40 characters:

id: 'dataset2'; title: 'Dataset w/valid HAPI 2.0 - Same as dataset1 but at PT1H resolution'
id: 'dataset3'; title: 'Dataset w/valid HAPI 2.0 - Same as dataset1 but at P1D resolution'

Use the following links for visual checks of data and stress testing server.

https://hapi-server.org/plot?server=http://hapi-server.org/servers/TestData2.0/hapi&id=dataset1&format=gallery
https://hapi-server.org/plot?server=http://hapi-server.org/servers/TestData2.0/hapi&id=dataset2&format=gallery
https://hapi-server.org/plot?server=http://hapi-server.org/servers/TestData2.0/hapi&id=dataset3&format=gallery