experimental

package
v0.170.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2022 License: MIT Imports: 26 Imported by: 1

Documentation

Index

Constants

View Source
const ExperimentalGroupKind = "experimental-group"
View Source
const PreviewKind = "experimental.preview"
View Source
const SetKind = "setExperimental"
View Source
const ToKind = "experimental-to"

Variables

View Source
var FluxTestPackages = []*ast.Package{&ast.Package{
	BaseNode: ast.BaseNode{
		Comments: nil,
		Errors:   nil,
		Loc:      nil,
	},
	Files: []*ast.File{&ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   188,
				},
				File:   "alignTime_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-22T00:00:00Z,76369,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-23T00:00:00Z,77016,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,77234,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,77749,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,78159,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,78598,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,78927,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,79355,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,79929,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,80134,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,80261,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,80380,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,80497,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,80667,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,80768,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,80814,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,80859,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,80879,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,80908,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,80932,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,80954,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,80973,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,80995,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,81020,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,81130,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,81163,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,81238,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,81337,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,81416,total_cases,covid-19,China\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,132,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,229,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,322,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,400,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,650,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,888,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,1128,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,1689,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,1835,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,2502,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,3089,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,3858,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,4636,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,5883,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,7375,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,9172,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,10149,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,12462,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,15113,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,17660,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,17750,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,23980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,27980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,31506,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,35713,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,41035,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,47021,total_cases,covid-19,Italy\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,103,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,125,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,159,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,233,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,338,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,433,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,554,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,754,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,1025,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,1312,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,1663,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,2174,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,2951,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,3774,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,4661,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,6427,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,9415,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,14250,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,19624,total_cases,covid-19,United States\n\"\noutData =\n    \"\n#group,false,false,true,true,true,true,false,false,true\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string\n#default,_result,,,,,,,,\n,result,table,_field,_measurement,_start,_stop,_time,_value,country\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,76369,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,77016,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,77234,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,77749,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,78159,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,78598,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,78927,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,79355,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,79929,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,80134,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,80261,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,80380,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,80497,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,80667,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,80768,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,80814,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,80859,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,80879,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,80908,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,80932,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,80954,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,80973,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,80995,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,81020,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,81130,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,81163,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,81238,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-28T00:00:00Z,81337,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-29T00:00:00Z,81416,China\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,132,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,229,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,322,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,400,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,650,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,888,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,1128,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,1689,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1835,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,2502,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,3089,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,3858,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,4636,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,5883,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,7375,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,9172,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,10149,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,12462,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,15113,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,17660,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,17750,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,23980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,27980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,31506,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,35713,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,41035,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,47021,Italy\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,103,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,125,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,159,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,233,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,338,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,433,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,554,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,754,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1025,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,1312,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,1663,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,2174,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,2951,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,3774,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,4661,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,6427,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,9415,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,14250,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,19624,United States\n\"\nt_alignTime = (table=<-) =>\n    table\n        |> range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)\n        |> experimental.alignTime(alignTo: 2020-01-01T00:00:00Z)\n\ntest _set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "alignTime_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "alignTime_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "alignTime_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "alignTime_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "alignTime_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   100,
					},
					File:   "alignTime_test.flux",
					Source: "inData =\n    \"\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-22T00:00:00Z,76369,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-23T00:00:00Z,77016,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,77234,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,77749,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,78159,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,78598,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,78927,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,79355,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,79929,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,80134,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,80261,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,80380,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,80497,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,80667,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,80768,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,80814,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,80859,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,80879,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,80908,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,80932,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,80954,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,80973,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,80995,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,81020,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,81130,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,81163,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,81238,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,81337,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,81416,total_cases,covid-19,China\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,132,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,229,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,322,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,400,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,650,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,888,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,1128,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,1689,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,1835,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,2502,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,3089,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,3858,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,4636,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,5883,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,7375,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,9172,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,10149,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,12462,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,15113,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,17660,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,17750,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,23980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,27980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,31506,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,35713,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,41035,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,47021,total_cases,covid-19,Italy\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,103,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,125,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,159,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,233,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,338,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,433,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,554,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,754,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,1025,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,1312,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,1663,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,2174,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,2951,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,3774,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,4661,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,6427,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,9415,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,14250,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,19624,total_cases,covid-19,United States\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "alignTime_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   100,
						},
						File:   "alignTime_test.flux",
						Source: "\"\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-22T00:00:00Z,76369,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-23T00:00:00Z,77016,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,77234,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,77749,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,78159,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,78598,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,78927,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,79355,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,79929,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,80134,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,80261,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,80380,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,80497,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,80667,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,80768,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,80814,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,80859,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,80879,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,80908,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,80932,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,80954,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,80973,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,80995,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,81020,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,81130,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,81163,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,81238,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,81337,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,81416,total_cases,covid-19,China\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,132,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,229,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,322,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,400,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,650,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,888,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,1128,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,1689,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,1835,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,2502,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,3089,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,3858,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,4636,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,5883,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,7375,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,9172,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,10149,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,12462,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,15113,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,17660,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,17750,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,23980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,27980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,31506,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,35713,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,41035,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,47021,total_cases,covid-19,Italy\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,103,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,125,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,159,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,233,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,338,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,433,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,554,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,754,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,1025,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,1312,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,1663,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,2174,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,2951,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,3774,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,4661,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,6427,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,9415,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,14250,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,19624,total_cases,covid-19,United States\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-22T00:00:00Z,76369,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-23T00:00:00Z,77016,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,77234,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,77749,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,78159,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,78598,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,78927,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,79355,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,79929,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,80134,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,80261,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,80380,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,80497,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,80667,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,80768,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,80814,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,80859,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,80879,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,80908,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,80932,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,80954,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,80973,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,80995,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,81020,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,81130,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,81163,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,81238,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,81337,total_cases,covid-19,China\n,,0,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,81416,total_cases,covid-19,China\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-24T00:00:00Z,132,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-25T00:00:00Z,229,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-26T00:00:00Z,322,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-27T00:00:00Z,400,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-28T00:00:00Z,650,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-02-29T00:00:00Z,888,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-01T00:00:00Z,1128,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-02T00:00:00Z,1689,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,1835,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,2502,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,3089,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,3858,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,4636,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,5883,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,7375,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,9172,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,10149,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,12462,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,15113,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,17660,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,17750,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,23980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,27980,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,31506,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,35713,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,41035,total_cases,covid-19,Italy\n,,1,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,47021,total_cases,covid-19,Italy\n\n#group,false,false,true,true,false,false,true,true,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_value,_field,_measurement,country\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-03T00:00:00Z,103,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-04T00:00:00Z,125,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-05T00:00:00Z,159,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-06T00:00:00Z,233,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-07T00:00:00Z,338,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-08T00:00:00Z,433,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-09T00:00:00Z,554,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-10T00:00:00Z,754,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-11T00:00:00Z,1025,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-12T00:00:00Z,1312,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-13T00:00:00Z,1663,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-14T00:00:00Z,2174,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-15T00:00:00Z,2951,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-16T00:00:00Z,3774,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-17T00:00:00Z,4661,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-18T00:00:00Z,6427,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-19T00:00:00Z,9415,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-20T00:00:00Z,14250,total_cases,covid-19,United States\n,,2,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-03-21T00:00:00Z,19624,total_cases,covid-19,United States\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   182,
					},
					File:   "alignTime_test.flux",
					Source: "outData =\n    \"\n#group,false,false,true,true,true,true,false,false,true\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string\n#default,_result,,,,,,,,\n,result,table,_field,_measurement,_start,_stop,_time,_value,country\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,76369,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,77016,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,77234,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,77749,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,78159,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,78598,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,78927,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,79355,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,79929,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,80134,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,80261,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,80380,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,80497,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,80667,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,80768,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,80814,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,80859,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,80879,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,80908,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,80932,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,80954,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,80973,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,80995,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,81020,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,81130,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,81163,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,81238,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-28T00:00:00Z,81337,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-29T00:00:00Z,81416,China\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,132,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,229,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,322,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,400,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,650,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,888,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,1128,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,1689,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1835,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,2502,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,3089,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,3858,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,4636,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,5883,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,7375,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,9172,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,10149,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,12462,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,15113,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,17660,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,17750,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,23980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,27980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,31506,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,35713,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,41035,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,47021,Italy\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,103,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,125,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,159,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,233,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,338,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,433,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,554,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,754,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1025,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,1312,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,1663,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,2174,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,2951,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,3774,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,4661,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,6427,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,9415,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,14250,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,19624,United States\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   101,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   101,
						},
						File:   "alignTime_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   101,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   182,
						},
						File:   "alignTime_test.flux",
						Source: "\"\n#group,false,false,true,true,true,true,false,false,true\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string\n#default,_result,,,,,,,,\n,result,table,_field,_measurement,_start,_stop,_time,_value,country\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,76369,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,77016,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,77234,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,77749,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,78159,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,78598,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,78927,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,79355,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,79929,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,80134,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,80261,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,80380,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,80497,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,80667,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,80768,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,80814,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,80859,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,80879,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,80908,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,80932,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,80954,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,80973,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,80995,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,81020,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,81130,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,81163,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,81238,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-28T00:00:00Z,81337,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-29T00:00:00Z,81416,China\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,132,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,229,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,322,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,400,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,650,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,888,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,1128,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,1689,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1835,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,2502,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,3089,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,3858,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,4636,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,5883,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,7375,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,9172,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,10149,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,12462,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,15113,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,17660,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,17750,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,23980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,27980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,31506,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,35713,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,41035,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,47021,Italy\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,103,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,125,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,159,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,233,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,338,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,433,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,554,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,754,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1025,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,1312,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,1663,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,2174,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,2951,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,3774,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,4661,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,6427,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,9415,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,14250,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,19624,United States\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   102,
						},
					},
				},
				Value: "\n#group,false,false,true,true,true,true,false,false,true\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string\n#default,_result,,,,,,,,\n,result,table,_field,_measurement,_start,_stop,_time,_value,country\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,76369,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,77016,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,77234,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,77749,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,78159,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,78598,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,78927,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,79355,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,79929,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,80134,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,80261,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,80380,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,80497,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,80667,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,80768,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,80814,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,80859,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,80879,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,80908,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,80932,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,80954,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,80973,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,80995,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,81020,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,81130,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,81163,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,81238,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-28T00:00:00Z,81337,China\n,,0,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-29T00:00:00Z,81416,China\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,132,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,229,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,322,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,400,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,650,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,888,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,1128,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,1689,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1835,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,2502,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,3089,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,3858,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,4636,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,5883,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,7375,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,9172,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,10149,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,12462,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,15113,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-20T00:00:00Z,17660,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-21T00:00:00Z,17750,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-22T00:00:00Z,23980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-23T00:00:00Z,27980,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-24T00:00:00Z,31506,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-25T00:00:00Z,35713,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-26T00:00:00Z,41035,Italy\n,,1,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-27T00:00:00Z,47021,Italy\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-01T00:00:00Z,103,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-02T00:00:00Z,125,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-03T00:00:00Z,159,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-04T00:00:00Z,233,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-05T00:00:00Z,338,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-06T00:00:00Z,433,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-07T00:00:00Z,554,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-08T00:00:00Z,754,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-09T00:00:00Z,1025,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-10T00:00:00Z,1312,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-11T00:00:00Z,1663,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-12T00:00:00Z,2174,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-13T00:00:00Z,2951,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-14T00:00:00Z,3774,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-15T00:00:00Z,4661,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-16T00:00:00Z,6427,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-17T00:00:00Z,9415,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-18T00:00:00Z,14250,United States\n,,2,total_cases,covid-19,2020-02-22T00:00:00Z,2020-03-22T00:00:00Z,2020-01-19T00:00:00Z,19624,United States\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 65,
						Line:   186,
					},
					File:   "alignTime_test.flux",
					Source: "t_alignTime = (table=<-) =>\n    table\n        |> range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)\n        |> experimental.alignTime(alignTo: 2020-01-01T00:00:00Z)",
					Start: ast.Position{
						Column: 1,
						Line:   183,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 12,
							Line:   183,
						},
						File:   "alignTime_test.flux",
						Source: "t_alignTime",
						Start: ast.Position{
							Column: 1,
							Line:   183,
						},
					},
				},
				Name: "t_alignTime",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 65,
							Line:   186,
						},
						File:   "alignTime_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)\n        |> experimental.alignTime(alignTo: 2020-01-01T00:00:00Z)",
						Start: ast.Position{
							Column: 15,
							Line:   183,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   184,
									},
									File:   "alignTime_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   184,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 74,
									Line:   185,
								},
								File:   "alignTime_test.flux",
								Source: "table\n        |> range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   184,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   185,
										},
										File:   "alignTime_test.flux",
										Source: "start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   185,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   185,
											},
											File:   "alignTime_test.flux",
											Source: "start: 2020-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   185,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   185,
												},
												File:   "alignTime_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   185,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   185,
												},
												File:   "alignTime_test.flux",
												Source: "2020-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   185,
												},
											},
										},
										Value: parser.MustParseTime("2020-01-01T00:00:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   185,
											},
											File:   "alignTime_test.flux",
											Source: "stop: 2020-04-01T00:00:00Z",
											Start: ast.Position{
												Column: 47,
												Line:   185,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   185,
												},
												File:   "alignTime_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 47,
													Line:   185,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 73,
													Line:   185,
												},
												File:   "alignTime_test.flux",
												Source: "2020-04-01T00:00:00Z",
												Start: ast.Position{
													Column: 53,
													Line:   185,
												},
											},
										},
										Value: parser.MustParseTime("2020-04-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 74,
										Line:   185,
									},
									File:   "alignTime_test.flux",
									Source: "range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   185,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   185,
										},
										File:   "alignTime_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   185,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 65,
								Line:   186,
							},
							File:   "alignTime_test.flux",
							Source: "table\n        |> range(start: 2020-01-01T00:00:00Z, stop: 2020-04-01T00:00:00Z)\n        |> experimental.alignTime(alignTo: 2020-01-01T00:00:00Z)",
							Start: ast.Position{
								Column: 5,
								Line:   184,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 64,
										Line:   186,
									},
									File:   "alignTime_test.flux",
									Source: "alignTo: 2020-01-01T00:00:00Z",
									Start: ast.Position{
										Column: 35,
										Line:   186,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 64,
											Line:   186,
										},
										File:   "alignTime_test.flux",
										Source: "alignTo: 2020-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 35,
											Line:   186,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   186,
											},
											File:   "alignTime_test.flux",
											Source: "alignTo",
											Start: ast.Position{
												Column: 35,
												Line:   186,
											},
										},
									},
									Name: "alignTo",
								},
								Separator: nil,
								Value: &ast.DateTimeLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 64,
												Line:   186,
											},
											File:   "alignTime_test.flux",
											Source: "2020-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 44,
												Line:   186,
											},
										},
									},
									Value: parser.MustParseTime("2020-01-01T00:00:00Z"),
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 65,
									Line:   186,
								},
								File:   "alignTime_test.flux",
								Source: "experimental.alignTime(alignTo: 2020-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 12,
									Line:   186,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   186,
									},
									File:   "alignTime_test.flux",
									Source: "experimental.alignTime",
									Start: ast.Position{
										Column: 12,
										Line:   186,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   186,
										},
										File:   "alignTime_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   186,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 34,
											Line:   186,
										},
										File:   "alignTime_test.flux",
										Source: "alignTime",
										Start: ast.Position{
											Column: 25,
											Line:   186,
										},
									},
								},
								Name: "alignTime",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   183,
							},
							File:   "alignTime_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 16,
								Line:   183,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   183,
								},
								File:   "alignTime_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 16,
									Line:   183,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   183,
							},
							File:   "alignTime_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   183,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 116,
							Line:   188,
						},
						File:   "alignTime_test.flux",
						Source: "_set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime})",
						Start: ast.Position{
							Column: 6,
							Line:   188,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 10,
								Line:   188,
							},
							File:   "alignTime_test.flux",
							Source: "_set",
							Start: ast.Position{
								Column: 6,
								Line:   188,
							},
						},
					},
					Name: "_set",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   188,
							},
							File:   "alignTime_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime})",
							Start: ast.Position{
								Column: 13,
								Line:   188,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 116,
									Line:   188,
								},
								File:   "alignTime_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime})",
								Start: ast.Position{
									Column: 19,
									Line:   188,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   188,
									},
									File:   "alignTime_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime}",
									Start: ast.Position{
										Column: 20,
										Line:   188,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   188,
										},
										File:   "alignTime_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 21,
											Line:   188,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 21,
												Line:   188,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   188,
												},
												File:   "alignTime_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 48,
													Line:   188,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 48,
														Line:   188,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   188,
														},
														File:   "alignTime_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 48,
															Line:   188,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   188,
														},
														File:   "alignTime_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 53,
															Line:   188,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 28,
												Line:   188,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   188,
												},
												File:   "alignTime_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 28,
													Line:   188,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 28,
														Line:   188,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 36,
														Line:   188,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 97,
											Line:   188,
										},
										File:   "alignTime_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 62,
											Line:   188,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 62,
												Line:   188,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   188,
												},
												File:   "alignTime_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 84,
													Line:   188,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 84,
														Line:   188,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 87,
															Line:   188,
														},
														File:   "alignTime_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 84,
															Line:   188,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   188,
														},
														File:   "alignTime_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 89,
															Line:   188,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 97,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 68,
												Line:   188,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 83,
													Line:   188,
												},
												File:   "alignTime_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 68,
													Line:   188,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 75,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 68,
														Line:   188,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   188,
													},
													File:   "alignTime_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 76,
														Line:   188,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   188,
										},
										File:   "alignTime_test.flux",
										Source: "fn: t_alignTime",
										Start: ast.Position{
											Column: 99,
											Line:   188,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 99,
												Line:   188,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   188,
											},
											File:   "alignTime_test.flux",
											Source: "t_alignTime",
											Start: ast.Position{
												Column: 103,
												Line:   188,
											},
										},
									},
									Name: "t_alignTime",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 116,
						Line:   188,
					},
					File:   "alignTime_test.flux",
					Source: "test _set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_alignTime})",
					Start: ast.Position{
						Column: 1,
						Line:   188,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "alignTime_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "alignTime_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "alignTime_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "alignTime_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "alignTime_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "alignTime_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "alignTime_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 114,
					Line:   83,
				},
				File:   "count_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,iZquGj,Au1iY,2018-12-18T20:52:33Z,7\n,,0,iZquGj,Au1iY,2018-12-18T20:52:43Z,38\n,,0,iZquGj,Au1iY,2018-12-18T20:52:53Z,79\n,,0,iZquGj,Au1iY,2018-12-18T20:53:03Z,51\n,,0,iZquGj,Au1iY,2018-12-18T20:53:13Z,94\n,,0,iZquGj,Au1iY,2018-12-18T20:53:23Z,85\n\n#datatype,string,long,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,iZquGj,HSbYC,2018-12-18T20:52:33Z,A9JcEV\n,,1,iZquGj,HSbYC,2018-12-18T20:52:43Z,iNI7Bqy\n,,1,iZquGj,HSbYC,2018-12-18T20:52:53Z,TFIS\n,,1,iZquGj,HSbYC,2018-12-18T20:53:03Z,q6h9yU\n,,1,iZquGj,HSbYC,2018-12-18T20:53:13Z,X8Ks\n,,1,iZquGj,HSbYC,2018-12-18T20:53:23Z,aOMgU\n\n#datatype,string,long,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,iZquGj,J1u,2018-12-18T20:52:33Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:43Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:53Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:03Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:13Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:23Z,false\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:33Z,-61.68790887989735\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:43Z,-6.3173755351186465\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:53Z,-26.049728557657513\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:03Z,114.285955884979\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:13Z,16.140262630578995\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:23Z,29.50336437998469\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:33Z,-66\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:43Z,59\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:53Z,64\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:03Z,84\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:13Z,68\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:23Z,49\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,Au1iY,6\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,HSbYC,6\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,J1u,6\n,,3,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ei77f8T,6\n,,4,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ucyoZ,6\n\"\nt_count = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.count()\n\ntest _count = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "count_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "count_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "count_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "count_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "count_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   65,
					},
					File:   "count_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,iZquGj,Au1iY,2018-12-18T20:52:33Z,7\n,,0,iZquGj,Au1iY,2018-12-18T20:52:43Z,38\n,,0,iZquGj,Au1iY,2018-12-18T20:52:53Z,79\n,,0,iZquGj,Au1iY,2018-12-18T20:53:03Z,51\n,,0,iZquGj,Au1iY,2018-12-18T20:53:13Z,94\n,,0,iZquGj,Au1iY,2018-12-18T20:53:23Z,85\n\n#datatype,string,long,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,iZquGj,HSbYC,2018-12-18T20:52:33Z,A9JcEV\n,,1,iZquGj,HSbYC,2018-12-18T20:52:43Z,iNI7Bqy\n,,1,iZquGj,HSbYC,2018-12-18T20:52:53Z,TFIS\n,,1,iZquGj,HSbYC,2018-12-18T20:53:03Z,q6h9yU\n,,1,iZquGj,HSbYC,2018-12-18T20:53:13Z,X8Ks\n,,1,iZquGj,HSbYC,2018-12-18T20:53:23Z,aOMgU\n\n#datatype,string,long,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,iZquGj,J1u,2018-12-18T20:52:33Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:43Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:53Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:03Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:13Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:23Z,false\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:33Z,-61.68790887989735\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:43Z,-6.3173755351186465\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:53Z,-26.049728557657513\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:03Z,114.285955884979\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:13Z,16.140262630578995\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:23Z,29.50336437998469\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:33Z,-66\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:43Z,59\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:53Z,64\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:03Z,84\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:13Z,68\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:23Z,49\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "count_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   65,
						},
						File:   "count_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,iZquGj,Au1iY,2018-12-18T20:52:33Z,7\n,,0,iZquGj,Au1iY,2018-12-18T20:52:43Z,38\n,,0,iZquGj,Au1iY,2018-12-18T20:52:53Z,79\n,,0,iZquGj,Au1iY,2018-12-18T20:53:03Z,51\n,,0,iZquGj,Au1iY,2018-12-18T20:53:13Z,94\n,,0,iZquGj,Au1iY,2018-12-18T20:53:23Z,85\n\n#datatype,string,long,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,iZquGj,HSbYC,2018-12-18T20:52:33Z,A9JcEV\n,,1,iZquGj,HSbYC,2018-12-18T20:52:43Z,iNI7Bqy\n,,1,iZquGj,HSbYC,2018-12-18T20:52:53Z,TFIS\n,,1,iZquGj,HSbYC,2018-12-18T20:53:03Z,q6h9yU\n,,1,iZquGj,HSbYC,2018-12-18T20:53:13Z,X8Ks\n,,1,iZquGj,HSbYC,2018-12-18T20:53:23Z,aOMgU\n\n#datatype,string,long,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,iZquGj,J1u,2018-12-18T20:52:33Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:43Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:53Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:03Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:13Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:23Z,false\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:33Z,-61.68790887989735\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:43Z,-6.3173755351186465\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:53Z,-26.049728557657513\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:03Z,114.285955884979\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:13Z,16.140262630578995\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:23Z,29.50336437998469\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:33Z,-66\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:43Z,59\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:53Z,64\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:03Z,84\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:13Z,68\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:23Z,49\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,iZquGj,Au1iY,2018-12-18T20:52:33Z,7\n,,0,iZquGj,Au1iY,2018-12-18T20:52:43Z,38\n,,0,iZquGj,Au1iY,2018-12-18T20:52:53Z,79\n,,0,iZquGj,Au1iY,2018-12-18T20:53:03Z,51\n,,0,iZquGj,Au1iY,2018-12-18T20:53:13Z,94\n,,0,iZquGj,Au1iY,2018-12-18T20:53:23Z,85\n\n#datatype,string,long,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,iZquGj,HSbYC,2018-12-18T20:52:33Z,A9JcEV\n,,1,iZquGj,HSbYC,2018-12-18T20:52:43Z,iNI7Bqy\n,,1,iZquGj,HSbYC,2018-12-18T20:52:53Z,TFIS\n,,1,iZquGj,HSbYC,2018-12-18T20:53:03Z,q6h9yU\n,,1,iZquGj,HSbYC,2018-12-18T20:53:13Z,X8Ks\n,,1,iZquGj,HSbYC,2018-12-18T20:53:23Z,aOMgU\n\n#datatype,string,long,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,iZquGj,J1u,2018-12-18T20:52:33Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:43Z,false\n,,2,iZquGj,J1u,2018-12-18T20:52:53Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:03Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:13Z,true\n,,2,iZquGj,J1u,2018-12-18T20:53:23Z,false\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:33Z,-61.68790887989735\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:43Z,-6.3173755351186465\n,,3,iZquGj,ei77f8T,2018-12-18T20:52:53Z,-26.049728557657513\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:03Z,114.285955884979\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:13Z,16.140262630578995\n,,3,iZquGj,ei77f8T,2018-12-18T20:53:23Z,29.50336437998469\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:33Z,-66\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:43Z,59\n,,4,iZquGj,ucyoZ,2018-12-18T20:52:53Z,64\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:03Z,84\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:13Z,68\n,,4,iZquGj,ucyoZ,2018-12-18T20:53:23Z,49\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   77,
					},
					File:   "count_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,Au1iY,6\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,HSbYC,6\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,J1u,6\n,,3,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ei77f8T,6\n,,4,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ucyoZ,6\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   66,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   66,
						},
						File:   "count_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   66,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   77,
						},
						File:   "count_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,Au1iY,6\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,HSbYC,6\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,J1u,6\n,,3,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ei77f8T,6\n,,4,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ucyoZ,6\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   67,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,Au1iY,6\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,HSbYC,6\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,J1u,6\n,,3,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ei77f8T,6\n,,4,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,iZquGj,ucyoZ,6\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 32,
						Line:   81,
					},
					File:   "count_test.flux",
					Source: "t_count = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.count()",
					Start: ast.Position{
						Column: 1,
						Line:   78,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   78,
						},
						File:   "count_test.flux",
						Source: "t_count",
						Start: ast.Position{
							Column: 1,
							Line:   78,
						},
					},
				},
				Name: "t_count",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 32,
							Line:   81,
						},
						File:   "count_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.count()",
						Start: ast.Position{
							Column: 11,
							Line:   78,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   79,
									},
									File:   "count_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   79,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   80,
								},
								File:   "count_test.flux",
								Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   79,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   80,
										},
										File:   "count_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   80,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   80,
											},
											File:   "count_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   80,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   80,
												},
												File:   "count_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   80,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   80,
												},
												File:   "count_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   80,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   80,
									},
									File:   "count_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   80,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   80,
										},
										File:   "count_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   80,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 32,
								Line:   81,
							},
							File:   "count_test.flux",
							Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.count()",
							Start: ast.Position{
								Column: 5,
								Line:   79,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   81,
								},
								File:   "count_test.flux",
								Source: "experimental.count()",
								Start: ast.Position{
									Column: 12,
									Line:   81,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 30,
										Line:   81,
									},
									File:   "count_test.flux",
									Source: "experimental.count",
									Start: ast.Position{
										Column: 12,
										Line:   81,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   81,
										},
										File:   "count_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   81,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 30,
											Line:   81,
										},
										File:   "count_test.flux",
										Source: "count",
										Start: ast.Position{
											Column: 25,
											Line:   81,
										},
									},
								},
								Name: "count",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   78,
							},
							File:   "count_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 12,
								Line:   78,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 17,
									Line:   78,
								},
								File:   "count_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 12,
									Line:   78,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   78,
							},
							File:   "count_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 18,
								Line:   78,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 114,
							Line:   83,
						},
						File:   "count_test.flux",
						Source: "_count = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count})",
						Start: ast.Position{
							Column: 6,
							Line:   83,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 12,
								Line:   83,
							},
							File:   "count_test.flux",
							Source: "_count",
							Start: ast.Position{
								Column: 6,
								Line:   83,
							},
						},
					},
					Name: "_count",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 114,
								Line:   83,
							},
							File:   "count_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count})",
							Start: ast.Position{
								Column: 15,
								Line:   83,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 114,
									Line:   83,
								},
								File:   "count_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count})",
								Start: ast.Position{
									Column: 21,
									Line:   83,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 113,
										Line:   83,
									},
									File:   "count_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count}",
									Start: ast.Position{
										Column: 22,
										Line:   83,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   83,
										},
										File:   "count_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 23,
											Line:   83,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 23,
												Line:   83,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 61,
													Line:   83,
												},
												File:   "count_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 50,
													Line:   83,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 50,
														Line:   83,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 53,
															Line:   83,
														},
														File:   "count_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 50,
															Line:   83,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 61,
															Line:   83,
														},
														File:   "count_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 55,
															Line:   83,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 30,
												Line:   83,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   83,
												},
												File:   "count_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 30,
													Line:   83,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 37,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 30,
														Line:   83,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 38,
														Line:   83,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 99,
											Line:   83,
										},
										File:   "count_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 64,
											Line:   83,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 64,
												Line:   83,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 98,
													Line:   83,
												},
												File:   "count_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 86,
													Line:   83,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 98,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 86,
														Line:   83,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 89,
															Line:   83,
														},
														File:   "count_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 86,
															Line:   83,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 98,
															Line:   83,
														},
														File:   "count_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 91,
															Line:   83,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 99,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 70,
												Line:   83,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 85,
													Line:   83,
												},
												File:   "count_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 70,
													Line:   83,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 77,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 70,
														Line:   83,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 85,
														Line:   83,
													},
													File:   "count_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 78,
														Line:   83,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 112,
											Line:   83,
										},
										File:   "count_test.flux",
										Source: "fn: t_count",
										Start: ast.Position{
											Column: 101,
											Line:   83,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 103,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 101,
												Line:   83,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 112,
												Line:   83,
											},
											File:   "count_test.flux",
											Source: "t_count",
											Start: ast.Position{
												Column: 105,
												Line:   83,
											},
										},
									},
									Name: "t_count",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 114,
						Line:   83,
					},
					File:   "count_test.flux",
					Source: "test _count = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_count})",
					Start: ast.Position{
						Column: 1,
						Line:   83,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "count_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "count_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "count_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "count_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "count_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "count_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "count_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   48,
				},
				File:   "distinct_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,false,false,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,0,,,,,,\n,result,table,_start,_stop,host,name,_value\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204688\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204894\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205102\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205226\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205499\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205755\n,,1,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk2,648\n\"\nt_distinct = (table=<-) =>\n    table\n        |> range(start: 2018-05-20T19:53:26Z)\n        |> experimental.distinct()\n        |> yield(name: \"0\")\n\ntest _distinct = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "distinct_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "distinct_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "distinct_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "distinct_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "distinct_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   27,
					},
					File:   "distinct_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,false,false,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "distinct_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   27,
						},
						File:   "distinct_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,false,false,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,false,false,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   41,
					},
					File:   "distinct_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,0,,,,,,\n,result,table,_start,_stop,host,name,_value\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204688\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204894\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205102\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205226\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205499\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205755\n,,1,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk2,648\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   28,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   28,
						},
						File:   "distinct_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   28,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   41,
						},
						File:   "distinct_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,0,,,,,,\n,result,table,_start,_stop,host,name,_value\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204688\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204894\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205102\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205226\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205499\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205755\n,,1,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk2,648\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   29,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,0,,,,,,\n,result,table,_start,_stop,host,name,_value\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204688\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15204894\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205102\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205226\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205499\n,,0,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk0,15205755\n,,1,2018-05-20T19:53:26Z,2030-01-01T00:00:00Z,host.local,disk2,648\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 28,
						Line:   46,
					},
					File:   "distinct_test.flux",
					Source: "t_distinct = (table=<-) =>\n    table\n        |> range(start: 2018-05-20T19:53:26Z)\n        |> experimental.distinct()\n        |> yield(name: \"0\")",
					Start: ast.Position{
						Column: 1,
						Line:   42,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   42,
						},
						File:   "distinct_test.flux",
						Source: "t_distinct",
						Start: ast.Position{
							Column: 1,
							Line:   42,
						},
					},
				},
				Name: "t_distinct",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 28,
							Line:   46,
						},
						File:   "distinct_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-20T19:53:26Z)\n        |> experimental.distinct()\n        |> yield(name: \"0\")",
						Start: ast.Position{
							Column: 14,
							Line:   42,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   43,
										},
										File:   "distinct_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   43,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   44,
									},
									File:   "distinct_test.flux",
									Source: "table\n        |> range(start: 2018-05-20T19:53:26Z)",
									Start: ast.Position{
										Column: 5,
										Line:   43,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   44,
											},
											File:   "distinct_test.flux",
											Source: "start: 2018-05-20T19:53:26Z",
											Start: ast.Position{
												Column: 18,
												Line:   44,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   44,
												},
												File:   "distinct_test.flux",
												Source: "start: 2018-05-20T19:53:26Z",
												Start: ast.Position{
													Column: 18,
													Line:   44,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   44,
													},
													File:   "distinct_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   44,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   44,
													},
													File:   "distinct_test.flux",
													Source: "2018-05-20T19:53:26Z",
													Start: ast.Position{
														Column: 25,
														Line:   44,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-20T19:53:26Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   44,
										},
										File:   "distinct_test.flux",
										Source: "range(start: 2018-05-20T19:53:26Z)",
										Start: ast.Position{
											Column: 12,
											Line:   44,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   44,
											},
											File:   "distinct_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   44,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 35,
									Line:   45,
								},
								File:   "distinct_test.flux",
								Source: "table\n        |> range(start: 2018-05-20T19:53:26Z)\n        |> experimental.distinct()",
								Start: ast.Position{
									Column: 5,
									Line:   43,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 35,
										Line:   45,
									},
									File:   "distinct_test.flux",
									Source: "experimental.distinct()",
									Start: ast.Position{
										Column: 12,
										Line:   45,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   45,
										},
										File:   "distinct_test.flux",
										Source: "experimental.distinct",
										Start: ast.Position{
											Column: 12,
											Line:   45,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   45,
											},
											File:   "distinct_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   45,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   45,
											},
											File:   "distinct_test.flux",
											Source: "distinct",
											Start: ast.Position{
												Column: 25,
												Line:   45,
											},
										},
									},
									Name: "distinct",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 28,
								Line:   46,
							},
							File:   "distinct_test.flux",
							Source: "table\n        |> range(start: 2018-05-20T19:53:26Z)\n        |> experimental.distinct()\n        |> yield(name: \"0\")",
							Start: ast.Position{
								Column: 5,
								Line:   43,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   46,
									},
									File:   "distinct_test.flux",
									Source: "name: \"0\"",
									Start: ast.Position{
										Column: 18,
										Line:   46,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   46,
										},
										File:   "distinct_test.flux",
										Source: "name: \"0\"",
										Start: ast.Position{
											Column: 18,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   46,
											},
											File:   "distinct_test.flux",
											Source: "name",
											Start: ast.Position{
												Column: 18,
												Line:   46,
											},
										},
									},
									Name: "name",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   46,
											},
											File:   "distinct_test.flux",
											Source: "\"0\"",
											Start: ast.Position{
												Column: 24,
												Line:   46,
											},
										},
									},
									Value: "0",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   46,
								},
								File:   "distinct_test.flux",
								Source: "yield(name: \"0\")",
								Start: ast.Position{
									Column: 12,
									Line:   46,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 17,
										Line:   46,
									},
									File:   "distinct_test.flux",
									Source: "yield",
									Start: ast.Position{
										Column: 12,
										Line:   46,
									},
								},
							},
							Name: "yield",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   42,
							},
							File:   "distinct_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 15,
								Line:   42,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 20,
									Line:   42,
								},
								File:   "distinct_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 15,
									Line:   42,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   42,
							},
							File:   "distinct_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 21,
								Line:   42,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   48,
						},
						File:   "distinct_test.flux",
						Source: "_distinct = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct})",
						Start: ast.Position{
							Column: 6,
							Line:   48,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   48,
							},
							File:   "distinct_test.flux",
							Source: "_distinct",
							Start: ast.Position{
								Column: 6,
								Line:   48,
							},
						},
					},
					Name: "_distinct",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   48,
							},
							File:   "distinct_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct})",
							Start: ast.Position{
								Column: 18,
								Line:   48,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   48,
								},
								File:   "distinct_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct})",
								Start: ast.Position{
									Column: 24,
									Line:   48,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   48,
									},
									File:   "distinct_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct}",
									Start: ast.Position{
										Column: 25,
										Line:   48,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   48,
										},
										File:   "distinct_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   48,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 64,
													Line:   48,
												},
												File:   "distinct_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   48,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   48,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   48,
														},
														File:   "distinct_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   48,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   48,
														},
														File:   "distinct_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   48,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   48,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   48,
												},
												File:   "distinct_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   48,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   48,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   48,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 102,
											Line:   48,
										},
										File:   "distinct_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   48,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 101,
													Line:   48,
												},
												File:   "distinct_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   48,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   48,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   48,
														},
														File:   "distinct_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   48,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   48,
														},
														File:   "distinct_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   48,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   48,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   48,
												},
												File:   "distinct_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   48,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   48,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   48,
													},
													File:   "distinct_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   48,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 118,
											Line:   48,
										},
										File:   "distinct_test.flux",
										Source: "fn: t_distinct",
										Start: ast.Position{
											Column: 104,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   48,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   48,
											},
											File:   "distinct_test.flux",
											Source: "t_distinct",
											Start: ast.Position{
												Column: 108,
												Line:   48,
											},
										},
									},
									Name: "t_distinct",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 120,
						Line:   48,
					},
					File:   "distinct_test.flux",
					Source: "test _distinct = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_distinct})",
					Start: ast.Position{
						Column: 1,
						Line:   48,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "distinct_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "distinct_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "distinct_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "distinct_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "distinct_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "distinct_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "distinct_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   52,
				},
				File:   "fill_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,m1,f1,server01,2018-12-19T22:13:30Z,\n,,0,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,m1,f1,server01,2018-12-19T22:14:10Z,\n,,0,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,m1,f1,server02,2018-12-19T22:14:10Z,\n,,1,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:30Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:10Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:10Z,-1\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"\nt_fill_int = (table=<-) =>\n    table\n        |> range(start: 2018-12-15T00:00:00Z)\n        |> experimental.fill(value: -1)\n\ntest _fill = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "fill_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "fill_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "fill_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "fill_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "fill_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   27,
					},
					File:   "fill_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,m1,f1,server01,2018-12-19T22:13:30Z,\n,,0,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,m1,f1,server01,2018-12-19T22:14:10Z,\n,,0,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,m1,f1,server02,2018-12-19T22:14:10Z,\n,,1,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "fill_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   27,
						},
						File:   "fill_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,m1,f1,server01,2018-12-19T22:13:30Z,\n,,0,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,m1,f1,server01,2018-12-19T22:14:10Z,\n,,0,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,m1,f1,server02,2018-12-19T22:14:10Z,\n,,1,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,m1,f1,server01,2018-12-19T22:13:30Z,\n,,0,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,m1,f1,server01,2018-12-19T22:14:10Z,\n,,0,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,m1,f1,server02,2018-12-19T22:14:10Z,\n,,1,m1,f1,server02,2018-12-19T22:14:20Z,99\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   46,
					},
					File:   "fill_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:30Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:10Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:10Z,-1\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   28,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   28,
						},
						File:   "fill_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   28,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   46,
						},
						File:   "fill_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:30Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:10Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:10Z,-1\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:20Z,99\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   29,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:30Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:40Z,-25\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:13:50Z,46\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:00Z,-2\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:10Z,-1\n,,0,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server01,2018-12-19T22:14:20Z,-53\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:30Z,17\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:40Z,-44\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:13:50Z,-99\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:00Z,-85\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:10Z,-1\n,,1,2018-12-15T00:00:00Z,2030-01-01T00:00:00Z,m1,f1,server02,2018-12-19T22:14:20Z,99\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   50,
					},
					File:   "fill_test.flux",
					Source: "t_fill_int = (table=<-) =>\n    table\n        |> range(start: 2018-12-15T00:00:00Z)\n        |> experimental.fill(value: -1)",
					Start: ast.Position{
						Column: 1,
						Line:   47,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   47,
						},
						File:   "fill_test.flux",
						Source: "t_fill_int",
						Start: ast.Position{
							Column: 1,
							Line:   47,
						},
					},
				},
				Name: "t_fill_int",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   50,
						},
						File:   "fill_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-15T00:00:00Z)\n        |> experimental.fill(value: -1)",
						Start: ast.Position{
							Column: 14,
							Line:   47,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   48,
									},
									File:   "fill_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   48,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   49,
								},
								File:   "fill_test.flux",
								Source: "table\n        |> range(start: 2018-12-15T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   48,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   49,
										},
										File:   "fill_test.flux",
										Source: "start: 2018-12-15T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   49,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   49,
											},
											File:   "fill_test.flux",
											Source: "start: 2018-12-15T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   49,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   49,
												},
												File:   "fill_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   49,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   49,
												},
												File:   "fill_test.flux",
												Source: "2018-12-15T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   49,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-15T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   49,
									},
									File:   "fill_test.flux",
									Source: "range(start: 2018-12-15T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   49,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   49,
										},
										File:   "fill_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   49,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   50,
							},
							File:   "fill_test.flux",
							Source: "table\n        |> range(start: 2018-12-15T00:00:00Z)\n        |> experimental.fill(value: -1)",
							Start: ast.Position{
								Column: 5,
								Line:   48,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 39,
										Line:   50,
									},
									File:   "fill_test.flux",
									Source: "value: -1",
									Start: ast.Position{
										Column: 30,
										Line:   50,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 39,
											Line:   50,
										},
										File:   "fill_test.flux",
										Source: "value: -1",
										Start: ast.Position{
											Column: 30,
											Line:   50,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   50,
											},
											File:   "fill_test.flux",
											Source: "value",
											Start: ast.Position{
												Column: 30,
												Line:   50,
											},
										},
									},
									Name: "value",
								},
								Separator: nil,
								Value: &ast.UnaryExpression{
									Argument: &ast.IntegerLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 39,
													Line:   50,
												},
												File:   "fill_test.flux",
												Source: "1",
												Start: ast.Position{
													Column: 38,
													Line:   50,
												},
											},
										},
										Value: int64(1),
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   50,
											},
											File:   "fill_test.flux",
											Source: "-1",
											Start: ast.Position{
												Column: 37,
												Line:   50,
											},
										},
									},
									Operator: 6,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   50,
								},
								File:   "fill_test.flux",
								Source: "experimental.fill(value: -1)",
								Start: ast.Position{
									Column: 12,
									Line:   50,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   50,
									},
									File:   "fill_test.flux",
									Source: "experimental.fill",
									Start: ast.Position{
										Column: 12,
										Line:   50,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   50,
										},
										File:   "fill_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   50,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   50,
										},
										File:   "fill_test.flux",
										Source: "fill",
										Start: ast.Position{
											Column: 25,
											Line:   50,
										},
									},
								},
								Name: "fill",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   47,
							},
							File:   "fill_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 15,
								Line:   47,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 20,
									Line:   47,
								},
								File:   "fill_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 15,
									Line:   47,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   47,
							},
							File:   "fill_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 21,
								Line:   47,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 116,
							Line:   52,
						},
						File:   "fill_test.flux",
						Source: "_fill = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int})",
						Start: ast.Position{
							Column: 6,
							Line:   52,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   52,
							},
							File:   "fill_test.flux",
							Source: "_fill",
							Start: ast.Position{
								Column: 6,
								Line:   52,
							},
						},
					},
					Name: "_fill",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   52,
							},
							File:   "fill_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int})",
							Start: ast.Position{
								Column: 14,
								Line:   52,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 116,
									Line:   52,
								},
								File:   "fill_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int})",
								Start: ast.Position{
									Column: 20,
									Line:   52,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   52,
									},
									File:   "fill_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int}",
									Start: ast.Position{
										Column: 21,
										Line:   52,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   52,
										},
										File:   "fill_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   52,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   52,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   52,
												},
												File:   "fill_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   52,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   52,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   52,
														},
														File:   "fill_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   52,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   52,
														},
														File:   "fill_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   52,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   52,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   52,
												},
												File:   "fill_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   52,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   52,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   52,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   52,
										},
										File:   "fill_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   52,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   52,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   52,
												},
												File:   "fill_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   52,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   52,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   52,
														},
														File:   "fill_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   52,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   52,
														},
														File:   "fill_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   52,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   52,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   52,
												},
												File:   "fill_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   52,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   52,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   52,
													},
													File:   "fill_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   52,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   52,
										},
										File:   "fill_test.flux",
										Source: "fn: t_fill_int",
										Start: ast.Position{
											Column: 100,
											Line:   52,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   52,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   52,
											},
											File:   "fill_test.flux",
											Source: "t_fill_int",
											Start: ast.Position{
												Column: 104,
												Line:   52,
											},
										},
									},
									Name: "t_fill_int",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 116,
						Line:   52,
					},
					File:   "fill_test.flux",
					Source: "test _fill = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_fill_int})",
					Start: ast.Position{
						Column: 1,
						Line:   52,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "fill_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "fill_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "fill_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "fill_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "fill_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "fill_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "fill_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 114,
					Line:   57,
				},
				File:   "first_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"\nt_first = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.first()\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _first = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "first_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "first_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "first_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "first_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "first_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "first_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "first_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "first_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   50,
					},
					File:   "first_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   40,
						},
						File:   "first_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   50,
						},
						File:   "first_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   41,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   55,
					},
					File:   "first_test.flux",
					Source: "t_first = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.first()\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   51,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   51,
						},
						File:   "first_test.flux",
						Source: "t_first",
						Start: ast.Position{
							Column: 1,
							Line:   51,
						},
					},
				},
				Name: "t_first",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   55,
						},
						File:   "first_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.first()\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 11,
							Line:   51,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   52,
										},
										File:   "first_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   52,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   53,
									},
									File:   "first_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   52,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   53,
											},
											File:   "first_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   53,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   53,
												},
												File:   "first_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   53,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   53,
													},
													File:   "first_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   53,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   53,
													},
													File:   "first_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   53,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   53,
										},
										File:   "first_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   53,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   53,
											},
											File:   "first_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   53,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   54,
								},
								File:   "first_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.first()",
								Start: ast.Position{
									Column: 5,
									Line:   52,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   54,
									},
									File:   "first_test.flux",
									Source: "experimental.first()",
									Start: ast.Position{
										Column: 12,
										Line:   54,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 30,
											Line:   54,
										},
										File:   "first_test.flux",
										Source: "experimental.first",
										Start: ast.Position{
											Column: 12,
											Line:   54,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   54,
											},
											File:   "first_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   54,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 30,
												Line:   54,
											},
											File:   "first_test.flux",
											Source: "first",
											Start: ast.Position{
												Column: 25,
												Line:   54,
											},
										},
									},
									Name: "first",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   55,
							},
							File:   "first_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.first()\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   52,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   55,
									},
									File:   "first_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   55,
										},
										File:   "first_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   55,
											},
											File:   "first_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   55,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   55,
											},
											File:   "first_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   55,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   55,
												},
												File:   "first_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   55,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   55,
												},
												File:   "first_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   55,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   55,
								},
								File:   "first_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   55,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   55,
									},
									File:   "first_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   55,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   51,
							},
							File:   "first_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 12,
								Line:   51,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 17,
									Line:   51,
								},
								File:   "first_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 12,
									Line:   51,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   51,
							},
							File:   "first_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 18,
								Line:   51,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 114,
							Line:   57,
						},
						File:   "first_test.flux",
						Source: "_first = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 12,
								Line:   57,
							},
							File:   "first_test.flux",
							Source: "_first",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_first",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 114,
								Line:   57,
							},
							File:   "first_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first})",
							Start: ast.Position{
								Column: 15,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 114,
									Line:   57,
								},
								File:   "first_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first})",
								Start: ast.Position{
									Column: 21,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 113,
										Line:   57,
									},
									File:   "first_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first}",
									Start: ast.Position{
										Column: 22,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   57,
										},
										File:   "first_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 23,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 23,
												Line:   57,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 61,
													Line:   57,
												},
												File:   "first_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 50,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 50,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 53,
															Line:   57,
														},
														File:   "first_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 50,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 61,
															Line:   57,
														},
														File:   "first_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 55,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 30,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   57,
												},
												File:   "first_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 30,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 37,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 30,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 38,
														Line:   57,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 99,
											Line:   57,
										},
										File:   "first_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 64,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 64,
												Line:   57,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 98,
													Line:   57,
												},
												File:   "first_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 86,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 98,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 86,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 89,
															Line:   57,
														},
														File:   "first_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 86,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 98,
															Line:   57,
														},
														File:   "first_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 91,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 99,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 70,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 85,
													Line:   57,
												},
												File:   "first_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 70,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 77,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 70,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 85,
														Line:   57,
													},
													File:   "first_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 78,
														Line:   57,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 112,
											Line:   57,
										},
										File:   "first_test.flux",
										Source: "fn: t_first",
										Start: ast.Position{
											Column: 101,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 103,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 101,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 112,
												Line:   57,
											},
											File:   "first_test.flux",
											Source: "t_first",
											Start: ast.Position{
												Column: 105,
												Line:   57,
											},
										},
									},
									Name: "t_first",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 114,
						Line:   57,
					},
					File:   "first_test.flux",
					Source: "test _first = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_first})",
					Start: ast.Position{
						Column: 1,
						Line:   57,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "first_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "first_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "first_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "first_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "first_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "first_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "first_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 114,
					Line:   44,
				},
				File:   "group_test.flux",
				Source: "package experimental_test\n\n\nimport \"experimental\"\nimport \"testing\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:46Z,672,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,host,name,_time,_value\n,,0,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk0,2018-05-22T19:54:16Z,15205755\n,,1,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk2,2018-05-22T19:53:46Z,672\n\"\nt_group = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")\n        |> experimental.group(mode: \"extend\", columns: [\"name\"])\n        |> max()\n\ntest _group = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "group_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "group_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "group_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "group_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "group_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   27,
					},
					File:   "group_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:46Z,672,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "group_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   27,
						},
						File:   "group_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:46Z,672,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:46Z,672,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,0,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   36,
					},
					File:   "group_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,host,name,_time,_value\n,,0,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk0,2018-05-22T19:54:16Z,15205755\n,,1,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk2,2018-05-22T19:53:46Z,672\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   28,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   28,
						},
						File:   "group_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   28,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   36,
						},
						File:   "group_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,host,name,_time,_value\n,,0,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk0,2018-05-22T19:54:16Z,15205755\n,,1,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk2,2018-05-22T19:53:46Z,672\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   29,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,host,name,_time,_value\n,,0,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk0,2018-05-22T19:54:16Z,15205755\n,,1,2018-05-22T19:53:26Z,2030-01-01T00:00:00Z,diskio,io_time,host.local,disk2,2018-05-22T19:53:46Z,672\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   42,
					},
					File:   "group_test.flux",
					Source: "t_group = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")\n        |> experimental.group(mode: \"extend\", columns: [\"name\"])\n        |> max()",
					Start: ast.Position{
						Column: 1,
						Line:   37,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   37,
						},
						File:   "group_test.flux",
						Source: "t_group",
						Start: ast.Position{
							Column: 1,
							Line:   37,
						},
					},
				},
				Name: "t_group",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   42,
						},
						File:   "group_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")\n        |> experimental.group(mode: \"extend\", columns: [\"name\"])\n        |> max()",
						Start: ast.Position{
							Column: 11,
							Line:   37,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 10,
												Line:   38,
											},
											File:   "group_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 5,
												Line:   38,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   39,
										},
										File:   "group_test.flux",
										Source: "table\n        |> range(start: 2018-05-22T19:53:26Z)",
										Start: ast.Position{
											Column: 5,
											Line:   38,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   39,
												},
												File:   "group_test.flux",
												Source: "start: 2018-05-22T19:53:26Z",
												Start: ast.Position{
													Column: 18,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   39,
													},
													File:   "group_test.flux",
													Source: "start: 2018-05-22T19:53:26Z",
													Start: ast.Position{
														Column: 18,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 23,
															Line:   39,
														},
														File:   "group_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 18,
															Line:   39,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 45,
															Line:   39,
														},
														File:   "group_test.flux",
														Source: "2018-05-22T19:53:26Z",
														Start: ast.Position{
															Column: 25,
															Line:   39,
														},
													},
												},
												Value: parser.MustParseTime("2018-05-22T19:53:26Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   39,
											},
											File:   "group_test.flux",
											Source: "range(start: 2018-05-22T19:53:26Z)",
											Start: ast.Position{
												Column: 12,
												Line:   39,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 17,
													Line:   39,
												},
												File:   "group_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 12,
													Line:   39,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 83,
										Line:   40,
									},
									File:   "group_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")",
									Start: ast.Position{
										Column: 5,
										Line:   38,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 82,
												Line:   40,
											},
											File:   "group_test.flux",
											Source: "fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\"",
											Start: ast.Position{
												Column: 19,
												Line:   40,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   40,
												},
												File:   "group_test.flux",
												Source: "fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\"",
												Start: ast.Position{
													Column: 19,
													Line:   40,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 21,
														Line:   40,
													},
													File:   "group_test.flux",
													Source: "fn",
													Start: ast.Position{
														Column: 19,
														Line:   40,
													},
												},
											},
											Name: "fn",
										},
										Separator: nil,
										Value: &ast.FunctionExpression{
											Arrow: nil,
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   40,
													},
													File:   "group_test.flux",
													Source: "(r) => r._measurement == \"diskio\" and r._field == \"io_time\"",
													Start: ast.Position{
														Column: 23,
														Line:   40,
													},
												},
											},
											Body: &ast.LogicalExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 82,
															Line:   40,
														},
														File:   "group_test.flux",
														Source: "r._measurement == \"diskio\" and r._field == \"io_time\"",
														Start: ast.Position{
															Column: 30,
															Line:   40,
														},
													},
												},
												Left: &ast.BinaryExpression{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 56,
																Line:   40,
															},
															File:   "group_test.flux",
															Source: "r._measurement == \"diskio\"",
															Start: ast.Position{
																Column: 30,
																Line:   40,
															},
														},
													},
													Left: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 44,
																	Line:   40,
																},
																File:   "group_test.flux",
																Source: "r._measurement",
																Start: ast.Position{
																	Column: 30,
																	Line:   40,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 31,
																		Line:   40,
																	},
																	File:   "group_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 30,
																		Line:   40,
																	},
																},
															},
															Name: "r",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 44,
																		Line:   40,
																	},
																	File:   "group_test.flux",
																	Source: "_measurement",
																	Start: ast.Position{
																		Column: 32,
																		Line:   40,
																	},
																},
															},
															Name: "_measurement",
														},
														Rbrack: nil,
													},
													Operator: 17,
													Right: &ast.StringLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 56,
																	Line:   40,
																},
																File:   "group_test.flux",
																Source: "\"diskio\"",
																Start: ast.Position{
																	Column: 48,
																	Line:   40,
																},
															},
														},
														Value: "diskio",
													},
												},
												Operator: 1,
												Right: &ast.BinaryExpression{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 82,
																Line:   40,
															},
															File:   "group_test.flux",
															Source: "r._field == \"io_time\"",
															Start: ast.Position{
																Column: 61,
																Line:   40,
															},
														},
													},
													Left: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 69,
																	Line:   40,
																},
																File:   "group_test.flux",
																Source: "r._field",
																Start: ast.Position{
																	Column: 61,
																	Line:   40,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 62,
																		Line:   40,
																	},
																	File:   "group_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 61,
																		Line:   40,
																	},
																},
															},
															Name: "r",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 69,
																		Line:   40,
																	},
																	File:   "group_test.flux",
																	Source: "_field",
																	Start: ast.Position{
																		Column: 63,
																		Line:   40,
																	},
																},
															},
															Name: "_field",
														},
														Rbrack: nil,
													},
													Operator: 17,
													Right: &ast.StringLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 82,
																	Line:   40,
																},
																File:   "group_test.flux",
																Source: "\"io_time\"",
																Start: ast.Position{
																	Column: 73,
																	Line:   40,
																},
															},
														},
														Value: "io_time",
													},
												},
											},
											Lparen: nil,
											Params: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 25,
															Line:   40,
														},
														File:   "group_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 24,
															Line:   40,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 25,
																Line:   40,
															},
															File:   "group_test.flux",
															Source: "r",
															Start: ast.Position{
																Column: 24,
																Line:   40,
															},
														},
													},
													Name: "r",
												},
												Separator: nil,
												Value:     nil,
											}},
											Rparan: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 83,
											Line:   40,
										},
										File:   "group_test.flux",
										Source: "filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")",
										Start: ast.Position{
											Column: 12,
											Line:   40,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 18,
												Line:   40,
											},
											File:   "group_test.flux",
											Source: "filter",
											Start: ast.Position{
												Column: 12,
												Line:   40,
											},
										},
									},
									Name: "filter",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 65,
									Line:   41,
								},
								File:   "group_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")\n        |> experimental.group(mode: \"extend\", columns: [\"name\"])",
								Start: ast.Position{
									Column: 5,
									Line:   38,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 64,
											Line:   41,
										},
										File:   "group_test.flux",
										Source: "mode: \"extend\", columns: [\"name\"]",
										Start: ast.Position{
											Column: 31,
											Line:   41,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   41,
											},
											File:   "group_test.flux",
											Source: "mode: \"extend\"",
											Start: ast.Position{
												Column: 31,
												Line:   41,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   41,
												},
												File:   "group_test.flux",
												Source: "mode",
												Start: ast.Position{
													Column: 31,
													Line:   41,
												},
											},
										},
										Name: "mode",
									},
									Separator: nil,
									Value: &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   41,
												},
												File:   "group_test.flux",
												Source: "\"extend\"",
												Start: ast.Position{
													Column: 37,
													Line:   41,
												},
											},
										},
										Value: "extend",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 64,
												Line:   41,
											},
											File:   "group_test.flux",
											Source: "columns: [\"name\"]",
											Start: ast.Position{
												Column: 47,
												Line:   41,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   41,
												},
												File:   "group_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 47,
													Line:   41,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 64,
													Line:   41,
												},
												File:   "group_test.flux",
												Source: "[\"name\"]",
												Start: ast.Position{
													Column: 56,
													Line:   41,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 63,
														Line:   41,
													},
													File:   "group_test.flux",
													Source: "\"name\"",
													Start: ast.Position{
														Column: 57,
														Line:   41,
													},
												},
											},
											Value: "name",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 65,
										Line:   41,
									},
									File:   "group_test.flux",
									Source: "experimental.group(mode: \"extend\", columns: [\"name\"])",
									Start: ast.Position{
										Column: 12,
										Line:   41,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 30,
											Line:   41,
										},
										File:   "group_test.flux",
										Source: "experimental.group",
										Start: ast.Position{
											Column: 12,
											Line:   41,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   41,
											},
											File:   "group_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   41,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 30,
												Line:   41,
											},
											File:   "group_test.flux",
											Source: "group",
											Start: ast.Position{
												Column: 25,
												Line:   41,
											},
										},
									},
									Name: "group",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   42,
							},
							File:   "group_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T19:53:26Z)\n        |> filter(fn: (r) => r._measurement == \"diskio\" and r._field == \"io_time\")\n        |> experimental.group(mode: \"extend\", columns: [\"name\"])\n        |> max()",
							Start: ast.Position{
								Column: 5,
								Line:   38,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 17,
									Line:   42,
								},
								File:   "group_test.flux",
								Source: "max()",
								Start: ast.Position{
									Column: 12,
									Line:   42,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 15,
										Line:   42,
									},
									File:   "group_test.flux",
									Source: "max",
									Start: ast.Position{
										Column: 12,
										Line:   42,
									},
								},
							},
							Name: "max",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   37,
							},
							File:   "group_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 12,
								Line:   37,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 17,
									Line:   37,
								},
								File:   "group_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 12,
									Line:   37,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 20,
								Line:   37,
							},
							File:   "group_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 18,
								Line:   37,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 114,
							Line:   44,
						},
						File:   "group_test.flux",
						Source: "_group = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group})",
						Start: ast.Position{
							Column: 6,
							Line:   44,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 12,
								Line:   44,
							},
							File:   "group_test.flux",
							Source: "_group",
							Start: ast.Position{
								Column: 6,
								Line:   44,
							},
						},
					},
					Name: "_group",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 114,
								Line:   44,
							},
							File:   "group_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group})",
							Start: ast.Position{
								Column: 15,
								Line:   44,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 114,
									Line:   44,
								},
								File:   "group_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group})",
								Start: ast.Position{
									Column: 21,
									Line:   44,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 113,
										Line:   44,
									},
									File:   "group_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group}",
									Start: ast.Position{
										Column: 22,
										Line:   44,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   44,
										},
										File:   "group_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 23,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 23,
												Line:   44,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 61,
													Line:   44,
												},
												File:   "group_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 50,
													Line:   44,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 50,
														Line:   44,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 53,
															Line:   44,
														},
														File:   "group_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 50,
															Line:   44,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 61,
															Line:   44,
														},
														File:   "group_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 55,
															Line:   44,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 30,
												Line:   44,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   44,
												},
												File:   "group_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 30,
													Line:   44,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 37,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 30,
														Line:   44,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 38,
														Line:   44,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 99,
											Line:   44,
										},
										File:   "group_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 64,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 64,
												Line:   44,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 98,
													Line:   44,
												},
												File:   "group_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 86,
													Line:   44,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 98,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 86,
														Line:   44,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 89,
															Line:   44,
														},
														File:   "group_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 86,
															Line:   44,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 98,
															Line:   44,
														},
														File:   "group_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 91,
															Line:   44,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 99,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 70,
												Line:   44,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 85,
													Line:   44,
												},
												File:   "group_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 70,
													Line:   44,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 77,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 70,
														Line:   44,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 85,
														Line:   44,
													},
													File:   "group_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 78,
														Line:   44,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 112,
											Line:   44,
										},
										File:   "group_test.flux",
										Source: "fn: t_group",
										Start: ast.Position{
											Column: 101,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 103,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 101,
												Line:   44,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 112,
												Line:   44,
											},
											File:   "group_test.flux",
											Source: "t_group",
											Start: ast.Position{
												Column: 105,
												Line:   44,
											},
										},
									},
									Name: "t_group",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 114,
						Line:   44,
					},
					File:   "group_test.flux",
					Source: "test _group = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_group})",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   4,
					},
					File:   "group_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   4,
						},
						File:   "group_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "experimental",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   5,
					},
					File:   "group_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   5,
						},
						File:   "group_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "testing",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "group_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "group_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "group_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 111,
					Line:   48,
				},
				File:   "histogram_quantile_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,_value,le,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,-Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,1,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,l\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,true,true,false,true\n#default,_result,,,,,,,\n,result,table,_start,_stop,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,x_duration_seconds,0.8500000000000001,l\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,y_duration_seconds,0.91,l\n\"\nt_histogram_quantile = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z)\n        |> experimental.histogramQuantile(quantile: 0.9)\n\ntest _histogram_quantile = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "histogram_quantile_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "histogram_quantile_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "histogram_quantile_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "histogram_quantile_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "histogram_quantile_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "histogram_quantile_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,_value,le,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,-Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,1,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,l\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "histogram_quantile_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   32,
						},
						File:   "histogram_quantile_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,_value,le,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,-Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,1,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,l\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,_value,le,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,l\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,-Inf,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,1,l\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,l\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   41,
					},
					File:   "histogram_quantile_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,true,true,false,true\n#default,_result,,,,,,,\n,result,table,_start,_stop,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,x_duration_seconds,0.8500000000000001,l\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,y_duration_seconds,0.91,l\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   33,
						},
						File:   "histogram_quantile_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   41,
						},
						File:   "histogram_quantile_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,true,true,false,true\n#default,_result,,,,,,,\n,result,table,_start,_stop,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,x_duration_seconds,0.8500000000000001,l\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,y_duration_seconds,0.91,l\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   34,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,true,true,false,true\n#default,_result,,,,,,,\n,result,table,_start,_stop,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,x_duration_seconds,0.8500000000000001,l\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,2018-05-22T19:53:00Z,y_duration_seconds,0.91,l\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 57,
						Line:   45,
					},
					File:   "histogram_quantile_test.flux",
					Source: "t_histogram_quantile = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z)\n        |> experimental.histogramQuantile(quantile: 0.9)",
					Start: ast.Position{
						Column: 1,
						Line:   42,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 21,
							Line:   42,
						},
						File:   "histogram_quantile_test.flux",
						Source: "t_histogram_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   42,
						},
					},
				},
				Name: "t_histogram_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 57,
							Line:   45,
						},
						File:   "histogram_quantile_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z)\n        |> experimental.histogramQuantile(quantile: 0.9)",
						Start: ast.Position{
							Column: 24,
							Line:   42,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   43,
									},
									File:   "histogram_quantile_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   43,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   44,
								},
								File:   "histogram_quantile_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T19:53:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   43,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   44,
										},
										File:   "histogram_quantile_test.flux",
										Source: "start: 2018-05-22T19:53:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   44,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   44,
											},
											File:   "histogram_quantile_test.flux",
											Source: "start: 2018-05-22T19:53:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   44,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   44,
												},
												File:   "histogram_quantile_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   44,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   44,
												},
												File:   "histogram_quantile_test.flux",
												Source: "2018-05-22T19:53:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   44,
												},
											},
										},
										Value: parser.MustParseTime("2018-05-22T19:53:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   44,
									},
									File:   "histogram_quantile_test.flux",
									Source: "range(start: 2018-05-22T19:53:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   44,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   44,
										},
										File:   "histogram_quantile_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   44,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 57,
								Line:   45,
							},
							File:   "histogram_quantile_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T19:53:00Z)\n        |> experimental.histogramQuantile(quantile: 0.9)",
							Start: ast.Position{
								Column: 5,
								Line:   43,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 56,
										Line:   45,
									},
									File:   "histogram_quantile_test.flux",
									Source: "quantile: 0.9",
									Start: ast.Position{
										Column: 43,
										Line:   45,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 56,
											Line:   45,
										},
										File:   "histogram_quantile_test.flux",
										Source: "quantile: 0.9",
										Start: ast.Position{
											Column: 43,
											Line:   45,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 51,
												Line:   45,
											},
											File:   "histogram_quantile_test.flux",
											Source: "quantile",
											Start: ast.Position{
												Column: 43,
												Line:   45,
											},
										},
									},
									Name: "quantile",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 56,
												Line:   45,
											},
											File:   "histogram_quantile_test.flux",
											Source: "0.9",
											Start: ast.Position{
												Column: 53,
												Line:   45,
											},
										},
									},
									Value: 0.9,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 57,
									Line:   45,
								},
								File:   "histogram_quantile_test.flux",
								Source: "experimental.histogramQuantile(quantile: 0.9)",
								Start: ast.Position{
									Column: 12,
									Line:   45,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   45,
									},
									File:   "histogram_quantile_test.flux",
									Source: "experimental.histogramQuantile",
									Start: ast.Position{
										Column: 12,
										Line:   45,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   45,
										},
										File:   "histogram_quantile_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   45,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   45,
										},
										File:   "histogram_quantile_test.flux",
										Source: "histogramQuantile",
										Start: ast.Position{
											Column: 25,
											Line:   45,
										},
									},
								},
								Name: "histogramQuantile",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 33,
								Line:   42,
							},
							File:   "histogram_quantile_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 25,
								Line:   42,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 30,
									Line:   42,
								},
								File:   "histogram_quantile_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 25,
									Line:   42,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 33,
								Line:   42,
							},
							File:   "histogram_quantile_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 31,
								Line:   42,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 111,
							Line:   48,
						},
						File:   "histogram_quantile_test.flux",
						Source: "_histogram_quantile = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
						Start: ast.Position{
							Column: 6,
							Line:   47,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   47,
							},
							File:   "histogram_quantile_test.flux",
							Source: "_histogram_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   47,
							},
						},
					},
					Name: "_histogram_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 111,
								Line:   48,
							},
							File:   "histogram_quantile_test.flux",
							Source: "() =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
							Start: ast.Position{
								Column: 28,
								Line:   47,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 111,
									Line:   48,
								},
								File:   "histogram_quantile_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
								Start: ast.Position{
									Column: 5,
									Line:   48,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 110,
										Line:   48,
									},
									File:   "histogram_quantile_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile}",
									Start: ast.Position{
										Column: 6,
										Line:   48,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   48,
										},
										File:   "histogram_quantile_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 7,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 7,
												Line:   48,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   48,
												},
												File:   "histogram_quantile_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 34,
													Line:   48,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 34,
														Line:   48,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 37,
															Line:   48,
														},
														File:   "histogram_quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 34,
															Line:   48,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 45,
															Line:   48,
														},
														File:   "histogram_quantile_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 39,
															Line:   48,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 14,
												Line:   48,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 33,
													Line:   48,
												},
												File:   "histogram_quantile_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 14,
													Line:   48,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 21,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 14,
														Line:   48,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 33,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 22,
														Line:   48,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 83,
											Line:   48,
										},
										File:   "histogram_quantile_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 48,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 52,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 48,
												Line:   48,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   48,
												},
												File:   "histogram_quantile_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 70,
													Line:   48,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 70,
														Line:   48,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   48,
														},
														File:   "histogram_quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 70,
															Line:   48,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 82,
															Line:   48,
														},
														File:   "histogram_quantile_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 75,
															Line:   48,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 83,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 54,
												Line:   48,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   48,
												},
												File:   "histogram_quantile_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 54,
													Line:   48,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 54,
														Line:   48,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 69,
														Line:   48,
													},
													File:   "histogram_quantile_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 62,
														Line:   48,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 109,
											Line:   48,
										},
										File:   "histogram_quantile_test.flux",
										Source: "fn: t_histogram_quantile",
										Start: ast.Position{
											Column: 85,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 87,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 85,
												Line:   48,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   48,
											},
											File:   "histogram_quantile_test.flux",
											Source: "t_histogram_quantile",
											Start: ast.Position{
												Column: 89,
												Line:   48,
											},
										},
									},
									Name: "t_histogram_quantile",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 111,
						Line:   48,
					},
					File:   "histogram_quantile_test.flux",
					Source: "test _histogram_quantile = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
					Start: ast.Position{
						Column: 1,
						Line:   47,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "histogram_quantile_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "histogram_quantile_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "histogram_quantile_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "histogram_quantile_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "histogram_quantile_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "histogram_quantile_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "histogram_quantile_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 102,
					Line:   43,
				},
				File:   "histogram_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,false,true\n#default,_result,,,,,\n,result,table,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1.5,foo\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,le,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,-1,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,1,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,2,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,-1,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,2,3,foo\n\"\nt_histogram = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _histogram = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "histogram_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "histogram_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "histogram_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "histogram_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "histogram_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   20,
					},
					File:   "histogram_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,false,true\n#default,_result,,,,,\n,result,table,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1.5,foo\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "histogram_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   20,
						},
						File:   "histogram_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,false,true\n#default,_result,,,,,\n,result,table,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1.5,foo\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\n#group,false,false,true,true,false,true\n#default,_result,,,,,\n,result,table,_time,_field,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1.5,foo\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   35,
					},
					File:   "histogram_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,le,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,-1,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,1,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,2,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,-1,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,2,3,foo\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   21,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   21,
						},
						File:   "histogram_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   21,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   35,
						},
						File:   "histogram_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,le,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,-1,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,1,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,2,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,-1,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,2,3,foo\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   22,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,double,string\n#group,false,false,true,true,false,false,true\n#default,_result,,,,,,\n,result,table,_time,_field,le,_value,_measurement\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,-1,0,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,0,1,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,2,foo\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,2,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,-1,0,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,0,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,1,2,foo\n,,1,2018-05-22T19:53:00Z,y_duration_seconds,2,3,foo\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   40,
					},
					File:   "histogram_test.flux",
					Source: "t_histogram = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   36,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 12,
							Line:   36,
						},
						File:   "histogram_test.flux",
						Source: "t_histogram",
						Start: ast.Position{
							Column: 1,
							Line:   36,
						},
					},
				},
				Name: "t_histogram",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   40,
						},
						File:   "histogram_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 15,
							Line:   36,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   37,
										},
										File:   "histogram_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   37,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   38,
									},
									File:   "histogram_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   37,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   38,
											},
											File:   "histogram_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   38,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   38,
												},
												File:   "histogram_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   38,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   38,
													},
													File:   "histogram_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   38,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   38,
													},
													File:   "histogram_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   38,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   38,
										},
										File:   "histogram_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   38,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   38,
											},
											File:   "histogram_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   38,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 63,
									Line:   39,
								},
								File:   "histogram_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])",
								Start: ast.Position{
									Column: 5,
									Line:   37,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   39,
										},
										File:   "histogram_test.flux",
										Source: "bins: [-1.0, 0.0, 1.0, 2.0]",
										Start: ast.Position{
											Column: 35,
											Line:   39,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   39,
											},
											File:   "histogram_test.flux",
											Source: "bins: [-1.0, 0.0, 1.0, 2.0]",
											Start: ast.Position{
												Column: 35,
												Line:   39,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 39,
													Line:   39,
												},
												File:   "histogram_test.flux",
												Source: "bins",
												Start: ast.Position{
													Column: 35,
													Line:   39,
												},
											},
										},
										Name: "bins",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 62,
													Line:   39,
												},
												File:   "histogram_test.flux",
												Source: "[-1.0, 0.0, 1.0, 2.0]",
												Start: ast.Position{
													Column: 41,
													Line:   39,
												},
											},
										},
										Elements: []ast.Expression{&ast.UnaryExpression{
											Argument: &ast.FloatLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 46,
															Line:   39,
														},
														File:   "histogram_test.flux",
														Source: "1.0",
														Start: ast.Position{
															Column: 43,
															Line:   39,
														},
													},
												},
												Value: 1.0,
											},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 46,
														Line:   39,
													},
													File:   "histogram_test.flux",
													Source: "-1.0",
													Start: ast.Position{
														Column: 42,
														Line:   39,
													},
												},
											},
											Operator: 6,
										}, &ast.FloatLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 51,
														Line:   39,
													},
													File:   "histogram_test.flux",
													Source: "0.0",
													Start: ast.Position{
														Column: 48,
														Line:   39,
													},
												},
											},
											Value: 0.0,
										}, &ast.FloatLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "histogram_test.flux",
													Source: "1.0",
													Start: ast.Position{
														Column: 53,
														Line:   39,
													},
												},
											},
											Value: 1.0,
										}, &ast.FloatLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   39,
													},
													File:   "histogram_test.flux",
													Source: "2.0",
													Start: ast.Position{
														Column: 58,
														Line:   39,
													},
												},
											},
											Value: 2.0,
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 63,
										Line:   39,
									},
									File:   "histogram_test.flux",
									Source: "experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])",
									Start: ast.Position{
										Column: 12,
										Line:   39,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 34,
											Line:   39,
										},
										File:   "histogram_test.flux",
										Source: "experimental.histogram",
										Start: ast.Position{
											Column: 12,
											Line:   39,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   39,
											},
											File:   "histogram_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   39,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   39,
											},
											File:   "histogram_test.flux",
											Source: "histogram",
											Start: ast.Position{
												Column: 25,
												Line:   39,
											},
										},
									},
									Name: "histogram",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   40,
							},
							File:   "histogram_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.histogram(bins: [-1.0, 0.0, 1.0, 2.0])\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   37,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   40,
									},
									File:   "histogram_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   40,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   40,
										},
										File:   "histogram_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   40,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   40,
											},
											File:   "histogram_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   40,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   40,
											},
											File:   "histogram_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   40,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   40,
												},
												File:   "histogram_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   40,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   40,
												},
												File:   "histogram_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   40,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   40,
								},
								File:   "histogram_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   40,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   40,
									},
									File:   "histogram_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   40,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   36,
							},
							File:   "histogram_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 16,
								Line:   36,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   36,
								},
								File:   "histogram_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 16,
									Line:   36,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   36,
							},
							File:   "histogram_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   36,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 102,
							Line:   43,
						},
						File:   "histogram_test.flux",
						Source: "_histogram = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram})",
						Start: ast.Position{
							Column: 6,
							Line:   42,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 16,
								Line:   42,
							},
							File:   "histogram_test.flux",
							Source: "_histogram",
							Start: ast.Position{
								Column: 6,
								Line:   42,
							},
						},
					},
					Name: "_histogram",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 102,
								Line:   43,
							},
							File:   "histogram_test.flux",
							Source: "() =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram})",
							Start: ast.Position{
								Column: 19,
								Line:   42,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 102,
									Line:   43,
								},
								File:   "histogram_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram})",
								Start: ast.Position{
									Column: 5,
									Line:   43,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 101,
										Line:   43,
									},
									File:   "histogram_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram}",
									Start: ast.Position{
										Column: 6,
										Line:   43,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   43,
										},
										File:   "histogram_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 7,
											Line:   43,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 7,
												Line:   43,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   43,
												},
												File:   "histogram_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 34,
													Line:   43,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 34,
														Line:   43,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 37,
															Line:   43,
														},
														File:   "histogram_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 34,
															Line:   43,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 45,
															Line:   43,
														},
														File:   "histogram_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 39,
															Line:   43,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 14,
												Line:   43,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 33,
													Line:   43,
												},
												File:   "histogram_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 14,
													Line:   43,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 21,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 14,
														Line:   43,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 33,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 22,
														Line:   43,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 83,
											Line:   43,
										},
										File:   "histogram_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 48,
											Line:   43,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 52,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 48,
												Line:   43,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   43,
												},
												File:   "histogram_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 70,
													Line:   43,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 70,
														Line:   43,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   43,
														},
														File:   "histogram_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 70,
															Line:   43,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 82,
															Line:   43,
														},
														File:   "histogram_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 75,
															Line:   43,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 83,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 54,
												Line:   43,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   43,
												},
												File:   "histogram_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 54,
													Line:   43,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 54,
														Line:   43,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 69,
														Line:   43,
													},
													File:   "histogram_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 62,
														Line:   43,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 100,
											Line:   43,
										},
										File:   "histogram_test.flux",
										Source: "fn: t_histogram",
										Start: ast.Position{
											Column: 85,
											Line:   43,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 87,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 85,
												Line:   43,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 100,
												Line:   43,
											},
											File:   "histogram_test.flux",
											Source: "t_histogram",
											Start: ast.Position{
												Column: 89,
												Line:   43,
											},
										},
									},
									Name: "t_histogram",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 102,
						Line:   43,
					},
					File:   "histogram_test.flux",
					Source: "test _histogram = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram})",
					Start: ast.Position{
						Column: 1,
						Line:   42,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "histogram_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "histogram_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "histogram_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "histogram_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "histogram_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "histogram_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "histogram_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   55,
				},
				File:   "integral_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,double\n#group,false,false,false,true,true,false\n#default,_result,,,,,\n,result,table,_time,_measurement,_field,_value\n,,0,2018-05-22T19:53:00Z,_m,FF,1\n,,0,2018-05-22T19:53:10Z,_m,FF,1\n,,0,2018-05-22T19:53:20Z,_m,FF,1\n,,0,2018-05-22T19:53:30Z,_m,FF,1\n,,0,2018-05-22T19:53:40Z,_m,FF,1\n,,0,2018-05-22T19:53:50Z,_m,FF,1\n,,1,2018-05-22T19:53:00Z,_m,QQ,1\n,,1,2018-05-22T19:53:10Z,_m,QQ,1\n,,1,2018-05-22T19:53:20Z,_m,QQ,1\n,,1,2018-05-22T19:53:30Z,_m,QQ,1\n,,1,2018-05-22T19:53:40Z,_m,QQ,1\n,,1,2018-05-22T19:53:50Z,_m,QQ,1\n,,1,2018-05-22T19:54:00Z,_m,QQ,1\n,,1,2018-05-22T19:54:10Z,_m,QQ,1\n,,1,2018-05-22T19:54:20Z,_m,QQ,1\n,,2,2018-05-22T19:53:00Z,_m,RR,1\n,,2,2018-05-22T19:53:10Z,_m,RR,1\n,,2,2018-05-22T19:53:20Z,_m,RR,1\n,,2,2018-05-22T19:53:30Z,_m,RR,1\n,,3,2018-05-22T19:53:40Z,_m,SR,1\n,,3,2018-05-22T19:53:50Z,_m,SR,1\n,,3,2018-05-22T19:54:00Z,_m,SR,1\n\"\noutData =\n    \"\n#datatype,string,long,string,string,double\n#group,false,false,true,true,false\n#default,_result,,,,\n,result,table,_measurement,_field,_value\n,,0,_m,FF,5\n,,1,_m,QQ,8\n,,2,_m,RR,3\n,,3,_m,SR,2\n\"\nt_integral = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> experimental.integral(unit: 10s)\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _integral = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "integral_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "integral_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "integral_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "integral_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "integral_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   37,
					},
					File:   "integral_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,double\n#group,false,false,false,true,true,false\n#default,_result,,,,,\n,result,table,_time,_measurement,_field,_value\n,,0,2018-05-22T19:53:00Z,_m,FF,1\n,,0,2018-05-22T19:53:10Z,_m,FF,1\n,,0,2018-05-22T19:53:20Z,_m,FF,1\n,,0,2018-05-22T19:53:30Z,_m,FF,1\n,,0,2018-05-22T19:53:40Z,_m,FF,1\n,,0,2018-05-22T19:53:50Z,_m,FF,1\n,,1,2018-05-22T19:53:00Z,_m,QQ,1\n,,1,2018-05-22T19:53:10Z,_m,QQ,1\n,,1,2018-05-22T19:53:20Z,_m,QQ,1\n,,1,2018-05-22T19:53:30Z,_m,QQ,1\n,,1,2018-05-22T19:53:40Z,_m,QQ,1\n,,1,2018-05-22T19:53:50Z,_m,QQ,1\n,,1,2018-05-22T19:54:00Z,_m,QQ,1\n,,1,2018-05-22T19:54:10Z,_m,QQ,1\n,,1,2018-05-22T19:54:20Z,_m,QQ,1\n,,2,2018-05-22T19:53:00Z,_m,RR,1\n,,2,2018-05-22T19:53:10Z,_m,RR,1\n,,2,2018-05-22T19:53:20Z,_m,RR,1\n,,2,2018-05-22T19:53:30Z,_m,RR,1\n,,3,2018-05-22T19:53:40Z,_m,SR,1\n,,3,2018-05-22T19:53:50Z,_m,SR,1\n,,3,2018-05-22T19:54:00Z,_m,SR,1\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "integral_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   37,
						},
						File:   "integral_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,double\n#group,false,false,false,true,true,false\n#default,_result,,,,,\n,result,table,_time,_measurement,_field,_value\n,,0,2018-05-22T19:53:00Z,_m,FF,1\n,,0,2018-05-22T19:53:10Z,_m,FF,1\n,,0,2018-05-22T19:53:20Z,_m,FF,1\n,,0,2018-05-22T19:53:30Z,_m,FF,1\n,,0,2018-05-22T19:53:40Z,_m,FF,1\n,,0,2018-05-22T19:53:50Z,_m,FF,1\n,,1,2018-05-22T19:53:00Z,_m,QQ,1\n,,1,2018-05-22T19:53:10Z,_m,QQ,1\n,,1,2018-05-22T19:53:20Z,_m,QQ,1\n,,1,2018-05-22T19:53:30Z,_m,QQ,1\n,,1,2018-05-22T19:53:40Z,_m,QQ,1\n,,1,2018-05-22T19:53:50Z,_m,QQ,1\n,,1,2018-05-22T19:54:00Z,_m,QQ,1\n,,1,2018-05-22T19:54:10Z,_m,QQ,1\n,,1,2018-05-22T19:54:20Z,_m,QQ,1\n,,2,2018-05-22T19:53:00Z,_m,RR,1\n,,2,2018-05-22T19:53:10Z,_m,RR,1\n,,2,2018-05-22T19:53:20Z,_m,RR,1\n,,2,2018-05-22T19:53:30Z,_m,RR,1\n,,3,2018-05-22T19:53:40Z,_m,SR,1\n,,3,2018-05-22T19:53:50Z,_m,SR,1\n,,3,2018-05-22T19:54:00Z,_m,SR,1\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,double\n#group,false,false,false,true,true,false\n#default,_result,,,,,\n,result,table,_time,_measurement,_field,_value\n,,0,2018-05-22T19:53:00Z,_m,FF,1\n,,0,2018-05-22T19:53:10Z,_m,FF,1\n,,0,2018-05-22T19:53:20Z,_m,FF,1\n,,0,2018-05-22T19:53:30Z,_m,FF,1\n,,0,2018-05-22T19:53:40Z,_m,FF,1\n,,0,2018-05-22T19:53:50Z,_m,FF,1\n,,1,2018-05-22T19:53:00Z,_m,QQ,1\n,,1,2018-05-22T19:53:10Z,_m,QQ,1\n,,1,2018-05-22T19:53:20Z,_m,QQ,1\n,,1,2018-05-22T19:53:30Z,_m,QQ,1\n,,1,2018-05-22T19:53:40Z,_m,QQ,1\n,,1,2018-05-22T19:53:50Z,_m,QQ,1\n,,1,2018-05-22T19:54:00Z,_m,QQ,1\n,,1,2018-05-22T19:54:10Z,_m,QQ,1\n,,1,2018-05-22T19:54:20Z,_m,QQ,1\n,,2,2018-05-22T19:53:00Z,_m,RR,1\n,,2,2018-05-22T19:53:10Z,_m,RR,1\n,,2,2018-05-22T19:53:20Z,_m,RR,1\n,,2,2018-05-22T19:53:30Z,_m,RR,1\n,,3,2018-05-22T19:53:40Z,_m,SR,1\n,,3,2018-05-22T19:53:50Z,_m,SR,1\n,,3,2018-05-22T19:54:00Z,_m,SR,1\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   48,
					},
					File:   "integral_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,string,string,double\n#group,false,false,true,true,false\n#default,_result,,,,\n,result,table,_measurement,_field,_value\n,,0,_m,FF,5\n,,1,_m,QQ,8\n,,2,_m,RR,3\n,,3,_m,SR,2\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   38,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   38,
						},
						File:   "integral_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   38,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   48,
						},
						File:   "integral_test.flux",
						Source: "\"\n#datatype,string,long,string,string,double\n#group,false,false,true,true,false\n#default,_result,,,,\n,result,table,_measurement,_field,_value\n,,0,_m,FF,5\n,,1,_m,QQ,8\n,,2,_m,RR,3\n,,3,_m,SR,2\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   39,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,double\n#group,false,false,true,true,false\n#default,_result,,,,\n,result,table,_measurement,_field,_value\n,,0,_m,FF,5\n,,1,_m,QQ,8\n,,2,_m,RR,3\n,,3,_m,SR,2\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   53,
					},
					File:   "integral_test.flux",
					Source: "t_integral = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> experimental.integral(unit: 10s)\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   49,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   49,
						},
						File:   "integral_test.flux",
						Source: "t_integral",
						Start: ast.Position{
							Column: 1,
							Line:   49,
						},
					},
				},
				Name: "t_integral",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   53,
						},
						File:   "integral_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> experimental.integral(unit: 10s)\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 14,
							Line:   49,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   50,
										},
										File:   "integral_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   50,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 74,
										Line:   51,
									},
									File:   "integral_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   50,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   51,
											},
											File:   "integral_test.flux",
											Source: "start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   51,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   51,
												},
												File:   "integral_test.flux",
												Source: "start: 2018-05-22T19:53:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   51,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   51,
													},
													File:   "integral_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   51,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   51,
													},
													File:   "integral_test.flux",
													Source: "2018-05-22T19:53:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   51,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T19:53:00Z"),
										},
									}, &ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 73,
													Line:   51,
												},
												File:   "integral_test.flux",
												Source: "stop: 2018-05-22T19:55:00Z",
												Start: ast.Position{
													Column: 47,
													Line:   51,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 51,
														Line:   51,
													},
													File:   "integral_test.flux",
													Source: "stop",
													Start: ast.Position{
														Column: 47,
														Line:   51,
													},
												},
											},
											Name: "stop",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 73,
														Line:   51,
													},
													File:   "integral_test.flux",
													Source: "2018-05-22T19:55:00Z",
													Start: ast.Position{
														Column: 53,
														Line:   51,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T19:55:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 74,
											Line:   51,
										},
										File:   "integral_test.flux",
										Source: "range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   51,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   51,
											},
											File:   "integral_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   51,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 44,
									Line:   52,
								},
								File:   "integral_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> experimental.integral(unit: 10s)",
								Start: ast.Position{
									Column: 5,
									Line:   50,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 43,
											Line:   52,
										},
										File:   "integral_test.flux",
										Source: "unit: 10s",
										Start: ast.Position{
											Column: 34,
											Line:   52,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 43,
												Line:   52,
											},
											File:   "integral_test.flux",
											Source: "unit: 10s",
											Start: ast.Position{
												Column: 34,
												Line:   52,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 38,
													Line:   52,
												},
												File:   "integral_test.flux",
												Source: "unit",
												Start: ast.Position{
													Column: 34,
													Line:   52,
												},
											},
										},
										Name: "unit",
									},
									Separator: nil,
									Value: &ast.DurationLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 43,
													Line:   52,
												},
												File:   "integral_test.flux",
												Source: "10s",
												Start: ast.Position{
													Column: 40,
													Line:   52,
												},
											},
										},
										Values: []ast.Duration{ast.Duration{
											Magnitude: int64(10),
											Unit:      "s",
										}},
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 44,
										Line:   52,
									},
									File:   "integral_test.flux",
									Source: "experimental.integral(unit: 10s)",
									Start: ast.Position{
										Column: 12,
										Line:   52,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   52,
										},
										File:   "integral_test.flux",
										Source: "experimental.integral",
										Start: ast.Position{
											Column: 12,
											Line:   52,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   52,
											},
											File:   "integral_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   52,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   52,
											},
											File:   "integral_test.flux",
											Source: "integral",
											Start: ast.Position{
												Column: 25,
												Line:   52,
											},
										},
									},
									Name: "integral",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   53,
							},
							File:   "integral_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> experimental.integral(unit: 10s)\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   50,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   53,
									},
									File:   "integral_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   53,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   53,
										},
										File:   "integral_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   53,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   53,
											},
											File:   "integral_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   53,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   53,
											},
											File:   "integral_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   53,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   53,
												},
												File:   "integral_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   53,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   53,
												},
												File:   "integral_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   53,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   53,
								},
								File:   "integral_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   53,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   53,
									},
									File:   "integral_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   53,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   49,
							},
							File:   "integral_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 15,
								Line:   49,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 20,
									Line:   49,
								},
								File:   "integral_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 15,
									Line:   49,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   49,
							},
							File:   "integral_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 21,
								Line:   49,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   55,
						},
						File:   "integral_test.flux",
						Source: "_integral = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral})",
						Start: ast.Position{
							Column: 6,
							Line:   55,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   55,
							},
							File:   "integral_test.flux",
							Source: "_integral",
							Start: ast.Position{
								Column: 6,
								Line:   55,
							},
						},
					},
					Name: "_integral",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   55,
							},
							File:   "integral_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral})",
							Start: ast.Position{
								Column: 18,
								Line:   55,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   55,
								},
								File:   "integral_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral})",
								Start: ast.Position{
									Column: 24,
									Line:   55,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   55,
									},
									File:   "integral_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral}",
									Start: ast.Position{
										Column: 25,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   55,
										},
										File:   "integral_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   55,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 64,
													Line:   55,
												},
												File:   "integral_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   55,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   55,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   55,
														},
														File:   "integral_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   55,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   55,
														},
														File:   "integral_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   55,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   55,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   55,
												},
												File:   "integral_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   55,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   55,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   55,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 102,
											Line:   55,
										},
										File:   "integral_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   55,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 101,
													Line:   55,
												},
												File:   "integral_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   55,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   55,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   55,
														},
														File:   "integral_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   55,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   55,
														},
														File:   "integral_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   55,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   55,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   55,
												},
												File:   "integral_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   55,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   55,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   55,
													},
													File:   "integral_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   55,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 118,
											Line:   55,
										},
										File:   "integral_test.flux",
										Source: "fn: t_integral",
										Start: ast.Position{
											Column: 104,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   55,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   55,
											},
											File:   "integral_test.flux",
											Source: "t_integral",
											Start: ast.Position{
												Column: 108,
												Line:   55,
											},
										},
									},
									Name: "t_integral",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 120,
						Line:   55,
					},
					File:   "integral_test.flux",
					Source: "test _integral = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_integral})",
					Start: ast.Position{
						Column: 1,
						Line:   55,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "integral_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "integral_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "integral_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "integral_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "integral_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "integral_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "integral_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 103,
					Line:   67,
				},
				File:   "join_right_side_more_cols_test.flux",
				Source: "package experimental_test\n\n\nimport \"experimental\"\nimport \"influxdata/influxdb/v1\"\nimport \"testing\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,false,false\n#default,_result,,,,,,,\n,result,table,_field,_measurement,cpu,host,_value,_time\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:18:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:44.191958Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,94.62634341438049,2020-10-09T22:18:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,92.28242486302014,2020-10-09T22:19:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,91.15346397579125,2020-10-09T22:19:44.191958Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.0994751312170705,2020-10-09T22:18:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.5586762674700636,2020-10-09T22:19:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.6547010580713986,2020-10-09T22:19:44.191958Z\n\n#datatype,string,long,string,string,string,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,,\n,result,table,_field,_measurement,device,fstype,host,mode,path,_value,_time\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333294,2020-10-09T22:18:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333286,2020-10-09T22:19:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333253.4,2020-10-09T22:19:44.191958Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:18:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:44.191958Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119546,2020-10-09T22:18:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119554,2020-10-09T22:19:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119586.6,2020-10-09T22:19:44.191958Z\n\"\noutData =\n    \"\n#group,false,false,true,false,false,false,false,false,false,false,false,false\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,double,double,double\n#default,want,,,,,,,,,,,\n,result,table,host,_measurement,_start,_stop,_time,cpu,inodes_free,usage_guest,usage_idle,usage_system\n,,0,ip-192-168-1-16.ec2.internal,cpu,2020-10-01T00:00:00Z,2030-01-01T00:00:00Z,2020-10-09T22:20:00Z,cpu-total,4878333253.4,0,91.15346397579125,2.6547010580713986\n\"\njoin_test_fn = (table=<-) => {\n    bounded_stream = table |> range(start: 2020-10-01T00:00:00Z)\n    a =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n    b =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))\n}\n\ntest experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   8,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   8,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   8,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   8,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   8,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   8,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   8,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   8,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   8,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,false,false\n#default,_result,,,,,,,\n,result,table,_field,_measurement,cpu,host,_value,_time\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:18:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:44.191958Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,94.62634341438049,2020-10-09T22:18:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,92.28242486302014,2020-10-09T22:19:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,91.15346397579125,2020-10-09T22:19:44.191958Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.0994751312170705,2020-10-09T22:18:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.5586762674700636,2020-10-09T22:19:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.6547010580713986,2020-10-09T22:19:44.191958Z\n\n#datatype,string,long,string,string,string,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,,\n,result,table,_field,_measurement,device,fstype,host,mode,path,_value,_time\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333294,2020-10-09T22:18:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333286,2020-10-09T22:19:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333253.4,2020-10-09T22:19:44.191958Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:18:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:44.191958Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119546,2020-10-09T22:18:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119554,2020-10-09T22:19:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119586.6,2020-10-09T22:19:44.191958Z\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   10,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   10,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   10,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,false,false\n#default,_result,,,,,,,\n,result,table,_field,_measurement,cpu,host,_value,_time\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:18:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:44.191958Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,94.62634341438049,2020-10-09T22:18:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,92.28242486302014,2020-10-09T22:19:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,91.15346397579125,2020-10-09T22:19:44.191958Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.0994751312170705,2020-10-09T22:18:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.5586762674700636,2020-10-09T22:19:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.6547010580713986,2020-10-09T22:19:44.191958Z\n\n#datatype,string,long,string,string,string,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,,\n,result,table,_field,_measurement,device,fstype,host,mode,path,_value,_time\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333294,2020-10-09T22:18:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333286,2020-10-09T22:19:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333253.4,2020-10-09T22:19:44.191958Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:18:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:44.191958Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119546,2020-10-09T22:18:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119554,2020-10-09T22:19:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119586.6,2020-10-09T22:19:44.191958Z\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   11,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,false,false\n#default,_result,,,,,,,\n,result,table,_field,_measurement,cpu,host,_value,_time\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:18:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:00Z\n,,0,usage_guest,cpu,cpu-total,ip-192-168-1-16.ec2.internal,0,2020-10-09T22:19:44.191958Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,94.62634341438049,2020-10-09T22:18:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,92.28242486302014,2020-10-09T22:19:00Z\n,,1,usage_idle,cpu,cpu-total,ip-192-168-1-16.ec2.internal,91.15346397579125,2020-10-09T22:19:44.191958Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.0994751312170705,2020-10-09T22:18:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.5586762674700636,2020-10-09T22:19:00Z\n,,2,usage_system,cpu,cpu-total,ip-192-168-1-16.ec2.internal,2.6547010580713986,2020-10-09T22:19:44.191958Z\n\n#datatype,string,long,string,string,string,string,string,string,string,double,dateTime:RFC3339\n#group,false,false,true,true,true,true,true,true,true,false,false\n#default,_result,,,,,,,,,,\n,result,table,_field,_measurement,device,fstype,host,mode,path,_value,_time\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333294,2020-10-09T22:18:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333286,2020-10-09T22:19:00Z\n,,3,inodes_free,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4878333253.4,2020-10-09T22:19:44.191958Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:18:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:00Z\n,,4,inodes_total,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4882452840,2020-10-09T22:19:44.191958Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119546,2020-10-09T22:18:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119554,2020-10-09T22:19:00Z\n,,5,inodes_used,disk,disk1s1,apfs,ip-192-168-1-16.ec2.internal,rw,/System/Volumes/Data,4119586.6,2020-10-09T22:19:44.191958Z\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   47,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "outData =\n    \"\n#group,false,false,true,false,false,false,false,false,false,false,false,false\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,double,double,double\n#default,want,,,,,,,,,,,\n,result,table,host,_measurement,_start,_stop,_time,cpu,inodes_free,usage_guest,usage_idle,usage_system\n,,0,ip-192-168-1-16.ec2.internal,cpu,2020-10-01T00:00:00Z,2030-01-01T00:00:00Z,2020-10-09T22:20:00Z,cpu-total,4878333253.4,0,91.15346397579125,2.6547010580713986\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   40,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   47,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "\"\n#group,false,false,true,false,false,false,false,false,false,false,false,false\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,double,double,double\n#default,want,,,,,,,,,,,\n,result,table,host,_measurement,_start,_stop,_time,cpu,inodes_free,usage_guest,usage_idle,usage_system\n,,0,ip-192-168-1-16.ec2.internal,cpu,2020-10-01T00:00:00Z,2030-01-01T00:00:00Z,2020-10-09T22:20:00Z,cpu-total,4878333253.4,0,91.15346397579125,2.6547010580713986\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   41,
						},
					},
				},
				Value: "\n#group,false,false,true,false,false,false,false,false,false,false,false,false\n#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,double,double,double,double\n#default,want,,,,,,,,,,,\n,result,table,host,_measurement,_start,_stop,_time,cpu,inodes_free,usage_guest,usage_idle,usage_system\n,,0,ip-192-168-1-16.ec2.internal,cpu,2020-10-01T00:00:00Z,2030-01-01T00:00:00Z,2020-10-09T22:20:00Z,cpu-total,4878333253.4,0,91.15346397579125,2.6547010580713986\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   64,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "join_test_fn = (table=<-) => {\n    bounded_stream = table |> range(start: 2020-10-01T00:00:00Z)\n    a =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n    b =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))\n}",
					Start: ast.Position{
						Column: 1,
						Line:   48,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   48,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "join_test_fn",
						Start: ast.Position{
							Column: 1,
							Line:   48,
						},
					},
				},
				Name: "join_test_fn",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   64,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "(table=<-) => {\n    bounded_stream = table |> range(start: 2020-10-01T00:00:00Z)\n    a =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n    b =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))\n}",
						Start: ast.Position{
							Column: 16,
							Line:   48,
						},
					},
				},
				Body: &ast.Block{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 2,
								Line:   64,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "{\n    bounded_stream = table |> range(start: 2020-10-01T00:00:00Z)\n    a =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n    b =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))\n}",
							Start: ast.Position{
								Column: 30,
								Line:   48,
							},
						},
					},
					Body: []ast.Statement{&ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 65,
									Line:   49,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "bounded_stream = table |> range(start: 2020-10-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   49,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 19,
										Line:   49,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "bounded_stream",
									Start: ast.Position{
										Column: 5,
										Line:   49,
									},
								},
							},
							Name: "bounded_stream",
						},
						Init: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   49,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 22,
											Line:   49,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 65,
										Line:   49,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "table |> range(start: 2020-10-01T00:00:00Z)",
									Start: ast.Position{
										Column: 22,
										Line:   49,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 64,
												Line:   49,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "start: 2020-10-01T00:00:00Z",
											Start: ast.Position{
												Column: 37,
												Line:   49,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 64,
													Line:   49,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "start: 2020-10-01T00:00:00Z",
												Start: ast.Position{
													Column: 37,
													Line:   49,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 42,
														Line:   49,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 37,
														Line:   49,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   49,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "2020-10-01T00:00:00Z",
													Start: ast.Position{
														Column: 44,
														Line:   49,
													},
												},
											},
											Value: parser.MustParseTime("2020-10-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   49,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "range(start: 2020-10-01T00:00:00Z)",
										Start: ast.Position{
											Column: 31,
											Line:   49,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 36,
												Line:   49,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 31,
												Line:   49,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
					}, &ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   55,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "a =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])",
								Start: ast.Position{
									Column: 5,
									Line:   50,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 6,
										Line:   50,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "a",
									Start: ast.Position{
										Column: 5,
										Line:   50,
									},
								},
							},
							Name: "a",
						},
						Init: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.PipeExpression{
									Argument: &ast.PipeExpression{
										Argument: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   51,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "bounded_stream",
													Start: ast.Position{
														Column: 9,
														Line:   51,
													},
												},
											},
											Name: "bounded_stream",
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 58,
													Line:   52,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")",
												Start: ast.Position{
													Column: 9,
													Line:   51,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: []ast.Expression{&ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 57,
															Line:   52,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "fn: (r) => r._measurement == \"cpu\"",
														Start: ast.Position{
															Column: 23,
															Line:   52,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 57,
																Line:   52,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "fn: (r) => r._measurement == \"cpu\"",
															Start: ast.Position{
																Column: 23,
																Line:   52,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   52,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "fn",
																Start: ast.Position{
																	Column: 23,
																	Line:   52,
																},
															},
														},
														Name: "fn",
													},
													Separator: nil,
													Value: &ast.FunctionExpression{
														Arrow: nil,
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 57,
																	Line:   52,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "(r) => r._measurement == \"cpu\"",
																Start: ast.Position{
																	Column: 27,
																	Line:   52,
																},
															},
														},
														Body: &ast.BinaryExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 57,
																		Line:   52,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "r._measurement == \"cpu\"",
																	Start: ast.Position{
																		Column: 34,
																		Line:   52,
																	},
																},
															},
															Left: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 48,
																			Line:   52,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 34,
																			Line:   52,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 35,
																				Line:   52,
																			},
																			File:   "join_right_side_more_cols_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 34,
																				Line:   52,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 48,
																				Line:   52,
																			},
																			File:   "join_right_side_more_cols_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 36,
																				Line:   52,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															Operator: 17,
															Right: &ast.StringLiteral{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 57,
																			Line:   52,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "\"cpu\"",
																		Start: ast.Position{
																			Column: 52,
																			Line:   52,
																		},
																	},
																},
																Value: "cpu",
															},
														},
														Lparen: nil,
														Params: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 29,
																		Line:   52,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 28,
																		Line:   52,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 29,
																			Line:   52,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 28,
																			Line:   52,
																		},
																	},
																},
																Name: "r",
															},
															Separator: nil,
															Value:     nil,
														}},
														Rparan: nil,
													},
												}},
												Rbrace: nil,
												With:   nil,
											}},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 58,
														Line:   52,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "filter(fn: (r) => r._measurement == \"cpu\")",
													Start: ast.Position{
														Column: 16,
														Line:   52,
													},
												},
											},
											Callee: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 22,
															Line:   52,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "filter",
														Start: ast.Position{
															Column: 16,
															Line:   52,
														},
													},
												},
												Name: "filter",
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 72,
												Line:   53,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)",
											Start: ast.Position{
												Column: 9,
												Line:   51,
											},
										},
									},
									Call: &ast.CallExpression{
										Arguments: []ast.Expression{&ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 71,
														Line:   53,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "fn: last, every: 5m, createEmpty: false",
													Start: ast.Position{
														Column: 32,
														Line:   53,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   53,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "fn: last",
														Start: ast.Position{
															Column: 32,
															Line:   53,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 34,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "fn",
															Start: ast.Position{
																Column: 32,
																Line:   53,
															},
														},
													},
													Name: "fn",
												},
												Separator: nil,
												Value: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 40,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "last",
															Start: ast.Position{
																Column: 36,
																Line:   53,
															},
														},
													},
													Name: "last",
												},
											}, &ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   53,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "every: 5m",
														Start: ast.Position{
															Column: 42,
															Line:   53,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 47,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "every",
															Start: ast.Position{
																Column: 42,
																Line:   53,
															},
														},
													},
													Name: "every",
												},
												Separator: nil,
												Value: &ast.DurationLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 51,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "5m",
															Start: ast.Position{
																Column: 49,
																Line:   53,
															},
														},
													},
													Values: []ast.Duration{ast.Duration{
														Magnitude: int64(5),
														Unit:      "m",
													}},
												},
											}, &ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 71,
															Line:   53,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "createEmpty: false",
														Start: ast.Position{
															Column: 53,
															Line:   53,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 64,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "createEmpty",
															Start: ast.Position{
																Column: 53,
																Line:   53,
															},
														},
													},
													Name: "createEmpty",
												},
												Separator: nil,
												Value: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 71,
																Line:   53,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "false",
															Start: ast.Position{
																Column: 66,
																Line:   53,
															},
														},
													},
													Name: "false",
												},
											}},
											Rbrace: nil,
											With:   nil,
										}},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 72,
													Line:   53,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "aggregateWindow(fn: last, every: 5m, createEmpty: false)",
												Start: ast.Position{
													Column: 16,
													Line:   53,
												},
											},
										},
										Callee: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   53,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "aggregateWindow",
													Start: ast.Position{
														Column: 16,
														Line:   53,
													},
												},
											},
											Name: "aggregateWindow",
										},
										Lparen: nil,
										Rparen: nil,
									},
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   54,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()",
										Start: ast.Position{
											Column: 9,
											Line:   51,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   54,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "v1.fieldsAsCols()",
											Start: ast.Position{
												Column: 16,
												Line:   54,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 31,
													Line:   54,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "v1.fieldsAsCols",
												Start: ast.Position{
													Column: 16,
													Line:   54,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   54,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "v1",
													Start: ast.Position{
														Column: 16,
														Line:   54,
													},
												},
											},
											Name: "v1",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   54,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "fieldsAsCols",
													Start: ast.Position{
														Column: 19,
														Line:   54,
													},
												},
											},
											Name: "fieldsAsCols",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 40,
										Line:   55,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"cpu\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])",
									Start: ast.Position{
										Column: 9,
										Line:   51,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   55,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "columns: [\"host\"]",
											Start: ast.Position{
												Column: 22,
												Line:   55,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 39,
													Line:   55,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "columns: [\"host\"]",
												Start: ast.Position{
													Column: 22,
													Line:   55,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 29,
														Line:   55,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 22,
														Line:   55,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 39,
														Line:   55,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "[\"host\"]",
													Start: ast.Position{
														Column: 31,
														Line:   55,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 38,
															Line:   55,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "\"host\"",
														Start: ast.Position{
															Column: 32,
															Line:   55,
														},
													},
												},
												Value: "host",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 40,
											Line:   55,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "group(columns: [\"host\"])",
										Start: ast.Position{
											Column: 16,
											Line:   55,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 21,
												Line:   55,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "group",
											Start: ast.Position{
												Column: 16,
												Line:   55,
											},
										},
									},
									Name: "group",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
					}, &ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   61,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "b =\n        bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])",
								Start: ast.Position{
									Column: 5,
									Line:   56,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 6,
										Line:   56,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "b",
									Start: ast.Position{
										Column: 5,
										Line:   56,
									},
								},
							},
							Name: "b",
						},
						Init: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.PipeExpression{
									Argument: &ast.PipeExpression{
										Argument: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   57,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "bounded_stream",
													Start: ast.Position{
														Column: 9,
														Line:   57,
													},
												},
											},
											Name: "bounded_stream",
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   58,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")",
												Start: ast.Position{
													Column: 9,
													Line:   57,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: []ast.Expression{&ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 58,
															Line:   58,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "fn: (r) => r._measurement == \"disk\"",
														Start: ast.Position{
															Column: 23,
															Line:   58,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 58,
																Line:   58,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "fn: (r) => r._measurement == \"disk\"",
															Start: ast.Position{
																Column: 23,
																Line:   58,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   58,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "fn",
																Start: ast.Position{
																	Column: 23,
																	Line:   58,
																},
															},
														},
														Name: "fn",
													},
													Separator: nil,
													Value: &ast.FunctionExpression{
														Arrow: nil,
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 58,
																	Line:   58,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "(r) => r._measurement == \"disk\"",
																Start: ast.Position{
																	Column: 27,
																	Line:   58,
																},
															},
														},
														Body: &ast.BinaryExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 58,
																		Line:   58,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "r._measurement == \"disk\"",
																	Start: ast.Position{
																		Column: 34,
																		Line:   58,
																	},
																},
															},
															Left: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 48,
																			Line:   58,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 34,
																			Line:   58,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 35,
																				Line:   58,
																			},
																			File:   "join_right_side_more_cols_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 34,
																				Line:   58,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 48,
																				Line:   58,
																			},
																			File:   "join_right_side_more_cols_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 36,
																				Line:   58,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															Operator: 17,
															Right: &ast.StringLiteral{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 58,
																			Line:   58,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "\"disk\"",
																		Start: ast.Position{
																			Column: 52,
																			Line:   58,
																		},
																	},
																},
																Value: "disk",
															},
														},
														Lparen: nil,
														Params: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 29,
																		Line:   58,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 28,
																		Line:   58,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 29,
																			Line:   58,
																		},
																		File:   "join_right_side_more_cols_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 28,
																			Line:   58,
																		},
																	},
																},
																Name: "r",
															},
															Separator: nil,
															Value:     nil,
														}},
														Rparan: nil,
													},
												}},
												Rbrace: nil,
												With:   nil,
											}},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   58,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "filter(fn: (r) => r._measurement == \"disk\")",
													Start: ast.Position{
														Column: 16,
														Line:   58,
													},
												},
											},
											Callee: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 22,
															Line:   58,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "filter",
														Start: ast.Position{
															Column: 16,
															Line:   58,
														},
													},
												},
												Name: "filter",
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 72,
												Line:   59,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)",
											Start: ast.Position{
												Column: 9,
												Line:   57,
											},
										},
									},
									Call: &ast.CallExpression{
										Arguments: []ast.Expression{&ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 71,
														Line:   59,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "fn: last, every: 5m, createEmpty: false",
													Start: ast.Position{
														Column: 32,
														Line:   59,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   59,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "fn: last",
														Start: ast.Position{
															Column: 32,
															Line:   59,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 34,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "fn",
															Start: ast.Position{
																Column: 32,
																Line:   59,
															},
														},
													},
													Name: "fn",
												},
												Separator: nil,
												Value: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 40,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "last",
															Start: ast.Position{
																Column: 36,
																Line:   59,
															},
														},
													},
													Name: "last",
												},
											}, &ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   59,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "every: 5m",
														Start: ast.Position{
															Column: 42,
															Line:   59,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 47,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "every",
															Start: ast.Position{
																Column: 42,
																Line:   59,
															},
														},
													},
													Name: "every",
												},
												Separator: nil,
												Value: &ast.DurationLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 51,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "5m",
															Start: ast.Position{
																Column: 49,
																Line:   59,
															},
														},
													},
													Values: []ast.Duration{ast.Duration{
														Magnitude: int64(5),
														Unit:      "m",
													}},
												},
											}, &ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 71,
															Line:   59,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "createEmpty: false",
														Start: ast.Position{
															Column: 53,
															Line:   59,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 64,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "createEmpty",
															Start: ast.Position{
																Column: 53,
																Line:   59,
															},
														},
													},
													Name: "createEmpty",
												},
												Separator: nil,
												Value: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 71,
																Line:   59,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "false",
															Start: ast.Position{
																Column: 66,
																Line:   59,
															},
														},
													},
													Name: "false",
												},
											}},
											Rbrace: nil,
											With:   nil,
										}},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 72,
													Line:   59,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "aggregateWindow(fn: last, every: 5m, createEmpty: false)",
												Start: ast.Position{
													Column: 16,
													Line:   59,
												},
											},
										},
										Callee: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   59,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "aggregateWindow",
													Start: ast.Position{
														Column: 16,
														Line:   59,
													},
												},
											},
											Name: "aggregateWindow",
										},
										Lparen: nil,
										Rparen: nil,
									},
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   60,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()",
										Start: ast.Position{
											Column: 9,
											Line:   57,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   60,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "v1.fieldsAsCols()",
											Start: ast.Position{
												Column: 16,
												Line:   60,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 31,
													Line:   60,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "v1.fieldsAsCols",
												Start: ast.Position{
													Column: 16,
													Line:   60,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   60,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "v1",
													Start: ast.Position{
														Column: 16,
														Line:   60,
													},
												},
											},
											Name: "v1",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   60,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "fieldsAsCols",
													Start: ast.Position{
														Column: 19,
														Line:   60,
													},
												},
											},
											Name: "fieldsAsCols",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 40,
										Line:   61,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "bounded_stream\n            |> filter(fn: (r) => r._measurement == \"disk\")\n            |> aggregateWindow(fn: last, every: 5m, createEmpty: false)\n            |> v1.fieldsAsCols()\n            |> group(columns: [\"host\"])",
									Start: ast.Position{
										Column: 9,
										Line:   57,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   61,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "columns: [\"host\"]",
											Start: ast.Position{
												Column: 22,
												Line:   61,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 39,
													Line:   61,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "columns: [\"host\"]",
												Start: ast.Position{
													Column: 22,
													Line:   61,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 29,
														Line:   61,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 22,
														Line:   61,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 39,
														Line:   61,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "[\"host\"]",
													Start: ast.Position{
														Column: 31,
														Line:   61,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 38,
															Line:   61,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "\"host\"",
														Start: ast.Position{
															Column: 32,
															Line:   61,
														},
													},
												},
												Value: "host",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 40,
											Line:   61,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "group(columns: [\"host\"])",
										Start: ast.Position{
											Column: 16,
											Line:   61,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 21,
												Line:   61,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "group",
											Start: ast.Position{
												Column: 16,
												Line:   61,
											},
										},
									},
									Name: "group",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
					}, &ast.ReturnStatement{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   63,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free})",
										Start: ast.Position{
											Column: 30,
											Line:   63,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 37,
												Line:   63,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "left: a",
											Start: ast.Position{
												Column: 30,
												Line:   63,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 34,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "left",
												Start: ast.Position{
													Column: 30,
													Line:   63,
												},
											},
										},
										Name: "left",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 37,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "a",
												Start: ast.Position{
													Column: 36,
													Line:   63,
												},
											},
										},
										Name: "a",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 47,
												Line:   63,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "right: b",
											Start: ast.Position{
												Column: 39,
												Line:   63,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "right",
												Start: ast.Position{
													Column: 39,
													Line:   63,
												},
											},
										},
										Name: "right",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "b",
												Start: ast.Position{
													Column: 46,
													Line:   63,
												},
											},
										},
										Name: "b",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   63,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "fn: (left, right) => ({left with inodes_free: right.inodes_free})",
											Start: ast.Position{
												Column: 49,
												Line:   63,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 49,
													Line:   63,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 114,
													Line:   63,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "(left, right) => ({left with inodes_free: right.inodes_free})",
												Start: ast.Position{
													Column: 53,
													Line:   63,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 114,
														Line:   63,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "({left with inodes_free: right.inodes_free})",
													Start: ast.Position{
														Column: 70,
														Line:   63,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 113,
															Line:   63,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "{left with inodes_free: right.inodes_free}",
														Start: ast.Position{
															Column: 71,
															Line:   63,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 112,
																Line:   63,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "inodes_free: right.inodes_free",
															Start: ast.Position{
																Column: 82,
																Line:   63,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 93,
																	Line:   63,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "inodes_free",
																Start: ast.Position{
																	Column: 82,
																	Line:   63,
																},
															},
														},
														Name: "inodes_free",
													},
													Separator: nil,
													Value: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 112,
																	Line:   63,
																},
																File:   "join_right_side_more_cols_test.flux",
																Source: "right.inodes_free",
																Start: ast.Position{
																	Column: 95,
																	Line:   63,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 100,
																		Line:   63,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "right",
																	Start: ast.Position{
																		Column: 95,
																		Line:   63,
																	},
																},
															},
															Name: "right",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 112,
																		Line:   63,
																	},
																	File:   "join_right_side_more_cols_test.flux",
																	Source: "inodes_free",
																	Start: ast.Position{
																		Column: 101,
																		Line:   63,
																	},
																},
															},
															Name: "inodes_free",
														},
														Rbrack: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 76,
																Line:   63,
															},
															File:   "join_right_side_more_cols_test.flux",
															Source: "left",
															Start: ast.Position{
																Column: 72,
																Line:   63,
															},
														},
													},
													Name: "left",
												},
											},
											Lparen: nil,
											Rparen: nil,
										},
										Lparen: nil,
										Params: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 58,
														Line:   63,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "left",
													Start: ast.Position{
														Column: 54,
														Line:   63,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 58,
															Line:   63,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "left",
														Start: ast.Position{
															Column: 54,
															Line:   63,
														},
													},
												},
												Name: "left",
											},
											Separator: nil,
											Value:     nil,
										}, &ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 65,
														Line:   63,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "right",
													Start: ast.Position{
														Column: 60,
														Line:   63,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 65,
															Line:   63,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "right",
														Start: ast.Position{
															Column: 60,
															Line:   63,
														},
													},
												},
												Name: "right",
											},
											Separator: nil,
											Value:     nil,
										}},
										Rparan: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   63,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))",
									Start: ast.Position{
										Column: 12,
										Line:   63,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   63,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "experimental.join",
										Start: ast.Position{
											Column: 12,
											Line:   63,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   63,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   63,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   63,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "join",
											Start: ast.Position{
												Column: 25,
												Line:   63,
											},
										},
									},
									Name: "join",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 115,
									Line:   63,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "return experimental.join(left: a, right: b, fn: (left, right) => ({left with inodes_free: right.inodes_free}))",
								Start: ast.Position{
									Column: 5,
									Line:   63,
								},
							},
						},
					}},
					Lbrace: nil,
					Rbrace: nil,
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   48,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 17,
								Line:   48,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 22,
									Line:   48,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 17,
									Line:   48,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   48,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 23,
								Line:   48,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 103,
							Line:   67,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
						Start: ast.Position{
							Column: 6,
							Line:   66,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   66,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "experimental_join",
							Start: ast.Position{
								Column: 6,
								Line:   66,
							},
						},
					},
					Name: "experimental_join",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 103,
								Line:   67,
							},
							File:   "join_right_side_more_cols_test.flux",
							Source: "() =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
							Start: ast.Position{
								Column: 26,
								Line:   66,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 103,
									Line:   67,
								},
								File:   "join_right_side_more_cols_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
								Start: ast.Position{
									Column: 5,
									Line:   67,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 102,
										Line:   67,
									},
									File:   "join_right_side_more_cols_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn}",
									Start: ast.Position{
										Column: 6,
										Line:   67,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   67,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 7,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 7,
												Line:   67,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   67,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 34,
													Line:   67,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 34,
														Line:   67,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 37,
															Line:   67,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 34,
															Line:   67,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 45,
															Line:   67,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 39,
															Line:   67,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 14,
												Line:   67,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 33,
													Line:   67,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 14,
													Line:   67,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 21,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 14,
														Line:   67,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 33,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 22,
														Line:   67,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 83,
											Line:   67,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 48,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 52,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 48,
												Line:   67,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   67,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 70,
													Line:   67,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 70,
														Line:   67,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   67,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 70,
															Line:   67,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 82,
															Line:   67,
														},
														File:   "join_right_side_more_cols_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 75,
															Line:   67,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 83,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 54,
												Line:   67,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   67,
												},
												File:   "join_right_side_more_cols_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 54,
													Line:   67,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 54,
														Line:   67,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 69,
														Line:   67,
													},
													File:   "join_right_side_more_cols_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 62,
														Line:   67,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 101,
											Line:   67,
										},
										File:   "join_right_side_more_cols_test.flux",
										Source: "fn: join_test_fn",
										Start: ast.Position{
											Column: 85,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 87,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 85,
												Line:   67,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   67,
											},
											File:   "join_right_side_more_cols_test.flux",
											Source: "join_test_fn",
											Start: ast.Position{
												Column: 89,
												Line:   67,
											},
										},
									},
									Name: "join_test_fn",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 103,
						Line:   67,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "test experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
					Start: ast.Position{
						Column: 1,
						Line:   66,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   4,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   4,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "experimental",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 32,
						Line:   5,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "import \"influxdata/influxdb/v1\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 32,
							Line:   5,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "\"influxdata/influxdb/v1\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "influxdata/influxdb/v1",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   6,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   6,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Value: "testing",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "join_right_side_more_cols_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "join_right_side_more_cols_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "join_right_side_more_cols_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 103,
					Line:   108,
				},
				File:   "join_test.flux",
				Source: "package experimental_test\n\n\nimport \"experimental\"\nimport \"testing\"\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"\njoin_test_fn = (table=<-) => {\n    a =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})\n    b =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}\n\ntest experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   76,
					},
					File:   "join_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   7,
						},
						File:   "join_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   7,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   76,
						},
						File:   "join_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   8,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,0,2018-12-19T22:13:30Z,_m,a,t,1\n,,0,2018-12-19T22:13:40Z,_m,a,t,2\n,,0,2018-12-19T22:13:50Z,_m,a,t,3\n,,0,2018-12-19T22:14:00Z,_m,a,t,4\n,,0,2018-12-19T22:14:10Z,_m,a,t,5\n,,0,2018-12-19T22:14:20Z,_m,a,t,6\n,,1,2018-12-19T22:13:30Z,_m,a,g,2\n,,1,2018-12-19T22:13:40Z,_m,a,g,3\n,,1,2018-12-19T22:13:50Z,_m,a,g,4\n,,1,2018-12-19T22:14:00Z,_m,a,g,5\n,,1,2018-12-19T22:14:10Z,_m,a,g,6\n,,1,2018-12-19T22:14:20Z,_m,a,g,7\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,2,2018-12-19T22:13:30Z,_m,a,t,1\n,,2,2018-12-19T22:13:40Z,_m,a,t,2\n,,2,2018-12-19T22:13:50Z,_m,a,t,3\n,,2,2018-12-19T22:14:00Z,_m,a,t,4\n,,2,2018-12-19T22:14:10Z,_m,a,t,5\n,,2,2018-12-19T22:14:20Z,_m,a,t,6\n,,3,2018-12-19T22:13:30Z,_m,a,g,1\n,,3,2018-12-19T22:13:40Z,_m,a,g,2\n,,3,2018-12-19T22:13:50Z,_m,a,g,3\n,,3,2018-12-19T22:14:00Z,_m,a,g,4\n,,3,2018-12-19T22:14:10Z,_m,a,g,5\n,,3,2018-12-19T22:14:20Z,_m,a,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag0,_value\n,,4,2018-12-19T22:13:30Z,_m,b,s,1\n,,4,2018-12-19T22:13:40Z,_m,b,s,2\n,,4,2018-12-19T22:13:50Z,_m,b,s,3\n,,4,2018-12-19T22:14:00Z,_m,b,s,4\n,,4,2018-12-19T22:14:10Z,_m,b,s,5\n,,4,2018-12-19T22:14:20Z,_m,b,s,6\n,,5,2018-12-19T22:13:30Z,_m,b,g,1\n,,5,2018-12-19T22:13:40Z,_m,b,g,2\n,,5,2018-12-19T22:13:50Z,_m,b,g,3\n,,5,2018-12-19T22:14:00Z,_m,b,g,4\n,,5,2018-12-19T22:14:10Z,_m,b,g,5\n,,5,2018-12-19T22:14:20Z,_m,b,g,6\n\n#datatype,string,long,dateTime:RFC3339,string,string,string,double\n#group,false,false,false,true,true,true,false\n#default,_result,,,,,,\n,result,table,_time,_measurement,_field,tag1,_value\n,,6,2018-12-19T22:13:30Z,_m,b,s,1\n,,6,2018-12-19T22:13:40Z,_m,b,s,2\n,,6,2018-12-19T22:13:50Z,_m,b,s,3\n,,6,2018-12-19T22:14:00Z,_m,b,s,4\n,,6,2018-12-19T22:14:10Z,_m,b,s,5\n,,6,2018-12-19T22:14:20Z,_m,b,s,6\n,,7,2018-12-19T22:13:30Z,_m,b,p,1\n,,7,2018-12-19T22:13:40Z,_m,b,p,2\n,,7,2018-12-19T22:13:50Z,_m,b,p,3\n,,7,2018-12-19T22:14:00Z,_m,b,p,4\n,,7,2018-12-19T22:14:10Z,_m,b,p,5\n,,7,2018-12-19T22:14:20Z,_m,b,p,6\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   89,
					},
					File:   "join_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   77,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   77,
						},
						File:   "join_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   77,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   89,
						},
						File:   "join_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   78,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,double,double\n#group,false,false,true,true,false,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_time,_measurement,tag0,value_a,value_b\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:30Z,_m,g,2,1\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:40Z,_m,g,3,2\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:13:50Z,_m,g,4,3\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:00Z,_m,g,5,4\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:10Z,_m,g,6,5\n,,0,2018-12-19T00:00:00Z,2018-12-20T00:00:00Z,2018-12-19T22:14:20Z,_m,g,7,6\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   105,
					},
					File:   "join_test.flux",
					Source: "join_test_fn = (table=<-) => {\n    a =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})\n    b =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}",
					Start: ast.Position{
						Column: 1,
						Line:   90,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   90,
						},
						File:   "join_test.flux",
						Source: "join_test_fn",
						Start: ast.Position{
							Column: 1,
							Line:   90,
						},
					},
				},
				Name: "join_test_fn",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   105,
						},
						File:   "join_test.flux",
						Source: "(table=<-) => {\n    a =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})\n    b =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}",
						Start: ast.Position{
							Column: 16,
							Line:   90,
						},
					},
				},
				Body: &ast.Block{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 2,
								Line:   105,
							},
							File:   "join_test.flux",
							Source: "{\n    a =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})\n    b =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})\n\n    return experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))\n}",
							Start: ast.Position{
								Column: 30,
								Line:   90,
							},
						},
					},
					Body: []ast.Statement{&ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 52,
									Line:   96,
								},
								File:   "join_test.flux",
								Source: "a =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})",
								Start: ast.Position{
									Column: 5,
									Line:   91,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 6,
										Line:   91,
									},
									File:   "join_test.flux",
									Source: "a",
									Start: ast.Position{
										Column: 5,
										Line:   91,
									},
								},
							},
							Name: "a",
						},
						Init: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.PipeExpression{
									Argument: &ast.PipeExpression{
										Argument: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 14,
														Line:   92,
													},
													File:   "join_test.flux",
													Source: "table",
													Start: ast.Position{
														Column: 9,
														Line:   92,
													},
												},
											},
											Name: "table",
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 78,
													Line:   93,
												},
												File:   "join_test.flux",
												Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)",
												Start: ast.Position{
													Column: 9,
													Line:   92,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: []ast.Expression{&ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 77,
															Line:   93,
														},
														File:   "join_test.flux",
														Source: "start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z",
														Start: ast.Position{
															Column: 22,
															Line:   93,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 49,
																Line:   93,
															},
															File:   "join_test.flux",
															Source: "start: 2018-12-19T00:00:00Z",
															Start: ast.Position{
																Column: 22,
																Line:   93,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 27,
																	Line:   93,
																},
																File:   "join_test.flux",
																Source: "start",
																Start: ast.Position{
																	Column: 22,
																	Line:   93,
																},
															},
														},
														Name: "start",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 49,
																	Line:   93,
																},
																File:   "join_test.flux",
																Source: "2018-12-19T00:00:00Z",
																Start: ast.Position{
																	Column: 29,
																	Line:   93,
																},
															},
														},
														Value: parser.MustParseTime("2018-12-19T00:00:00Z"),
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 77,
																Line:   93,
															},
															File:   "join_test.flux",
															Source: "stop: 2018-12-20T00:00:00Z",
															Start: ast.Position{
																Column: 51,
																Line:   93,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 55,
																	Line:   93,
																},
																File:   "join_test.flux",
																Source: "stop",
																Start: ast.Position{
																	Column: 51,
																	Line:   93,
																},
															},
														},
														Name: "stop",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 77,
																	Line:   93,
																},
																File:   "join_test.flux",
																Source: "2018-12-20T00:00:00Z",
																Start: ast.Position{
																	Column: 57,
																	Line:   93,
																},
															},
														},
														Value: parser.MustParseTime("2018-12-20T00:00:00Z"),
													},
												}},
												Rbrace: nil,
												With:   nil,
											}},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 78,
														Line:   93,
													},
													File:   "join_test.flux",
													Source: "range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)",
													Start: ast.Position{
														Column: 16,
														Line:   93,
													},
												},
											},
											Callee: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 21,
															Line:   93,
														},
														File:   "join_test.flux",
														Source: "range",
														Start: ast.Position{
															Column: 16,
															Line:   93,
														},
													},
												},
												Name: "range",
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 50,
												Line:   94,
											},
											File:   "join_test.flux",
											Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")",
											Start: ast.Position{
												Column: 9,
												Line:   92,
											},
										},
									},
									Call: &ast.CallExpression{
										Arguments: []ast.Expression{&ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   94,
													},
													File:   "join_test.flux",
													Source: "fn: (r) => r._field == \"a\"",
													Start: ast.Position{
														Column: 23,
														Line:   94,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 49,
															Line:   94,
														},
														File:   "join_test.flux",
														Source: "fn: (r) => r._field == \"a\"",
														Start: ast.Position{
															Column: 23,
															Line:   94,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 25,
																Line:   94,
															},
															File:   "join_test.flux",
															Source: "fn",
															Start: ast.Position{
																Column: 23,
																Line:   94,
															},
														},
													},
													Name: "fn",
												},
												Separator: nil,
												Value: &ast.FunctionExpression{
													Arrow: nil,
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 49,
																Line:   94,
															},
															File:   "join_test.flux",
															Source: "(r) => r._field == \"a\"",
															Start: ast.Position{
																Column: 27,
																Line:   94,
															},
														},
													},
													Body: &ast.BinaryExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 49,
																	Line:   94,
																},
																File:   "join_test.flux",
																Source: "r._field == \"a\"",
																Start: ast.Position{
																	Column: 34,
																	Line:   94,
																},
															},
														},
														Left: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 42,
																		Line:   94,
																	},
																	File:   "join_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 34,
																		Line:   94,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 35,
																			Line:   94,
																		},
																		File:   "join_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 34,
																			Line:   94,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 42,
																			Line:   94,
																		},
																		File:   "join_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 36,
																			Line:   94,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Operator: 17,
														Right: &ast.StringLiteral{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 49,
																		Line:   94,
																	},
																	File:   "join_test.flux",
																	Source: "\"a\"",
																	Start: ast.Position{
																		Column: 46,
																		Line:   94,
																	},
																},
															},
															Value: "a",
														},
													},
													Lparen: nil,
													Params: []*ast.Property{&ast.Property{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 29,
																	Line:   94,
																},
																File:   "join_test.flux",
																Source: "r",
																Start: ast.Position{
																	Column: 28,
																	Line:   94,
																},
															},
														},
														Comma: nil,
														Key: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 29,
																		Line:   94,
																	},
																	File:   "join_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 28,
																		Line:   94,
																	},
																},
															},
															Name: "r",
														},
														Separator: nil,
														Value:     nil,
													}},
													Rparan: nil,
												},
											}},
											Rbrace: nil,
											With:   nil,
										}},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 50,
													Line:   94,
												},
												File:   "join_test.flux",
												Source: "filter(fn: (r) => r._field == \"a\")",
												Start: ast.Position{
													Column: 16,
													Line:   94,
												},
											},
										},
										Callee: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 22,
														Line:   94,
													},
													File:   "join_test.flux",
													Source: "filter",
													Start: ast.Position{
														Column: 16,
														Line:   94,
													},
												},
											},
											Name: "filter",
										},
										Lparen: nil,
										Rparen: nil,
									},
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   95,
										},
										File:   "join_test.flux",
										Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])",
										Start: ast.Position{
											Column: 9,
											Line:   92,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 40,
													Line:   95,
												},
												File:   "join_test.flux",
												Source: "columns: [\"_field\"]",
												Start: ast.Position{
													Column: 21,
													Line:   95,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   95,
													},
													File:   "join_test.flux",
													Source: "columns: [\"_field\"]",
													Start: ast.Position{
														Column: 21,
														Line:   95,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 28,
															Line:   95,
														},
														File:   "join_test.flux",
														Source: "columns",
														Start: ast.Position{
															Column: 21,
															Line:   95,
														},
													},
												},
												Name: "columns",
											},
											Separator: nil,
											Value: &ast.ArrayExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   95,
														},
														File:   "join_test.flux",
														Source: "[\"_field\"]",
														Start: ast.Position{
															Column: 30,
															Line:   95,
														},
													},
												},
												Elements: []ast.Expression{&ast.StringLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 39,
																Line:   95,
															},
															File:   "join_test.flux",
															Source: "\"_field\"",
															Start: ast.Position{
																Column: 31,
																Line:   95,
															},
														},
													},
													Value: "_field",
												}},
												Lbrack: nil,
												Rbrack: nil,
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   95,
											},
											File:   "join_test.flux",
											Source: "drop(columns: [\"_field\"])",
											Start: ast.Position{
												Column: 16,
												Line:   95,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   95,
												},
												File:   "join_test.flux",
												Source: "drop",
												Start: ast.Position{
													Column: 16,
													Line:   95,
												},
											},
										},
										Name: "drop",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 52,
										Line:   96,
									},
									File:   "join_test.flux",
									Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"a\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_a\"})",
									Start: ast.Position{
										Column: 9,
										Line:   92,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 51,
												Line:   96,
											},
											File:   "join_test.flux",
											Source: "columns: {_value: \"value_a\"}",
											Start: ast.Position{
												Column: 23,
												Line:   96,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   96,
												},
												File:   "join_test.flux",
												Source: "columns: {_value: \"value_a\"}",
												Start: ast.Position{
													Column: 23,
													Line:   96,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 30,
														Line:   96,
													},
													File:   "join_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 23,
														Line:   96,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 51,
														Line:   96,
													},
													File:   "join_test.flux",
													Source: "{_value: \"value_a\"}",
													Start: ast.Position{
														Column: 32,
														Line:   96,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 50,
															Line:   96,
														},
														File:   "join_test.flux",
														Source: "_value: \"value_a\"",
														Start: ast.Position{
															Column: 33,
															Line:   96,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 39,
																Line:   96,
															},
															File:   "join_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 33,
																Line:   96,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.StringLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 50,
																Line:   96,
															},
															File:   "join_test.flux",
															Source: "\"value_a\"",
															Start: ast.Position{
																Column: 41,
																Line:   96,
															},
														},
													},
													Value: "value_a",
												},
											}},
											Rbrace: nil,
											With:   nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 52,
											Line:   96,
										},
										File:   "join_test.flux",
										Source: "rename(columns: {_value: \"value_a\"})",
										Start: ast.Position{
											Column: 16,
											Line:   96,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   96,
											},
											File:   "join_test.flux",
											Source: "rename",
											Start: ast.Position{
												Column: 16,
												Line:   96,
											},
										},
									},
									Name: "rename",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
					}, &ast.VariableAssignment{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 52,
									Line:   102,
								},
								File:   "join_test.flux",
								Source: "b =\n        table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})",
								Start: ast.Position{
									Column: 5,
									Line:   97,
								},
							},
						},
						ID: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 6,
										Line:   97,
									},
									File:   "join_test.flux",
									Source: "b",
									Start: ast.Position{
										Column: 5,
										Line:   97,
									},
								},
							},
							Name: "b",
						},
						Init: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.PipeExpression{
									Argument: &ast.PipeExpression{
										Argument: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 14,
														Line:   98,
													},
													File:   "join_test.flux",
													Source: "table",
													Start: ast.Position{
														Column: 9,
														Line:   98,
													},
												},
											},
											Name: "table",
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 78,
													Line:   99,
												},
												File:   "join_test.flux",
												Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)",
												Start: ast.Position{
													Column: 9,
													Line:   98,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: []ast.Expression{&ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 77,
															Line:   99,
														},
														File:   "join_test.flux",
														Source: "start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z",
														Start: ast.Position{
															Column: 22,
															Line:   99,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 49,
																Line:   99,
															},
															File:   "join_test.flux",
															Source: "start: 2018-12-19T00:00:00Z",
															Start: ast.Position{
																Column: 22,
																Line:   99,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 27,
																	Line:   99,
																},
																File:   "join_test.flux",
																Source: "start",
																Start: ast.Position{
																	Column: 22,
																	Line:   99,
																},
															},
														},
														Name: "start",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 49,
																	Line:   99,
																},
																File:   "join_test.flux",
																Source: "2018-12-19T00:00:00Z",
																Start: ast.Position{
																	Column: 29,
																	Line:   99,
																},
															},
														},
														Value: parser.MustParseTime("2018-12-19T00:00:00Z"),
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 77,
																Line:   99,
															},
															File:   "join_test.flux",
															Source: "stop: 2018-12-20T00:00:00Z",
															Start: ast.Position{
																Column: 51,
																Line:   99,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 55,
																	Line:   99,
																},
																File:   "join_test.flux",
																Source: "stop",
																Start: ast.Position{
																	Column: 51,
																	Line:   99,
																},
															},
														},
														Name: "stop",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 77,
																	Line:   99,
																},
																File:   "join_test.flux",
																Source: "2018-12-20T00:00:00Z",
																Start: ast.Position{
																	Column: 57,
																	Line:   99,
																},
															},
														},
														Value: parser.MustParseTime("2018-12-20T00:00:00Z"),
													},
												}},
												Rbrace: nil,
												With:   nil,
											}},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 78,
														Line:   99,
													},
													File:   "join_test.flux",
													Source: "range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)",
													Start: ast.Position{
														Column: 16,
														Line:   99,
													},
												},
											},
											Callee: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 21,
															Line:   99,
														},
														File:   "join_test.flux",
														Source: "range",
														Start: ast.Position{
															Column: 16,
															Line:   99,
														},
													},
												},
												Name: "range",
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 50,
												Line:   100,
											},
											File:   "join_test.flux",
											Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")",
											Start: ast.Position{
												Column: 9,
												Line:   98,
											},
										},
									},
									Call: &ast.CallExpression{
										Arguments: []ast.Expression{&ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   100,
													},
													File:   "join_test.flux",
													Source: "fn: (r) => r._field == \"b\"",
													Start: ast.Position{
														Column: 23,
														Line:   100,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 49,
															Line:   100,
														},
														File:   "join_test.flux",
														Source: "fn: (r) => r._field == \"b\"",
														Start: ast.Position{
															Column: 23,
															Line:   100,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 25,
																Line:   100,
															},
															File:   "join_test.flux",
															Source: "fn",
															Start: ast.Position{
																Column: 23,
																Line:   100,
															},
														},
													},
													Name: "fn",
												},
												Separator: nil,
												Value: &ast.FunctionExpression{
													Arrow: nil,
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 49,
																Line:   100,
															},
															File:   "join_test.flux",
															Source: "(r) => r._field == \"b\"",
															Start: ast.Position{
																Column: 27,
																Line:   100,
															},
														},
													},
													Body: &ast.BinaryExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 49,
																	Line:   100,
																},
																File:   "join_test.flux",
																Source: "r._field == \"b\"",
																Start: ast.Position{
																	Column: 34,
																	Line:   100,
																},
															},
														},
														Left: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 42,
																		Line:   100,
																	},
																	File:   "join_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 34,
																		Line:   100,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 35,
																			Line:   100,
																		},
																		File:   "join_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 34,
																			Line:   100,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 42,
																			Line:   100,
																		},
																		File:   "join_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 36,
																			Line:   100,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Operator: 17,
														Right: &ast.StringLiteral{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 49,
																		Line:   100,
																	},
																	File:   "join_test.flux",
																	Source: "\"b\"",
																	Start: ast.Position{
																		Column: 46,
																		Line:   100,
																	},
																},
															},
															Value: "b",
														},
													},
													Lparen: nil,
													Params: []*ast.Property{&ast.Property{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 29,
																	Line:   100,
																},
																File:   "join_test.flux",
																Source: "r",
																Start: ast.Position{
																	Column: 28,
																	Line:   100,
																},
															},
														},
														Comma: nil,
														Key: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 29,
																		Line:   100,
																	},
																	File:   "join_test.flux",
																	Source: "r",
																	Start: ast.Position{
																		Column: 28,
																		Line:   100,
																	},
																},
															},
															Name: "r",
														},
														Separator: nil,
														Value:     nil,
													}},
													Rparan: nil,
												},
											}},
											Rbrace: nil,
											With:   nil,
										}},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 50,
													Line:   100,
												},
												File:   "join_test.flux",
												Source: "filter(fn: (r) => r._field == \"b\")",
												Start: ast.Position{
													Column: 16,
													Line:   100,
												},
											},
										},
										Callee: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 22,
														Line:   100,
													},
													File:   "join_test.flux",
													Source: "filter",
													Start: ast.Position{
														Column: 16,
														Line:   100,
													},
												},
											},
											Name: "filter",
										},
										Lparen: nil,
										Rparen: nil,
									},
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   101,
										},
										File:   "join_test.flux",
										Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])",
										Start: ast.Position{
											Column: 9,
											Line:   98,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 40,
													Line:   101,
												},
												File:   "join_test.flux",
												Source: "columns: [\"_field\"]",
												Start: ast.Position{
													Column: 21,
													Line:   101,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   101,
													},
													File:   "join_test.flux",
													Source: "columns: [\"_field\"]",
													Start: ast.Position{
														Column: 21,
														Line:   101,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 28,
															Line:   101,
														},
														File:   "join_test.flux",
														Source: "columns",
														Start: ast.Position{
															Column: 21,
															Line:   101,
														},
													},
												},
												Name: "columns",
											},
											Separator: nil,
											Value: &ast.ArrayExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   101,
														},
														File:   "join_test.flux",
														Source: "[\"_field\"]",
														Start: ast.Position{
															Column: 30,
															Line:   101,
														},
													},
												},
												Elements: []ast.Expression{&ast.StringLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 39,
																Line:   101,
															},
															File:   "join_test.flux",
															Source: "\"_field\"",
															Start: ast.Position{
																Column: 31,
																Line:   101,
															},
														},
													},
													Value: "_field",
												}},
												Lbrack: nil,
												Rbrack: nil,
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   101,
											},
											File:   "join_test.flux",
											Source: "drop(columns: [\"_field\"])",
											Start: ast.Position{
												Column: 16,
												Line:   101,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   101,
												},
												File:   "join_test.flux",
												Source: "drop",
												Start: ast.Position{
													Column: 16,
													Line:   101,
												},
											},
										},
										Name: "drop",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 52,
										Line:   102,
									},
									File:   "join_test.flux",
									Source: "table\n            |> range(start: 2018-12-19T00:00:00Z, stop: 2018-12-20T00:00:00Z)\n            |> filter(fn: (r) => r._field == \"b\")\n            |> drop(columns: [\"_field\"])\n            |> rename(columns: {_value: \"value_b\"})",
									Start: ast.Position{
										Column: 9,
										Line:   98,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 51,
												Line:   102,
											},
											File:   "join_test.flux",
											Source: "columns: {_value: \"value_b\"}",
											Start: ast.Position{
												Column: 23,
												Line:   102,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   102,
												},
												File:   "join_test.flux",
												Source: "columns: {_value: \"value_b\"}",
												Start: ast.Position{
													Column: 23,
													Line:   102,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 30,
														Line:   102,
													},
													File:   "join_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 23,
														Line:   102,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 51,
														Line:   102,
													},
													File:   "join_test.flux",
													Source: "{_value: \"value_b\"}",
													Start: ast.Position{
														Column: 32,
														Line:   102,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 50,
															Line:   102,
														},
														File:   "join_test.flux",
														Source: "_value: \"value_b\"",
														Start: ast.Position{
															Column: 33,
															Line:   102,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 39,
																Line:   102,
															},
															File:   "join_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 33,
																Line:   102,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.StringLiteral{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 50,
																Line:   102,
															},
															File:   "join_test.flux",
															Source: "\"value_b\"",
															Start: ast.Position{
																Column: 41,
																Line:   102,
															},
														},
													},
													Value: "value_b",
												},
											}},
											Rbrace: nil,
											With:   nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 52,
											Line:   102,
										},
										File:   "join_test.flux",
										Source: "rename(columns: {_value: \"value_b\"})",
										Start: ast.Position{
											Column: 16,
											Line:   102,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   102,
											},
											File:   "join_test.flux",
											Source: "rename",
											Start: ast.Position{
												Column: 16,
												Line:   102,
											},
										},
									},
									Name: "rename",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
					}, &ast.ReturnStatement{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   104,
										},
										File:   "join_test.flux",
										Source: "left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b})",
										Start: ast.Position{
											Column: 30,
											Line:   104,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 37,
												Line:   104,
											},
											File:   "join_test.flux",
											Source: "left: a",
											Start: ast.Position{
												Column: 30,
												Line:   104,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 34,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "left",
												Start: ast.Position{
													Column: 30,
													Line:   104,
												},
											},
										},
										Name: "left",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 37,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "a",
												Start: ast.Position{
													Column: 36,
													Line:   104,
												},
											},
										},
										Name: "a",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 47,
												Line:   104,
											},
											File:   "join_test.flux",
											Source: "right: b",
											Start: ast.Position{
												Column: 39,
												Line:   104,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "right",
												Start: ast.Position{
													Column: 39,
													Line:   104,
												},
											},
										},
										Name: "right",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "b",
												Start: ast.Position{
													Column: 46,
													Line:   104,
												},
											},
										},
										Name: "b",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   104,
											},
											File:   "join_test.flux",
											Source: "fn: (left, right) => ({left with value_b: right.value_b})",
											Start: ast.Position{
												Column: 49,
												Line:   104,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 49,
													Line:   104,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 106,
													Line:   104,
												},
												File:   "join_test.flux",
												Source: "(left, right) => ({left with value_b: right.value_b})",
												Start: ast.Position{
													Column: 53,
													Line:   104,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 106,
														Line:   104,
													},
													File:   "join_test.flux",
													Source: "({left with value_b: right.value_b})",
													Start: ast.Position{
														Column: 70,
														Line:   104,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   104,
														},
														File:   "join_test.flux",
														Source: "{left with value_b: right.value_b}",
														Start: ast.Position{
															Column: 71,
															Line:   104,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 104,
																Line:   104,
															},
															File:   "join_test.flux",
															Source: "value_b: right.value_b",
															Start: ast.Position{
																Column: 82,
																Line:   104,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 89,
																	Line:   104,
																},
																File:   "join_test.flux",
																Source: "value_b",
																Start: ast.Position{
																	Column: 82,
																	Line:   104,
																},
															},
														},
														Name: "value_b",
													},
													Separator: nil,
													Value: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 104,
																	Line:   104,
																},
																File:   "join_test.flux",
																Source: "right.value_b",
																Start: ast.Position{
																	Column: 91,
																	Line:   104,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 96,
																		Line:   104,
																	},
																	File:   "join_test.flux",
																	Source: "right",
																	Start: ast.Position{
																		Column: 91,
																		Line:   104,
																	},
																},
															},
															Name: "right",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 104,
																		Line:   104,
																	},
																	File:   "join_test.flux",
																	Source: "value_b",
																	Start: ast.Position{
																		Column: 97,
																		Line:   104,
																	},
																},
															},
															Name: "value_b",
														},
														Rbrack: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 76,
																Line:   104,
															},
															File:   "join_test.flux",
															Source: "left",
															Start: ast.Position{
																Column: 72,
																Line:   104,
															},
														},
													},
													Name: "left",
												},
											},
											Lparen: nil,
											Rparen: nil,
										},
										Lparen: nil,
										Params: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 58,
														Line:   104,
													},
													File:   "join_test.flux",
													Source: "left",
													Start: ast.Position{
														Column: 54,
														Line:   104,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 58,
															Line:   104,
														},
														File:   "join_test.flux",
														Source: "left",
														Start: ast.Position{
															Column: 54,
															Line:   104,
														},
													},
												},
												Name: "left",
											},
											Separator: nil,
											Value:     nil,
										}, &ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 65,
														Line:   104,
													},
													File:   "join_test.flux",
													Source: "right",
													Start: ast.Position{
														Column: 60,
														Line:   104,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 65,
															Line:   104,
														},
														File:   "join_test.flux",
														Source: "right",
														Start: ast.Position{
															Column: 60,
															Line:   104,
														},
													},
												},
												Name: "right",
											},
											Separator: nil,
											Value:     nil,
										}},
										Rparan: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 107,
										Line:   104,
									},
									File:   "join_test.flux",
									Source: "experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))",
									Start: ast.Position{
										Column: 12,
										Line:   104,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   104,
										},
										File:   "join_test.flux",
										Source: "experimental.join",
										Start: ast.Position{
											Column: 12,
											Line:   104,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   104,
											},
											File:   "join_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   104,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   104,
											},
											File:   "join_test.flux",
											Source: "join",
											Start: ast.Position{
												Column: 25,
												Line:   104,
											},
										},
									},
									Name: "join",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 107,
									Line:   104,
								},
								File:   "join_test.flux",
								Source: "return experimental.join(left: a, right: b, fn: (left, right) => ({left with value_b: right.value_b}))",
								Start: ast.Position{
									Column: 5,
									Line:   104,
								},
							},
						},
					}},
					Lbrace: nil,
					Rbrace: nil,
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   90,
							},
							File:   "join_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 17,
								Line:   90,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 22,
									Line:   90,
								},
								File:   "join_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 17,
									Line:   90,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   90,
							},
							File:   "join_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 23,
								Line:   90,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 103,
							Line:   108,
						},
						File:   "join_test.flux",
						Source: "experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
						Start: ast.Position{
							Column: 6,
							Line:   107,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   107,
							},
							File:   "join_test.flux",
							Source: "experimental_join",
							Start: ast.Position{
								Column: 6,
								Line:   107,
							},
						},
					},
					Name: "experimental_join",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 103,
								Line:   108,
							},
							File:   "join_test.flux",
							Source: "() =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
							Start: ast.Position{
								Column: 26,
								Line:   107,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 103,
									Line:   108,
								},
								File:   "join_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
								Start: ast.Position{
									Column: 5,
									Line:   108,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 102,
										Line:   108,
									},
									File:   "join_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn}",
									Start: ast.Position{
										Column: 6,
										Line:   108,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   108,
										},
										File:   "join_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 7,
											Line:   108,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 7,
												Line:   108,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   108,
												},
												File:   "join_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 34,
													Line:   108,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 34,
														Line:   108,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 37,
															Line:   108,
														},
														File:   "join_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 34,
															Line:   108,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 45,
															Line:   108,
														},
														File:   "join_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 39,
															Line:   108,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 14,
												Line:   108,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 33,
													Line:   108,
												},
												File:   "join_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 14,
													Line:   108,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 21,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 14,
														Line:   108,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 33,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 22,
														Line:   108,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 83,
											Line:   108,
										},
										File:   "join_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 48,
											Line:   108,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 52,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 48,
												Line:   108,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   108,
												},
												File:   "join_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 70,
													Line:   108,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 70,
														Line:   108,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   108,
														},
														File:   "join_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 70,
															Line:   108,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 82,
															Line:   108,
														},
														File:   "join_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 75,
															Line:   108,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 83,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 54,
												Line:   108,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   108,
												},
												File:   "join_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 54,
													Line:   108,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 54,
														Line:   108,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 69,
														Line:   108,
													},
													File:   "join_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 62,
														Line:   108,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 101,
											Line:   108,
										},
										File:   "join_test.flux",
										Source: "fn: join_test_fn",
										Start: ast.Position{
											Column: 85,
											Line:   108,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 87,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 85,
												Line:   108,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   108,
											},
											File:   "join_test.flux",
											Source: "join_test_fn",
											Start: ast.Position{
												Column: 89,
												Line:   108,
											},
										},
									},
									Name: "join_test_fn",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 103,
						Line:   108,
					},
					File:   "join_test.flux",
					Source: "test experimental_join = () =>\n    ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: join_test_fn})",
					Start: ast.Position{
						Column: 1,
						Line:   107,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   4,
					},
					File:   "join_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   4,
						},
						File:   "join_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "experimental",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   5,
					},
					File:   "join_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   5,
						},
						File:   "join_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "testing",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "join_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "join_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "join_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 110,
					Line:   77,
				},
				File:   "kama_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:00:00Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:10Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:30Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:40Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:00Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:10Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:30Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:40Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,15,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:01:40Z,10.444444444444445,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,11.135802469135802,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,11.964334705075446,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,12.869074836153025,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,13.81615268675168,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,13.871008014588556,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13.71308456353558,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,13.553331356741122,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,13.46599437575161,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,13.4515677602438,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,13.29930139347417,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,12.805116570729282,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,11.752584300922965,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,10.036160535131101,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,7.797866963961722,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,6.109926091089845,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,4.727736717272135,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,3.515409287373408,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,2.3974496040963373,used_percent,disk,disk1s1,apfs,host.local,/\n\"\nkama = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> drop(columns: [\"_start\", \"_stop\"])\n        |> experimental.kaufmansAMA(n: 10)\n\ntest _kama = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "kama_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "kama_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "kama_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "kama_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "kama_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   44,
					},
					File:   "kama_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:00:00Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:10Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:30Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:40Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:00Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:10Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:30Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:40Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,15,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "kama_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   44,
						},
						File:   "kama_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:00:00Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:10Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:30Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:40Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:00Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:10Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:30Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:40Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,15,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:00:00Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:10Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:30Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:40Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:00:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:00Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:10Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:30Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:40Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,15,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,14,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,12,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,11,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,10,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,9,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,8,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,7,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,6,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,5,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,4,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,3,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,2,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,1,used_percent,disk,disk1s1,apfs,host.local,/\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   70,
					},
					File:   "kama_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:01:40Z,10.444444444444445,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,11.135802469135802,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,11.964334705075446,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,12.869074836153025,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,13.81615268675168,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,13.871008014588556,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13.71308456353558,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,13.553331356741122,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,13.46599437575161,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,13.4515677602438,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,13.29930139347417,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,12.805116570729282,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,11.752584300922965,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,10.036160535131101,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,7.797866963961722,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,6.109926091089845,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,4.727736717272135,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,3.515409287373408,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,2.3974496040963373,used_percent,disk,disk1s1,apfs,host.local,/\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   45,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   45,
						},
						File:   "kama_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   45,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   70,
						},
						File:   "kama_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:01:40Z,10.444444444444445,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,11.135802469135802,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,11.964334705075446,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,12.869074836153025,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,13.81615268675168,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,13.871008014588556,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13.71308456353558,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,13.553331356741122,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,13.46599437575161,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,13.4515677602438,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,13.29930139347417,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,12.805116570729282,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,11.752584300922965,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,10.036160535131101,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,7.797866963961722,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,6.109926091089845,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,4.727736717272135,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,3.515409287373408,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,2.3974496040963373,used_percent,disk,disk1s1,apfs,host.local,/\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   46,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string,string,string,string\n#group,false,false,false,false,true,true,true,true,true,true\n#default,_result,,,,,,,,,\n,result,table,_time,_value,_field,_measurement,device,fstype,host,path\n,,0,2018-05-22T00:01:40Z,10.444444444444445,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:01:50Z,11.135802469135802,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:00Z,11.964334705075446,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:10Z,12.869074836153025,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:20Z,13.81615268675168,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:30Z,13.871008014588556,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:40Z,13.71308456353558,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:02:50Z,13.553331356741122,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:00Z,13.46599437575161,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:10Z,13.4515677602438,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:20Z,13.29930139347417,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:30Z,12.805116570729282,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:40Z,11.752584300922965,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:03:50Z,10.036160535131101,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:00Z,7.797866963961722,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:10Z,6.109926091089845,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:20Z,4.727736717272135,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:30Z,3.515409287373408,used_percent,disk,disk1s1,apfs,host.local,/\n,,0,2018-05-22T00:04:40Z,2.3974496040963373,used_percent,disk,disk1s1,apfs,host.local,/\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 43,
						Line:   75,
					},
					File:   "kama_test.flux",
					Source: "kama = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> drop(columns: [\"_start\", \"_stop\"])\n        |> experimental.kaufmansAMA(n: 10)",
					Start: ast.Position{
						Column: 1,
						Line:   71,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 5,
							Line:   71,
						},
						File:   "kama_test.flux",
						Source: "kama",
						Start: ast.Position{
							Column: 1,
							Line:   71,
						},
					},
				},
				Name: "kama",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 43,
							Line:   75,
						},
						File:   "kama_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> drop(columns: [\"_start\", \"_stop\"])\n        |> experimental.kaufmansAMA(n: 10)",
						Start: ast.Position{
							Column: 8,
							Line:   71,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   72,
										},
										File:   "kama_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   72,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   73,
									},
									File:   "kama_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   72,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   73,
											},
											File:   "kama_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   73,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   73,
												},
												File:   "kama_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   73,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   73,
													},
													File:   "kama_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   73,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   73,
													},
													File:   "kama_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   73,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   73,
										},
										File:   "kama_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   73,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   73,
											},
											File:   "kama_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   73,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   74,
								},
								File:   "kama_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 5,
									Line:   72,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   74,
										},
										File:   "kama_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   74,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   74,
											},
											File:   "kama_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 17,
												Line:   74,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 24,
													Line:   74,
												},
												File:   "kama_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 17,
													Line:   74,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   74,
												},
												File:   "kama_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 26,
													Line:   74,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   74,
													},
													File:   "kama_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 27,
														Line:   74,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   74,
													},
													File:   "kama_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 37,
														Line:   74,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   74,
									},
									File:   "kama_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 12,
										Line:   74,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 16,
											Line:   74,
										},
										File:   "kama_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 12,
											Line:   74,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 43,
								Line:   75,
							},
							File:   "kama_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> drop(columns: [\"_start\", \"_stop\"])\n        |> experimental.kaufmansAMA(n: 10)",
							Start: ast.Position{
								Column: 5,
								Line:   72,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   75,
									},
									File:   "kama_test.flux",
									Source: "n: 10",
									Start: ast.Position{
										Column: 37,
										Line:   75,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   75,
										},
										File:   "kama_test.flux",
										Source: "n: 10",
										Start: ast.Position{
											Column: 37,
											Line:   75,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 38,
												Line:   75,
											},
											File:   "kama_test.flux",
											Source: "n",
											Start: ast.Position{
												Column: 37,
												Line:   75,
											},
										},
									},
									Name: "n",
								},
								Separator: nil,
								Value: &ast.IntegerLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   75,
											},
											File:   "kama_test.flux",
											Source: "10",
											Start: ast.Position{
												Column: 40,
												Line:   75,
											},
										},
									},
									Value: int64(10),
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 43,
									Line:   75,
								},
								File:   "kama_test.flux",
								Source: "experimental.kaufmansAMA(n: 10)",
								Start: ast.Position{
									Column: 12,
									Line:   75,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 36,
										Line:   75,
									},
									File:   "kama_test.flux",
									Source: "experimental.kaufmansAMA",
									Start: ast.Position{
										Column: 12,
										Line:   75,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   75,
										},
										File:   "kama_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   75,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 36,
											Line:   75,
										},
										File:   "kama_test.flux",
										Source: "kaufmansAMA",
										Start: ast.Position{
											Column: 25,
											Line:   75,
										},
									},
								},
								Name: "kaufmansAMA",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   71,
							},
							File:   "kama_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 9,
								Line:   71,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 14,
									Line:   71,
								},
								File:   "kama_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 9,
									Line:   71,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   71,
							},
							File:   "kama_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 15,
								Line:   71,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 110,
							Line:   77,
						},
						File:   "kama_test.flux",
						Source: "_kama = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama})",
						Start: ast.Position{
							Column: 6,
							Line:   77,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   77,
							},
							File:   "kama_test.flux",
							Source: "_kama",
							Start: ast.Position{
								Column: 6,
								Line:   77,
							},
						},
					},
					Name: "_kama",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 110,
								Line:   77,
							},
							File:   "kama_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama})",
							Start: ast.Position{
								Column: 14,
								Line:   77,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 110,
									Line:   77,
								},
								File:   "kama_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama})",
								Start: ast.Position{
									Column: 20,
									Line:   77,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 109,
										Line:   77,
									},
									File:   "kama_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama}",
									Start: ast.Position{
										Column: 21,
										Line:   77,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   77,
										},
										File:   "kama_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   77,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   77,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   77,
												},
												File:   "kama_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   77,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   77,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   77,
														},
														File:   "kama_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   77,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   77,
														},
														File:   "kama_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   77,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   77,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   77,
												},
												File:   "kama_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   77,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   77,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   77,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   77,
										},
										File:   "kama_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   77,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   77,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   77,
												},
												File:   "kama_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   77,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   77,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   77,
														},
														File:   "kama_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   77,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   77,
														},
														File:   "kama_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   77,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   77,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   77,
												},
												File:   "kama_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   77,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   77,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   77,
													},
													File:   "kama_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   77,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 108,
											Line:   77,
										},
										File:   "kama_test.flux",
										Source: "fn: kama",
										Start: ast.Position{
											Column: 100,
											Line:   77,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   77,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   77,
											},
											File:   "kama_test.flux",
											Source: "kama",
											Start: ast.Position{
												Column: 104,
												Line:   77,
											},
										},
									},
									Name: "kama",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 110,
						Line:   77,
					},
					File:   "kama_test.flux",
					Source: "test _kama = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: kama})",
					Start: ast.Position{
						Column: 1,
						Line:   77,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "kama_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "kama_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "kama_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "kama_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "kama_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "kama_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "kama_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 112,
					Line:   57,
				},
				File:   "last_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"\nt_last = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.last()\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _last = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "last_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "last_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "last_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "last_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "last_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "last_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "last_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "last_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   50,
					},
					File:   "last_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   40,
						},
						File:   "last_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   50,
						},
						File:   "last_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   41,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   55,
					},
					File:   "last_test.flux",
					Source: "t_last = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.last()\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   51,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   51,
						},
						File:   "last_test.flux",
						Source: "t_last",
						Start: ast.Position{
							Column: 1,
							Line:   51,
						},
					},
				},
				Name: "t_last",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   55,
						},
						File:   "last_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.last()\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 10,
							Line:   51,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   52,
										},
										File:   "last_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   52,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   53,
									},
									File:   "last_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   52,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   53,
											},
											File:   "last_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   53,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   53,
												},
												File:   "last_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   53,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   53,
													},
													File:   "last_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   53,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   53,
													},
													File:   "last_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   53,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   53,
										},
										File:   "last_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   53,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   53,
											},
											File:   "last_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   53,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 31,
									Line:   54,
								},
								File:   "last_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.last()",
								Start: ast.Position{
									Column: 5,
									Line:   52,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   54,
									},
									File:   "last_test.flux",
									Source: "experimental.last()",
									Start: ast.Position{
										Column: 12,
										Line:   54,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   54,
										},
										File:   "last_test.flux",
										Source: "experimental.last",
										Start: ast.Position{
											Column: 12,
											Line:   54,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   54,
											},
											File:   "last_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   54,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   54,
											},
											File:   "last_test.flux",
											Source: "last",
											Start: ast.Position{
												Column: 25,
												Line:   54,
											},
										},
									},
									Name: "last",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   55,
							},
							File:   "last_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.last()\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   52,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   55,
									},
									File:   "last_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   55,
										},
										File:   "last_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   55,
											},
											File:   "last_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   55,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   55,
											},
											File:   "last_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   55,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   55,
												},
												File:   "last_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   55,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   55,
												},
												File:   "last_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   55,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   55,
								},
								File:   "last_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   55,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   55,
									},
									File:   "last_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   55,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   51,
							},
							File:   "last_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 11,
								Line:   51,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 16,
									Line:   51,
								},
								File:   "last_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 11,
									Line:   51,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   51,
							},
							File:   "last_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 17,
								Line:   51,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 112,
							Line:   57,
						},
						File:   "last_test.flux",
						Source: "_last = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   57,
							},
							File:   "last_test.flux",
							Source: "_last",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_last",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 112,
								Line:   57,
							},
							File:   "last_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last})",
							Start: ast.Position{
								Column: 14,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 112,
									Line:   57,
								},
								File:   "last_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last})",
								Start: ast.Position{
									Column: 20,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 111,
										Line:   57,
									},
									File:   "last_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last}",
									Start: ast.Position{
										Column: 21,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   57,
										},
										File:   "last_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   57,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   57,
												},
												File:   "last_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   57,
														},
														File:   "last_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   57,
														},
														File:   "last_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   57,
												},
												File:   "last_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   57,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   57,
										},
										File:   "last_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   57,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   57,
												},
												File:   "last_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   57,
														},
														File:   "last_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   57,
														},
														File:   "last_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   57,
												},
												File:   "last_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   57,
													},
													File:   "last_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   57,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   57,
										},
										File:   "last_test.flux",
										Source: "fn: t_last",
										Start: ast.Position{
											Column: 100,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   57,
											},
											File:   "last_test.flux",
											Source: "t_last",
											Start: ast.Position{
												Column: 104,
												Line:   57,
											},
										},
									},
									Name: "t_last",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 112,
						Line:   57,
					},
					File:   "last_test.flux",
					Source: "test _last = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_last})",
					Start: ast.Position{
						Column: 1,
						Line:   57,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "last_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "last_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "last_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "last_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "last_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "last_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "last_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 110,
					Line:   57,
				},
				File:   "max_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"\nt_max = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.max()\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _max = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "max_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "max_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "max_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "max_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "max_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "max_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "max_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "max_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   50,
					},
					File:   "max_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   40,
						},
						File:   "max_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   50,
						},
						File:   "max_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   41,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   55,
					},
					File:   "max_test.flux",
					Source: "t_max = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.max()\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   51,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   51,
						},
						File:   "max_test.flux",
						Source: "t_max",
						Start: ast.Position{
							Column: 1,
							Line:   51,
						},
					},
				},
				Name: "t_max",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   55,
						},
						File:   "max_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.max()\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 9,
							Line:   51,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   52,
										},
										File:   "max_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   52,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   53,
									},
									File:   "max_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   52,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   53,
											},
											File:   "max_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   53,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   53,
												},
												File:   "max_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   53,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   53,
													},
													File:   "max_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   53,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   53,
													},
													File:   "max_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   53,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   53,
										},
										File:   "max_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   53,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   53,
											},
											File:   "max_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   53,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 30,
									Line:   54,
								},
								File:   "max_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.max()",
								Start: ast.Position{
									Column: 5,
									Line:   52,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 30,
										Line:   54,
									},
									File:   "max_test.flux",
									Source: "experimental.max()",
									Start: ast.Position{
										Column: 12,
										Line:   54,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   54,
										},
										File:   "max_test.flux",
										Source: "experimental.max",
										Start: ast.Position{
											Column: 12,
											Line:   54,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   54,
											},
											File:   "max_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   54,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   54,
											},
											File:   "max_test.flux",
											Source: "max",
											Start: ast.Position{
												Column: 25,
												Line:   54,
											},
										},
									},
									Name: "max",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   55,
							},
							File:   "max_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.max()\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   52,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   55,
									},
									File:   "max_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   55,
										},
										File:   "max_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   55,
											},
											File:   "max_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   55,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   55,
											},
											File:   "max_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   55,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   55,
												},
												File:   "max_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   55,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   55,
												},
												File:   "max_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   55,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   55,
								},
								File:   "max_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   55,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   55,
									},
									File:   "max_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   55,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   51,
							},
							File:   "max_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 10,
								Line:   51,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   51,
								},
								File:   "max_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 10,
									Line:   51,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   51,
							},
							File:   "max_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 16,
								Line:   51,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 110,
							Line:   57,
						},
						File:   "max_test.flux",
						Source: "_max = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 10,
								Line:   57,
							},
							File:   "max_test.flux",
							Source: "_max",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_max",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 110,
								Line:   57,
							},
							File:   "max_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max})",
							Start: ast.Position{
								Column: 13,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 110,
									Line:   57,
								},
								File:   "max_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max})",
								Start: ast.Position{
									Column: 19,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 109,
										Line:   57,
									},
									File:   "max_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max}",
									Start: ast.Position{
										Column: 20,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   57,
										},
										File:   "max_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 21,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 21,
												Line:   57,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   57,
												},
												File:   "max_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 48,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 48,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   57,
														},
														File:   "max_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 48,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   57,
														},
														File:   "max_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 53,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 28,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   57,
												},
												File:   "max_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 28,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 28,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 36,
														Line:   57,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 97,
											Line:   57,
										},
										File:   "max_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 62,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 62,
												Line:   57,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   57,
												},
												File:   "max_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 84,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 84,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 87,
															Line:   57,
														},
														File:   "max_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 84,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   57,
														},
														File:   "max_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 89,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 97,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 68,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 83,
													Line:   57,
												},
												File:   "max_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 68,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 75,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 68,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   57,
													},
													File:   "max_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 76,
														Line:   57,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 108,
											Line:   57,
										},
										File:   "max_test.flux",
										Source: "fn: t_max",
										Start: ast.Position{
											Column: 99,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 99,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   57,
											},
											File:   "max_test.flux",
											Source: "t_max",
											Start: ast.Position{
												Column: 103,
												Line:   57,
											},
										},
									},
									Name: "t_max",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 110,
						Line:   57,
					},
					File:   "max_test.flux",
					Source: "test _max = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_max})",
					Start: ast.Position{
						Column: 1,
						Line:   57,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "max_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "max_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "max_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "max_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "max_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "max_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "max_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 112,
					Line:   59,
				},
				File:   "mean_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,9.5\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,10.979094987144862\n\"\nt_mean = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mean()\n\ntest _mean = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "mean_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "mean_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "mean_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "mean_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "mean_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "mean_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "mean_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "mean_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   53,
					},
					File:   "mean_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,9.5\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,10.979094987144862\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   44,
						},
						File:   "mean_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   44,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   53,
						},
						File:   "mean_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,9.5\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,10.979094987144862\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   45,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,9.5\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,10.979094987144862\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 31,
						Line:   57,
					},
					File:   "mean_test.flux",
					Source: "t_mean = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mean()",
					Start: ast.Position{
						Column: 1,
						Line:   54,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   54,
						},
						File:   "mean_test.flux",
						Source: "t_mean",
						Start: ast.Position{
							Column: 1,
							Line:   54,
						},
					},
				},
				Name: "t_mean",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 31,
							Line:   57,
						},
						File:   "mean_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mean()",
						Start: ast.Position{
							Column: 10,
							Line:   54,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   55,
									},
									File:   "mean_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   55,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   56,
								},
								File:   "mean_test.flux",
								Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   55,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   56,
										},
										File:   "mean_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   56,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   56,
											},
											File:   "mean_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   56,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   56,
												},
												File:   "mean_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   56,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   56,
												},
												File:   "mean_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   56,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   56,
									},
									File:   "mean_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   56,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   56,
										},
										File:   "mean_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   56,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   57,
							},
							File:   "mean_test.flux",
							Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mean()",
							Start: ast.Position{
								Column: 5,
								Line:   55,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 31,
									Line:   57,
								},
								File:   "mean_test.flux",
								Source: "experimental.mean()",
								Start: ast.Position{
									Column: 12,
									Line:   57,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   57,
									},
									File:   "mean_test.flux",
									Source: "experimental.mean",
									Start: ast.Position{
										Column: 12,
										Line:   57,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   57,
										},
										File:   "mean_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   57,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   57,
										},
										File:   "mean_test.flux",
										Source: "mean",
										Start: ast.Position{
											Column: 25,
											Line:   57,
										},
									},
								},
								Name: "mean",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   54,
							},
							File:   "mean_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 11,
								Line:   54,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 16,
									Line:   54,
								},
								File:   "mean_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 11,
									Line:   54,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   54,
							},
							File:   "mean_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 17,
								Line:   54,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 112,
							Line:   59,
						},
						File:   "mean_test.flux",
						Source: "_mean = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean})",
						Start: ast.Position{
							Column: 6,
							Line:   59,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   59,
							},
							File:   "mean_test.flux",
							Source: "_mean",
							Start: ast.Position{
								Column: 6,
								Line:   59,
							},
						},
					},
					Name: "_mean",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 112,
								Line:   59,
							},
							File:   "mean_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean})",
							Start: ast.Position{
								Column: 14,
								Line:   59,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 112,
									Line:   59,
								},
								File:   "mean_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean})",
								Start: ast.Position{
									Column: 20,
									Line:   59,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 111,
										Line:   59,
									},
									File:   "mean_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean}",
									Start: ast.Position{
										Column: 21,
										Line:   59,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   59,
										},
										File:   "mean_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   59,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   59,
												},
												File:   "mean_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   59,
														},
														File:   "mean_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   59,
														},
														File:   "mean_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   59,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   59,
												},
												File:   "mean_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   59,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   59,
										},
										File:   "mean_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   59,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   59,
												},
												File:   "mean_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   59,
														},
														File:   "mean_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   59,
														},
														File:   "mean_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   59,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   59,
												},
												File:   "mean_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   59,
													},
													File:   "mean_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   59,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   59,
										},
										File:   "mean_test.flux",
										Source: "fn: t_mean",
										Start: ast.Position{
											Column: 100,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   59,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   59,
											},
											File:   "mean_test.flux",
											Source: "t_mean",
											Start: ast.Position{
												Column: 104,
												Line:   59,
											},
										},
									},
									Name: "t_mean",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 112,
						Line:   59,
					},
					File:   "mean_test.flux",
					Source: "test _mean = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mean})",
					Start: ast.Position{
						Column: 1,
						Line:   59,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "mean_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "mean_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "mean_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "mean_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "mean_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "mean_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "mean_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 110,
					Line:   57,
				},
				File:   "min_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n\"\nt_min = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.min()\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _min = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "min_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "min_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "min_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "min_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "min_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "min_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "min_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "min_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:26Z,1.83,load1,system,host.local\n,,0,2018-05-22T19:53:36Z,1.7,load1,system,host.local\n,,0,2018-05-22T19:53:46Z,1.74,load1,system,host.local\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,0,2018-05-22T19:54:06Z,1.91,load1,system,host.local\n,,0,2018-05-22T19:54:16Z,1.84,load1,system,host.local\n,,1,2018-05-22T19:53:26Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:53:36Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:46Z,1.97,load15,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,1,2018-05-22T19:54:06Z,1.98,load15,system,host.local\n,,1,2018-05-22T19:54:16Z,1.97,load15,system,host.local\n,,2,2018-05-22T19:53:26Z,1.95,load5,system,host.local\n,,2,2018-05-22T19:53:36Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:46Z,1.92,load5,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,2,2018-05-22T19:54:06Z,1.94,load5,system,host.local\n,,2,2018-05-22T19:54:16Z,1.93,load5,system,host.local\n,,3,2018-05-22T19:53:26Z,82.9833984375,used_percent,swap,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:46Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:53:56Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:06Z,82.598876953125,used_percent,swap,host.local\n,,3,2018-05-22T19:54:16Z,82.6416015625,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   50,
					},
					File:   "min_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   40,
						},
						File:   "min_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   50,
						},
						File:   "min_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   41,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,double,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_value,_field,_measurement,host\n,,0,2018-05-22T19:53:56Z,1.63,load1,system,host.local\n,,1,2018-05-22T19:53:56Z,1.96,load15,system,host.local\n,,2,2018-05-22T19:53:56Z,1.89,load5,system,host.local\n,,3,2018-05-22T19:53:36Z,82.598876953125,used_percent,swap,host.local\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   55,
					},
					File:   "min_test.flux",
					Source: "t_min = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.min()\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   51,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   51,
						},
						File:   "min_test.flux",
						Source: "t_min",
						Start: ast.Position{
							Column: 1,
							Line:   51,
						},
					},
				},
				Name: "t_min",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   55,
						},
						File:   "min_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.min()\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 9,
							Line:   51,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   52,
										},
										File:   "min_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   52,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   53,
									},
									File:   "min_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   52,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   53,
											},
											File:   "min_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   53,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   53,
												},
												File:   "min_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   53,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   53,
													},
													File:   "min_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   53,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   53,
													},
													File:   "min_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   53,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   53,
										},
										File:   "min_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   53,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   53,
											},
											File:   "min_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   53,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 30,
									Line:   54,
								},
								File:   "min_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.min()",
								Start: ast.Position{
									Column: 5,
									Line:   52,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 30,
										Line:   54,
									},
									File:   "min_test.flux",
									Source: "experimental.min()",
									Start: ast.Position{
										Column: 12,
										Line:   54,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   54,
										},
										File:   "min_test.flux",
										Source: "experimental.min",
										Start: ast.Position{
											Column: 12,
											Line:   54,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   54,
											},
											File:   "min_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   54,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   54,
											},
											File:   "min_test.flux",
											Source: "min",
											Start: ast.Position{
												Column: 25,
												Line:   54,
											},
										},
									},
									Name: "min",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   55,
							},
							File:   "min_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.min()\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   52,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   55,
									},
									File:   "min_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   55,
										},
										File:   "min_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   55,
											},
											File:   "min_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   55,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   55,
											},
											File:   "min_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   55,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   55,
												},
												File:   "min_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   55,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   55,
												},
												File:   "min_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   55,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   55,
								},
								File:   "min_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   55,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   55,
									},
									File:   "min_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   55,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   51,
							},
							File:   "min_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 10,
								Line:   51,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   51,
								},
								File:   "min_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 10,
									Line:   51,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   51,
							},
							File:   "min_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 16,
								Line:   51,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 110,
							Line:   57,
						},
						File:   "min_test.flux",
						Source: "_min = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 10,
								Line:   57,
							},
							File:   "min_test.flux",
							Source: "_min",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_min",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 110,
								Line:   57,
							},
							File:   "min_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min})",
							Start: ast.Position{
								Column: 13,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 110,
									Line:   57,
								},
								File:   "min_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min})",
								Start: ast.Position{
									Column: 19,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 109,
										Line:   57,
									},
									File:   "min_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min}",
									Start: ast.Position{
										Column: 20,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   57,
										},
										File:   "min_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 21,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 21,
												Line:   57,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   57,
												},
												File:   "min_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 48,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 48,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   57,
														},
														File:   "min_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 48,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   57,
														},
														File:   "min_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 53,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 28,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   57,
												},
												File:   "min_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 28,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 28,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 36,
														Line:   57,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 97,
											Line:   57,
										},
										File:   "min_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 62,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 62,
												Line:   57,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   57,
												},
												File:   "min_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 84,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 84,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 87,
															Line:   57,
														},
														File:   "min_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 84,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   57,
														},
														File:   "min_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 89,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 97,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 68,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 83,
													Line:   57,
												},
												File:   "min_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 68,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 75,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 68,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   57,
													},
													File:   "min_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 76,
														Line:   57,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 108,
											Line:   57,
										},
										File:   "min_test.flux",
										Source: "fn: t_min",
										Start: ast.Position{
											Column: 99,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 99,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   57,
											},
											File:   "min_test.flux",
											Source: "t_min",
											Start: ast.Position{
												Column: 103,
												Line:   57,
											},
										},
									},
									Name: "t_min",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 110,
						Line:   57,
					},
					File:   "min_test.flux",
					Source: "test _min = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_min})",
					Start: ast.Position{
						Column: 1,
						Line:   57,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "min_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "min_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "min_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "min_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "min_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "min_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "min_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 112,
					Line:   36,
				},
				File:   "mode_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,63\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,63\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,63\n\"\nt_mode = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mode()\n\ntest _mode = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "mode_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "mode_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "mode_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "mode_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "mode_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   21,
					},
					File:   "mode_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,63\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,63\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "mode_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   21,
						},
						File:   "mode_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,63\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,63\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,63\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,63\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   30,
					},
					File:   "mode_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,63\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   22,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   22,
						},
						File:   "mode_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   22,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   30,
						},
						File:   "mode_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,63\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   23,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,48\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,63\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 31,
						Line:   34,
					},
					File:   "mode_test.flux",
					Source: "t_mode = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mode()",
					Start: ast.Position{
						Column: 1,
						Line:   31,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   31,
						},
						File:   "mode_test.flux",
						Source: "t_mode",
						Start: ast.Position{
							Column: 1,
							Line:   31,
						},
					},
				},
				Name: "t_mode",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 31,
							Line:   34,
						},
						File:   "mode_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mode()",
						Start: ast.Position{
							Column: 10,
							Line:   31,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   32,
									},
									File:   "mode_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   32,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   33,
								},
								File:   "mode_test.flux",
								Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   32,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   33,
										},
										File:   "mode_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   33,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   33,
											},
											File:   "mode_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   33,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   33,
												},
												File:   "mode_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   33,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   33,
												},
												File:   "mode_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   33,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   33,
									},
									File:   "mode_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   33,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   33,
										},
										File:   "mode_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   33,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   34,
							},
							File:   "mode_test.flux",
							Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.mode()",
							Start: ast.Position{
								Column: 5,
								Line:   32,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 31,
									Line:   34,
								},
								File:   "mode_test.flux",
								Source: "experimental.mode()",
								Start: ast.Position{
									Column: 12,
									Line:   34,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   34,
									},
									File:   "mode_test.flux",
									Source: "experimental.mode",
									Start: ast.Position{
										Column: 12,
										Line:   34,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   34,
										},
										File:   "mode_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   34,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   34,
										},
										File:   "mode_test.flux",
										Source: "mode",
										Start: ast.Position{
											Column: 25,
											Line:   34,
										},
									},
								},
								Name: "mode",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   31,
							},
							File:   "mode_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 11,
								Line:   31,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 16,
									Line:   31,
								},
								File:   "mode_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 11,
									Line:   31,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   31,
							},
							File:   "mode_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 17,
								Line:   31,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 112,
							Line:   36,
						},
						File:   "mode_test.flux",
						Source: "_mode = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode})",
						Start: ast.Position{
							Column: 6,
							Line:   36,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   36,
							},
							File:   "mode_test.flux",
							Source: "_mode",
							Start: ast.Position{
								Column: 6,
								Line:   36,
							},
						},
					},
					Name: "_mode",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 112,
								Line:   36,
							},
							File:   "mode_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode})",
							Start: ast.Position{
								Column: 14,
								Line:   36,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 112,
									Line:   36,
								},
								File:   "mode_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode})",
								Start: ast.Position{
									Column: 20,
									Line:   36,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 111,
										Line:   36,
									},
									File:   "mode_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode}",
									Start: ast.Position{
										Column: 21,
										Line:   36,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   36,
										},
										File:   "mode_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   36,
												},
												File:   "mode_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   36,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   36,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   36,
														},
														File:   "mode_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   36,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   36,
														},
														File:   "mode_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   36,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   36,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   36,
												},
												File:   "mode_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   36,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   36,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   36,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   36,
										},
										File:   "mode_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   36,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   36,
												},
												File:   "mode_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   36,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   36,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   36,
														},
														File:   "mode_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   36,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   36,
														},
														File:   "mode_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   36,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   36,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   36,
												},
												File:   "mode_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   36,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   36,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   36,
													},
													File:   "mode_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   36,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   36,
										},
										File:   "mode_test.flux",
										Source: "fn: t_mode",
										Start: ast.Position{
											Column: 100,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   36,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   36,
											},
											File:   "mode_test.flux",
											Source: "t_mode",
											Start: ast.Position{
												Column: 104,
												Line:   36,
											},
										},
									},
									Name: "t_mode",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 112,
						Line:   36,
					},
					File:   "mode_test.flux",
					Source: "test _mode = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_mode})",
					Start: ast.Position{
						Column: 1,
						Line:   36,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "mode_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "mode_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "mode_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "mode_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "mode_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "mode_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "mode_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   134,
				},
				File:   "quantile_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,Reiva,LgT6,BnR,2019-01-09T19:44:58Z,k5Uym\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:08Z,csheb\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:18Z,xUPF\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:28Z,fJTWEh\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:48Z,NvfS\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:44:58Z,eWoKiN\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:18Z,mRC\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:28Z,SNwh8\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:38Z,pwH\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:48Z,jmJqsA\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:44:58Z,7.940387008821781\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:18Z,-36.564150808873954\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:28Z,34.319039251798635\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:38Z,79.27019811403116\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:48Z,41.91029522104053\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:44:58Z,-61.68790887989735\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:08Z,-6.3173755351186465\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:18Z,-26.049728557657513\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:28Z,114.285955884979\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:38Z,16.140262630578995\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:44:58Z,17\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:08Z,-44\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:18Z,-99\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:28Z,-85\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:48Z,99\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:44:58Z,-44\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:08Z,-25\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:18Z,46\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:38Z,-14\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:48Z,-53\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,Reiva,rREO,BnR,2019-01-09T19:44:58Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:08Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:18Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:38Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:48Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:44:58Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:18Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:28Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:38Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:48Z,false\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:44:58Z,79\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:08Z,33\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:18Z,97\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:28Z,90\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:48Z,10\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:44:58Z,84\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:08Z,52\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:18Z,23\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:28Z,62\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:38Z,22\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,1,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,5,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,6,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,7,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,8,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,9,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"\nt_quantile = (table=<-) =>\n    table\n        |> range(start: 2019-01-01T00:00:00Z)\n        |> experimental.quantile(q: 0.75, method: \"exact_selector\")\n\ntest _quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "quantile_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "quantile_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "quantile_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "quantile_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "quantile_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   95,
					},
					File:   "quantile_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,Reiva,LgT6,BnR,2019-01-09T19:44:58Z,k5Uym\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:08Z,csheb\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:18Z,xUPF\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:28Z,fJTWEh\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:48Z,NvfS\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:44:58Z,eWoKiN\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:18Z,mRC\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:28Z,SNwh8\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:38Z,pwH\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:48Z,jmJqsA\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:44:58Z,7.940387008821781\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:18Z,-36.564150808873954\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:28Z,34.319039251798635\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:38Z,79.27019811403116\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:48Z,41.91029522104053\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:44:58Z,-61.68790887989735\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:08Z,-6.3173755351186465\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:18Z,-26.049728557657513\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:28Z,114.285955884979\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:38Z,16.140262630578995\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:44:58Z,17\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:08Z,-44\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:18Z,-99\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:28Z,-85\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:48Z,99\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:44:58Z,-44\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:08Z,-25\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:18Z,46\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:38Z,-14\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:48Z,-53\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,Reiva,rREO,BnR,2019-01-09T19:44:58Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:08Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:18Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:38Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:48Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:44:58Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:18Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:28Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:38Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:48Z,false\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:44:58Z,79\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:08Z,33\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:18Z,97\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:28Z,90\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:48Z,10\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:44:58Z,84\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:08Z,52\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:18Z,23\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:28Z,62\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:38Z,22\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "quantile_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   95,
						},
						File:   "quantile_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,Reiva,LgT6,BnR,2019-01-09T19:44:58Z,k5Uym\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:08Z,csheb\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:18Z,xUPF\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:28Z,fJTWEh\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:48Z,NvfS\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:44:58Z,eWoKiN\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:18Z,mRC\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:28Z,SNwh8\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:38Z,pwH\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:48Z,jmJqsA\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:44:58Z,7.940387008821781\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:18Z,-36.564150808873954\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:28Z,34.319039251798635\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:38Z,79.27019811403116\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:48Z,41.91029522104053\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:44:58Z,-61.68790887989735\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:08Z,-6.3173755351186465\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:18Z,-26.049728557657513\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:28Z,114.285955884979\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:38Z,16.140262630578995\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:44:58Z,17\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:08Z,-44\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:18Z,-99\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:28Z,-85\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:48Z,99\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:44:58Z,-44\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:08Z,-25\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:18Z,46\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:38Z,-14\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:48Z,-53\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,Reiva,rREO,BnR,2019-01-09T19:44:58Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:08Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:18Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:38Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:48Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:44:58Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:18Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:28Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:38Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:48Z,false\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:44:58Z,79\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:08Z,33\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:18Z,97\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:28Z,90\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:48Z,10\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:44:58Z,84\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:08Z,52\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:18Z,23\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:28Z,62\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:38Z,22\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,Reiva,LgT6,BnR,2019-01-09T19:44:58Z,k5Uym\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:08Z,csheb\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:18Z,xUPF\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:28Z,fJTWEh\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,0,Reiva,LgT6,BnR,2019-01-09T19:45:48Z,NvfS\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:44:58Z,eWoKiN\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:18Z,mRC\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:28Z,SNwh8\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:38Z,pwH\n,,1,Reiva,LgT6,qCnJDC,2019-01-09T19:45:48Z,jmJqsA\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:44:58Z,7.940387008821781\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:18Z,-36.564150808873954\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:28Z,34.319039251798635\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:38Z,79.27019811403116\n,,2,Reiva,OAOJWe7,BnR,2019-01-09T19:45:48Z,41.91029522104053\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:44:58Z,-61.68790887989735\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:08Z,-6.3173755351186465\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:18Z,-26.049728557657513\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:28Z,114.285955884979\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:38Z,16.140262630578995\n,,3,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:44:58Z,17\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:08Z,-44\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:18Z,-99\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:28Z,-85\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,4,Reiva,dGpnr,BnR,2019-01-09T19:45:48Z,99\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:44:58Z,-44\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:08Z,-25\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:18Z,46\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:38Z,-14\n,,5,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:48Z,-53\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,Reiva,rREO,BnR,2019-01-09T19:44:58Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:08Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:18Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:38Z,false\n,,6,Reiva,rREO,BnR,2019-01-09T19:45:48Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:44:58Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:18Z,true\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:28Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:38Z,false\n,,7,Reiva,rREO,qCnJDC,2019-01-09T19:45:48Z,false\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:44:58Z,79\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:08Z,33\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:18Z,97\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:28Z,90\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,8,Reiva,rc2iOD1,BnR,2019-01-09T19:45:48Z,10\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:44:58Z,84\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:08Z,52\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:18Z,23\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:28Z,62\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:38Z,22\n,,9,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   128,
					},
					File:   "quantile_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,1,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,5,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,6,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,7,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,8,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,9,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   96,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   96,
						},
						File:   "quantile_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   96,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   128,
						},
						File:   "quantile_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,1,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,5,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,6,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,7,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,8,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,9,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   97,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,BnR,2019-01-09T19:45:38Z,oF7g\n,,1,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,LgT6,qCnJDC,2019-01-09T19:45:08Z,oE4S\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,2019-01-09T19:45:08Z,49.460104214779086\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,2019-01-09T19:45:48Z,29.50336437998469\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,BnR,2019-01-09T19:45:38Z,18\n,,5,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,dGpnr,qCnJDC,2019-01-09T19:45:28Z,-2\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,6,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,BnR,2019-01-09T19:45:28Z,true\n,,7,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rREO,qCnJDC,2019-01-09T19:45:08Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,8,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,BnR,2019-01-09T19:45:38Z,96\n,,9,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,rc2iOD1,qCnJDC,2019-01-09T19:45:48Z,78\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 68,
						Line:   132,
					},
					File:   "quantile_test.flux",
					Source: "t_quantile = (table=<-) =>\n    table\n        |> range(start: 2019-01-01T00:00:00Z)\n        |> experimental.quantile(q: 0.75, method: \"exact_selector\")",
					Start: ast.Position{
						Column: 1,
						Line:   129,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   129,
						},
						File:   "quantile_test.flux",
						Source: "t_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   129,
						},
					},
				},
				Name: "t_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 68,
							Line:   132,
						},
						File:   "quantile_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2019-01-01T00:00:00Z)\n        |> experimental.quantile(q: 0.75, method: \"exact_selector\")",
						Start: ast.Position{
							Column: 14,
							Line:   129,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   130,
									},
									File:   "quantile_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   130,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   131,
								},
								File:   "quantile_test.flux",
								Source: "table\n        |> range(start: 2019-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   130,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   131,
										},
										File:   "quantile_test.flux",
										Source: "start: 2019-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   131,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   131,
											},
											File:   "quantile_test.flux",
											Source: "start: 2019-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   131,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   131,
												},
												File:   "quantile_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   131,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   131,
												},
												File:   "quantile_test.flux",
												Source: "2019-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   131,
												},
											},
										},
										Value: parser.MustParseTime("2019-01-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   131,
									},
									File:   "quantile_test.flux",
									Source: "range(start: 2019-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   131,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   131,
										},
										File:   "quantile_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   131,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 68,
								Line:   132,
							},
							File:   "quantile_test.flux",
							Source: "table\n        |> range(start: 2019-01-01T00:00:00Z)\n        |> experimental.quantile(q: 0.75, method: \"exact_selector\")",
							Start: ast.Position{
								Column: 5,
								Line:   130,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 67,
										Line:   132,
									},
									File:   "quantile_test.flux",
									Source: "q: 0.75, method: \"exact_selector\"",
									Start: ast.Position{
										Column: 34,
										Line:   132,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   132,
										},
										File:   "quantile_test.flux",
										Source: "q: 0.75",
										Start: ast.Position{
											Column: 34,
											Line:   132,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   132,
											},
											File:   "quantile_test.flux",
											Source: "q",
											Start: ast.Position{
												Column: 34,
												Line:   132,
											},
										},
									},
									Name: "q",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   132,
											},
											File:   "quantile_test.flux",
											Source: "0.75",
											Start: ast.Position{
												Column: 37,
												Line:   132,
											},
										},
									},
									Value: 0.75,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 67,
											Line:   132,
										},
										File:   "quantile_test.flux",
										Source: "method: \"exact_selector\"",
										Start: ast.Position{
											Column: 43,
											Line:   132,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 49,
												Line:   132,
											},
											File:   "quantile_test.flux",
											Source: "method",
											Start: ast.Position{
												Column: 43,
												Line:   132,
											},
										},
									},
									Name: "method",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   132,
											},
											File:   "quantile_test.flux",
											Source: "\"exact_selector\"",
											Start: ast.Position{
												Column: 51,
												Line:   132,
											},
										},
									},
									Value: "exact_selector",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 68,
									Line:   132,
								},
								File:   "quantile_test.flux",
								Source: "experimental.quantile(q: 0.75, method: \"exact_selector\")",
								Start: ast.Position{
									Column: 12,
									Line:   132,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 33,
										Line:   132,
									},
									File:   "quantile_test.flux",
									Source: "experimental.quantile",
									Start: ast.Position{
										Column: 12,
										Line:   132,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   132,
										},
										File:   "quantile_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   132,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   132,
										},
										File:   "quantile_test.flux",
										Source: "quantile",
										Start: ast.Position{
											Column: 25,
											Line:   132,
										},
									},
								},
								Name: "quantile",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   129,
							},
							File:   "quantile_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 15,
								Line:   129,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 20,
									Line:   129,
								},
								File:   "quantile_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 15,
									Line:   129,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   129,
							},
							File:   "quantile_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 21,
								Line:   129,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   134,
						},
						File:   "quantile_test.flux",
						Source: "_quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
						Start: ast.Position{
							Column: 6,
							Line:   134,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   134,
							},
							File:   "quantile_test.flux",
							Source: "_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   134,
							},
						},
					},
					Name: "_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   134,
							},
							File:   "quantile_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
							Start: ast.Position{
								Column: 18,
								Line:   134,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   134,
								},
								File:   "quantile_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
								Start: ast.Position{
									Column: 24,
									Line:   134,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   134,
									},
									File:   "quantile_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile}",
									Start: ast.Position{
										Column: 25,
										Line:   134,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   134,
										},
										File:   "quantile_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   134,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   134,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 64,
													Line:   134,
												},
												File:   "quantile_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   134,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   134,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   134,
														},
														File:   "quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   134,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   134,
														},
														File:   "quantile_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   134,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   134,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   134,
												},
												File:   "quantile_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   134,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   134,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   134,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 102,
											Line:   134,
										},
										File:   "quantile_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   134,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   134,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 101,
													Line:   134,
												},
												File:   "quantile_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   134,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   134,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   134,
														},
														File:   "quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   134,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   134,
														},
														File:   "quantile_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   134,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   134,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   134,
												},
												File:   "quantile_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   134,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   134,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   134,
													},
													File:   "quantile_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   134,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 118,
											Line:   134,
										},
										File:   "quantile_test.flux",
										Source: "fn: t_quantile",
										Start: ast.Position{
											Column: 104,
											Line:   134,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   134,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   134,
											},
											File:   "quantile_test.flux",
											Source: "t_quantile",
											Start: ast.Position{
												Column: 108,
												Line:   134,
											},
										},
									},
									Name: "t_quantile",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 120,
						Line:   134,
					},
					File:   "quantile_test.flux",
					Source: "test _quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
					Start: ast.Position{
						Column: 1,
						Line:   134,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "quantile_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "quantile_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "quantile_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "quantile_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "quantile_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "quantile_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "quantile_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 110,
					Line:   184,
				},
				File:   "set_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:30Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:40Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:50Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:00Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:10Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:20Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:30Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:40Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:50Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:00Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:10Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:20Z,true\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:30Z,-61.68790887989735\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:40Z,-6.3173755351186465\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:50Z,-26.049728557657513\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:00Z,114.285955884979\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:10Z,16.140262630578995\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:20Z,29.50336437998469\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:30Z,7.940387008821781\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:40Z,49.460104214779086\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:50Z,-36.564150808873954\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:00Z,34.319039251798635\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:10Z,79.27019811403116\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:20Z,41.91029522104053\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:30Z,-44\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:40Z,-25\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:50Z,46\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:00Z,-2\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:10Z,-14\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:20Z,-53\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:30Z,17\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:40Z,-44\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:50Z,-99\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:00Z,-85\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:10Z,18\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:20Z,99\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:30Z,xRbS\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:40Z,PtTh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:50Z,ZjN2je\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:00Z,YZNBh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:10Z,pu08\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:20Z,ixlOdT\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:30Z,YqV\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:40Z,GjbWF\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:50Z,GiX1Bb\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:00Z,DQCZXZ\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:10Z,atopRR2\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:20Z,TNKKB\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:30Z,84\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:40Z,52\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:50Z,23\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:00Z,62\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:10Z,22\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:20Z,78\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:30Z,79\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:40Z,33\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:50Z,97\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:00Z,90\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:10Z,96\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:20Z,10\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,-61.68790887989735\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,-6.3173755351186465\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-26.049728557657513\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,114.285955884979\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,16.140262630578995\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,29.50336437998469\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,7.940387008821781\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,49.460104214779086\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-36.564150808873954\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,34.319039251798635\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,79.27019811403116\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,41.91029522104053\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-25\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,46\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-2\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,-14\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,-53\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,17\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,-99\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-85\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,18\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,99\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,xRbS\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,PtTh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,ZjN2je\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,YZNBh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,pu08\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,ixlOdT\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,YqV\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,GjbWF\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,GiX1Bb\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,DQCZXZ\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,atopRR2\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,TNKKB\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,84\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,52\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,23\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,62\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,22\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,78\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,79\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,33\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,97\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,90\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,96\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,10\n\"\nt_set = (table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.set(o: {t0: \"server01\"})\n\ntest _set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "set_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "set_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "set_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "set_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "set_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   95,
					},
					File:   "set_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:30Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:40Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:50Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:00Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:10Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:20Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:30Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:40Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:50Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:00Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:10Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:20Z,true\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:30Z,-61.68790887989735\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:40Z,-6.3173755351186465\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:50Z,-26.049728557657513\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:00Z,114.285955884979\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:10Z,16.140262630578995\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:20Z,29.50336437998469\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:30Z,7.940387008821781\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:40Z,49.460104214779086\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:50Z,-36.564150808873954\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:00Z,34.319039251798635\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:10Z,79.27019811403116\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:20Z,41.91029522104053\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:30Z,-44\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:40Z,-25\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:50Z,46\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:00Z,-2\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:10Z,-14\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:20Z,-53\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:30Z,17\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:40Z,-44\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:50Z,-99\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:00Z,-85\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:10Z,18\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:20Z,99\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:30Z,xRbS\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:40Z,PtTh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:50Z,ZjN2je\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:00Z,YZNBh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:10Z,pu08\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:20Z,ixlOdT\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:30Z,YqV\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:40Z,GjbWF\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:50Z,GiX1Bb\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:00Z,DQCZXZ\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:10Z,atopRR2\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:20Z,TNKKB\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:30Z,84\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:40Z,52\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:50Z,23\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:00Z,62\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:10Z,22\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:20Z,78\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:30Z,79\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:40Z,33\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:50Z,97\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:00Z,90\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:10Z,96\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:20Z,10\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "set_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   95,
						},
						File:   "set_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:30Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:40Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:50Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:00Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:10Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:20Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:30Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:40Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:50Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:00Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:10Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:20Z,true\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:30Z,-61.68790887989735\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:40Z,-6.3173755351186465\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:50Z,-26.049728557657513\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:00Z,114.285955884979\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:10Z,16.140262630578995\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:20Z,29.50336437998469\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:30Z,7.940387008821781\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:40Z,49.460104214779086\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:50Z,-36.564150808873954\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:00Z,34.319039251798635\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:10Z,79.27019811403116\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:20Z,41.91029522104053\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:30Z,-44\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:40Z,-25\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:50Z,46\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:00Z,-2\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:10Z,-14\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:20Z,-53\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:30Z,17\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:40Z,-44\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:50Z,-99\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:00Z,-85\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:10Z,18\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:20Z,99\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:30Z,xRbS\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:40Z,PtTh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:50Z,ZjN2je\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:00Z,YZNBh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:10Z,pu08\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:20Z,ixlOdT\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:30Z,YqV\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:40Z,GjbWF\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:50Z,GiX1Bb\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:00Z,DQCZXZ\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:10Z,atopRR2\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:20Z,TNKKB\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:30Z,84\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:40Z,52\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:50Z,23\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:00Z,62\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:10Z,22\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:20Z,78\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:30Z,79\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:40Z,33\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:50Z,97\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:00Z,90\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:10Z,96\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:20Z,10\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:30Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:40Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:13:50Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:00Z,false\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:10Z,true\n,,0,thmWJ,GK1Ji,SbkiNS9,2018-12-19T22:14:20Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:30Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:40Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:13:50Z,false\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:00Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:10Z,true\n,,1,thmWJ,GK1Ji,gpmhNEw,2018-12-19T22:14:20Z,true\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:30Z,-61.68790887989735\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:40Z,-6.3173755351186465\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:13:50Z,-26.049728557657513\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:00Z,114.285955884979\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:10Z,16.140262630578995\n,,2,thmWJ,c9wjx7r,SbkiNS9,2018-12-19T22:14:20Z,29.50336437998469\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:30Z,7.940387008821781\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:40Z,49.460104214779086\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:13:50Z,-36.564150808873954\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:00Z,34.319039251798635\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:10Z,79.27019811403116\n,,3,thmWJ,c9wjx7r,gpmhNEw,2018-12-19T22:14:20Z,41.91029522104053\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:30Z,-44\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:40Z,-25\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:13:50Z,46\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:00Z,-2\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:10Z,-14\n,,4,thmWJ,iUcIq,SbkiNS9,2018-12-19T22:14:20Z,-53\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:30Z,17\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:40Z,-44\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:13:50Z,-99\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:00Z,-85\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:10Z,18\n,,5,thmWJ,iUcIq,gpmhNEw,2018-12-19T22:14:20Z,99\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:30Z,xRbS\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:40Z,PtTh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:13:50Z,ZjN2je\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:00Z,YZNBh\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:10Z,pu08\n,,6,thmWJ,urO72,SbkiNS9,2018-12-19T22:14:20Z,ixlOdT\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:30Z,YqV\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:40Z,GjbWF\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:13:50Z,GiX1Bb\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:00Z,DQCZXZ\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:10Z,atopRR2\n,,7,thmWJ,urO72,gpmhNEw,2018-12-19T22:14:20Z,TNKKB\n\n#datatype,string,long,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_measurement,_field,t0,_time,_value\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:30Z,84\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:40Z,52\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:13:50Z,23\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:00Z,62\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:10Z,22\n,,8,thmWJ,zmk1YWi,SbkiNS9,2018-12-19T22:14:20Z,78\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:30Z,79\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:40Z,33\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:13:50Z,97\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:00Z,90\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:10Z,96\n,,9,thmWJ,zmk1YWi,gpmhNEw,2018-12-19T22:14:20Z,10\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   178,
					},
					File:   "set_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,-61.68790887989735\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,-6.3173755351186465\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-26.049728557657513\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,114.285955884979\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,16.140262630578995\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,29.50336437998469\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,7.940387008821781\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,49.460104214779086\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-36.564150808873954\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,34.319039251798635\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,79.27019811403116\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,41.91029522104053\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-25\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,46\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-2\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,-14\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,-53\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,17\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,-99\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-85\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,18\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,99\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,xRbS\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,PtTh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,ZjN2je\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,YZNBh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,pu08\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,ixlOdT\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,YqV\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,GjbWF\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,GiX1Bb\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,DQCZXZ\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,atopRR2\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,TNKKB\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,84\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,52\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,23\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,62\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,22\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,78\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,79\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,33\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,97\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,90\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,96\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,10\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   96,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   96,
						},
						File:   "set_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   96,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   178,
						},
						File:   "set_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,-61.68790887989735\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,-6.3173755351186465\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-26.049728557657513\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,114.285955884979\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,16.140262630578995\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,29.50336437998469\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,7.940387008821781\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,49.460104214779086\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-36.564150808873954\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,34.319039251798635\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,79.27019811403116\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,41.91029522104053\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-25\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,46\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-2\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,-14\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,-53\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,17\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,-99\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-85\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,18\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,99\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,xRbS\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,PtTh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,ZjN2je\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,YZNBh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,pu08\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,ixlOdT\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,YqV\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,GjbWF\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,GiX1Bb\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,DQCZXZ\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,atopRR2\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,TNKKB\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,84\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,52\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,23\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,62\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,22\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,78\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,79\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,33\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,97\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,90\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,96\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,10\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   97,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,boolean\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:30Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:40Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:13:50Z,false\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:00Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:10Z,true\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,GK1Ji,server01,2018-12-19T22:14:20Z,true\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,-61.68790887989735\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,-6.3173755351186465\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-26.049728557657513\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,114.285955884979\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,16.140262630578995\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,29.50336437998469\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:30Z,7.940387008821781\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:40Z,49.460104214779086\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:13:50Z,-36.564150808873954\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:00Z,34.319039251798635\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:10Z,79.27019811403116\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,c9wjx7r,server01,2018-12-19T22:14:20Z,41.91029522104053\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-25\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,46\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-2\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,-14\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,-53\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:30Z,17\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:40Z,-44\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:13:50Z,-99\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:00Z,-85\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:10Z,18\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,iUcIq,server01,2018-12-19T22:14:20Z,99\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,string\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,xRbS\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,PtTh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,ZjN2je\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,YZNBh\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,pu08\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,ixlOdT\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:30Z,YqV\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:40Z,GjbWF\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:13:50Z,GiX1Bb\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:00Z,DQCZXZ\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:10Z,atopRR2\n,,3,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,urO72,server01,2018-12-19T22:14:20Z,TNKKB\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,true,true,true,false,false\n#default,_result,,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_time,_value\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,84\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,52\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,23\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,62\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,22\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,78\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:30Z,79\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:40Z,33\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:13:50Z,97\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:00Z,90\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:10Z,96\n,,4,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,thmWJ,zmk1YWi,server01,2018-12-19T22:14:20Z,10\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 49,
						Line:   182,
					},
					File:   "set_test.flux",
					Source: "t_set = (table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.set(o: {t0: \"server01\"})",
					Start: ast.Position{
						Column: 1,
						Line:   179,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   179,
						},
						File:   "set_test.flux",
						Source: "t_set",
						Start: ast.Position{
							Column: 1,
							Line:   179,
						},
					},
				},
				Name: "t_set",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 49,
							Line:   182,
						},
						File:   "set_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.set(o: {t0: \"server01\"})",
						Start: ast.Position{
							Column: 9,
							Line:   179,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   180,
									},
									File:   "set_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   180,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   181,
								},
								File:   "set_test.flux",
								Source: "table\n        |> range(start: 2018-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   180,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   181,
										},
										File:   "set_test.flux",
										Source: "start: 2018-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   181,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   181,
											},
											File:   "set_test.flux",
											Source: "start: 2018-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   181,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   181,
												},
												File:   "set_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   181,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   181,
												},
												File:   "set_test.flux",
												Source: "2018-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   181,
												},
											},
										},
										Value: parser.MustParseTime("2018-01-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   181,
									},
									File:   "set_test.flux",
									Source: "range(start: 2018-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   181,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   181,
										},
										File:   "set_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   181,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 49,
								Line:   182,
							},
							File:   "set_test.flux",
							Source: "table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.set(o: {t0: \"server01\"})",
							Start: ast.Position{
								Column: 5,
								Line:   180,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 48,
										Line:   182,
									},
									File:   "set_test.flux",
									Source: "o: {t0: \"server01\"}",
									Start: ast.Position{
										Column: 29,
										Line:   182,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 48,
											Line:   182,
										},
										File:   "set_test.flux",
										Source: "o: {t0: \"server01\"}",
										Start: ast.Position{
											Column: 29,
											Line:   182,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 30,
												Line:   182,
											},
											File:   "set_test.flux",
											Source: "o",
											Start: ast.Position{
												Column: 29,
												Line:   182,
											},
										},
									},
									Name: "o",
								},
								Separator: nil,
								Value: &ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 48,
												Line:   182,
											},
											File:   "set_test.flux",
											Source: "{t0: \"server01\"}",
											Start: ast.Position{
												Column: 32,
												Line:   182,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   182,
												},
												File:   "set_test.flux",
												Source: "t0: \"server01\"",
												Start: ast.Position{
													Column: 33,
													Line:   182,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   182,
													},
													File:   "set_test.flux",
													Source: "t0",
													Start: ast.Position{
														Column: 33,
														Line:   182,
													},
												},
											},
											Name: "t0",
										},
										Separator: nil,
										Value: &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   182,
													},
													File:   "set_test.flux",
													Source: "\"server01\"",
													Start: ast.Position{
														Column: 37,
														Line:   182,
													},
												},
											},
											Value: "server01",
										},
									}},
									Rbrace: nil,
									With:   nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 49,
									Line:   182,
								},
								File:   "set_test.flux",
								Source: "experimental.set(o: {t0: \"server01\"})",
								Start: ast.Position{
									Column: 12,
									Line:   182,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 28,
										Line:   182,
									},
									File:   "set_test.flux",
									Source: "experimental.set",
									Start: ast.Position{
										Column: 12,
										Line:   182,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   182,
										},
										File:   "set_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   182,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   182,
										},
										File:   "set_test.flux",
										Source: "set",
										Start: ast.Position{
											Column: 25,
											Line:   182,
										},
									},
								},
								Name: "set",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   179,
							},
							File:   "set_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 10,
								Line:   179,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   179,
								},
								File:   "set_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 10,
									Line:   179,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   179,
							},
							File:   "set_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 16,
								Line:   179,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 110,
							Line:   184,
						},
						File:   "set_test.flux",
						Source: "_set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set})",
						Start: ast.Position{
							Column: 6,
							Line:   184,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 10,
								Line:   184,
							},
							File:   "set_test.flux",
							Source: "_set",
							Start: ast.Position{
								Column: 6,
								Line:   184,
							},
						},
					},
					Name: "_set",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 110,
								Line:   184,
							},
							File:   "set_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set})",
							Start: ast.Position{
								Column: 13,
								Line:   184,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 110,
									Line:   184,
								},
								File:   "set_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set})",
								Start: ast.Position{
									Column: 19,
									Line:   184,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 109,
										Line:   184,
									},
									File:   "set_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set}",
									Start: ast.Position{
										Column: 20,
										Line:   184,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   184,
										},
										File:   "set_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 21,
											Line:   184,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 21,
												Line:   184,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   184,
												},
												File:   "set_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 48,
													Line:   184,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 48,
														Line:   184,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   184,
														},
														File:   "set_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 48,
															Line:   184,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   184,
														},
														File:   "set_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 53,
															Line:   184,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 28,
												Line:   184,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   184,
												},
												File:   "set_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 28,
													Line:   184,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 28,
														Line:   184,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 36,
														Line:   184,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 97,
											Line:   184,
										},
										File:   "set_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 62,
											Line:   184,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 62,
												Line:   184,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   184,
												},
												File:   "set_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 84,
													Line:   184,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 84,
														Line:   184,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 87,
															Line:   184,
														},
														File:   "set_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 84,
															Line:   184,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   184,
														},
														File:   "set_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 89,
															Line:   184,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 97,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 68,
												Line:   184,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 83,
													Line:   184,
												},
												File:   "set_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 68,
													Line:   184,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 75,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 68,
														Line:   184,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   184,
													},
													File:   "set_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 76,
														Line:   184,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 108,
											Line:   184,
										},
										File:   "set_test.flux",
										Source: "fn: t_set",
										Start: ast.Position{
											Column: 99,
											Line:   184,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 99,
												Line:   184,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   184,
											},
											File:   "set_test.flux",
											Source: "t_set",
											Start: ast.Position{
												Column: 103,
												Line:   184,
											},
										},
									},
									Name: "t_set",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 110,
						Line:   184,
					},
					File:   "set_test.flux",
					Source: "test _set = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_set})",
					Start: ast.Position{
						Column: 1,
						Line:   184,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "set_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "set_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "set_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "set_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "set_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "set_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "set_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 112,
					Line:   59,
				},
				File:   "skew_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,0.3057387969724791\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,0.7564084754909545\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,0.6793279546139146\n\"\nt_skew = (table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.skew()\n\ntest _skew = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "skew_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "skew_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "skew_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "skew_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "skew_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "skew_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "skew_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "skew_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   53,
					},
					File:   "skew_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,0.3057387969724791\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,0.7564084754909545\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,0.6793279546139146\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   44,
						},
						File:   "skew_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   44,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   53,
						},
						File:   "skew_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,0.3057387969724791\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,0.7564084754909545\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,0.6793279546139146\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   45,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,0.3057387969724791\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,0.7564084754909545\n,,2,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,0.6793279546139146\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 31,
						Line:   57,
					},
					File:   "skew_test.flux",
					Source: "t_skew = (table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.skew()",
					Start: ast.Position{
						Column: 1,
						Line:   54,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   54,
						},
						File:   "skew_test.flux",
						Source: "t_skew",
						Start: ast.Position{
							Column: 1,
							Line:   54,
						},
					},
				},
				Name: "t_skew",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 31,
							Line:   57,
						},
						File:   "skew_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.skew()",
						Start: ast.Position{
							Column: 10,
							Line:   54,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   55,
									},
									File:   "skew_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   55,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   56,
								},
								File:   "skew_test.flux",
								Source: "table\n        |> range(start: 2018-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   55,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   56,
										},
										File:   "skew_test.flux",
										Source: "start: 2018-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   56,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   56,
											},
											File:   "skew_test.flux",
											Source: "start: 2018-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   56,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   56,
												},
												File:   "skew_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   56,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   56,
												},
												File:   "skew_test.flux",
												Source: "2018-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   56,
												},
											},
										},
										Value: parser.MustParseTime("2018-01-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   56,
									},
									File:   "skew_test.flux",
									Source: "range(start: 2018-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   56,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   56,
										},
										File:   "skew_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   56,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   57,
							},
							File:   "skew_test.flux",
							Source: "table\n        |> range(start: 2018-01-01T00:00:00Z)\n        |> experimental.skew()",
							Start: ast.Position{
								Column: 5,
								Line:   55,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 31,
									Line:   57,
								},
								File:   "skew_test.flux",
								Source: "experimental.skew()",
								Start: ast.Position{
									Column: 12,
									Line:   57,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 29,
										Line:   57,
									},
									File:   "skew_test.flux",
									Source: "experimental.skew",
									Start: ast.Position{
										Column: 12,
										Line:   57,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   57,
										},
										File:   "skew_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   57,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 29,
											Line:   57,
										},
										File:   "skew_test.flux",
										Source: "skew",
										Start: ast.Position{
											Column: 25,
											Line:   57,
										},
									},
								},
								Name: "skew",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   54,
							},
							File:   "skew_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 11,
								Line:   54,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 16,
									Line:   54,
								},
								File:   "skew_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 11,
									Line:   54,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   54,
							},
							File:   "skew_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 17,
								Line:   54,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 112,
							Line:   59,
						},
						File:   "skew_test.flux",
						Source: "_skew = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew})",
						Start: ast.Position{
							Column: 6,
							Line:   59,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   59,
							},
							File:   "skew_test.flux",
							Source: "_skew",
							Start: ast.Position{
								Column: 6,
								Line:   59,
							},
						},
					},
					Name: "_skew",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 112,
								Line:   59,
							},
							File:   "skew_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew})",
							Start: ast.Position{
								Column: 14,
								Line:   59,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 112,
									Line:   59,
								},
								File:   "skew_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew})",
								Start: ast.Position{
									Column: 20,
									Line:   59,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 111,
										Line:   59,
									},
									File:   "skew_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew}",
									Start: ast.Position{
										Column: 21,
										Line:   59,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   59,
										},
										File:   "skew_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 22,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 22,
												Line:   59,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   59,
												},
												File:   "skew_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 49,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 49,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 52,
															Line:   59,
														},
														File:   "skew_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 49,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   59,
														},
														File:   "skew_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 54,
															Line:   59,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 29,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 48,
													Line:   59,
												},
												File:   "skew_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 29,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 36,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 29,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 37,
														Line:   59,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 98,
											Line:   59,
										},
										File:   "skew_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 63,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 63,
												Line:   59,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   59,
												},
												File:   "skew_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 85,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 85,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 88,
															Line:   59,
														},
														File:   "skew_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 85,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 97,
															Line:   59,
														},
														File:   "skew_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 90,
															Line:   59,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 98,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 69,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 84,
													Line:   59,
												},
												File:   "skew_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 69,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 76,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 69,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   59,
													},
													File:   "skew_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 77,
														Line:   59,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   59,
										},
										File:   "skew_test.flux",
										Source: "fn: t_skew",
										Start: ast.Position{
											Column: 100,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 100,
												Line:   59,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   59,
											},
											File:   "skew_test.flux",
											Source: "t_skew",
											Start: ast.Position{
												Column: 104,
												Line:   59,
											},
										},
									},
									Name: "t_skew",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 112,
						Line:   59,
					},
					File:   "skew_test.flux",
					Source: "test _skew = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_skew})",
					Start: ast.Position{
						Column: 1,
						Line:   59,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "skew_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "skew_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "skew_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "skew_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "skew_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "skew_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "skew_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 7,
					Line:   71,
				},
				File:   "spread_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,51\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,140\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,175.97386476487634\n\"\n\ntest _spread = () =>\n    ({\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    })",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "spread_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "spread_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "spread_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "spread_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "spread_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "spread_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "spread_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "spread_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   61,
					},
					File:   "spread_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,51\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,140\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,175.97386476487634\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   44,
						},
						File:   "spread_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   44,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   61,
						},
						File:   "spread_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,51\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,140\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,175.97386476487634\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   45,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,51\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,140\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,175.97386476487634\n",
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   71,
						},
						File:   "spread_test.flux",
						Source: "_spread = () =>\n    ({\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    })",
						Start: ast.Position{
							Column: 6,
							Line:   63,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 13,
								Line:   63,
							},
							File:   "spread_test.flux",
							Source: "_spread",
							Start: ast.Position{
								Column: 6,
								Line:   63,
							},
						},
					},
					Name: "_spread",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 7,
								Line:   71,
							},
							File:   "spread_test.flux",
							Source: "() =>\n    ({\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    })",
							Start: ast.Position{
								Column: 16,
								Line:   63,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 7,
									Line:   71,
								},
								File:   "spread_test.flux",
								Source: "({\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    })",
								Start: ast.Position{
									Column: 5,
									Line:   64,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 6,
										Line:   71,
									},
									File:   "spread_test.flux",
									Source: "{\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    }",
									Start: ast.Position{
										Column: 6,
										Line:   64,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 48,
											Line:   65,
										},
										File:   "spread_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 9,
											Line:   65,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   65,
											},
											File:   "spread_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 9,
												Line:   65,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   65,
												},
												File:   "spread_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 36,
													Line:   65,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   65,
													},
													File:   "spread_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 36,
														Line:   65,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 39,
															Line:   65,
														},
														File:   "spread_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 36,
															Line:   65,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 47,
															Line:   65,
														},
														File:   "spread_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 41,
															Line:   65,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 48,
												Line:   65,
											},
											File:   "spread_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 16,
												Line:   65,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   65,
												},
												File:   "spread_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 16,
													Line:   65,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   65,
													},
													File:   "spread_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 16,
														Line:   65,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   65,
													},
													File:   "spread_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 24,
														Line:   65,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 44,
											Line:   66,
										},
										File:   "spread_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 9,
											Line:   66,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   66,
											},
											File:   "spread_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 9,
												Line:   66,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 43,
													Line:   66,
												},
												File:   "spread_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 31,
													Line:   66,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 43,
														Line:   66,
													},
													File:   "spread_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 31,
														Line:   66,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 34,
															Line:   66,
														},
														File:   "spread_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 31,
															Line:   66,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 43,
															Line:   66,
														},
														File:   "spread_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 36,
															Line:   66,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 44,
												Line:   66,
											},
											File:   "spread_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 15,
												Line:   66,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 30,
													Line:   66,
												},
												File:   "spread_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 15,
													Line:   66,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 22,
														Line:   66,
													},
													File:   "spread_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 15,
														Line:   66,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 30,
														Line:   66,
													},
													File:   "spread_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 23,
														Line:   66,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   70,
										},
										File:   "spread_test.flux",
										Source: "fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread()",
										Start: ast.Position{
											Column: 9,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 11,
												Line:   67,
											},
											File:   "spread_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 9,
												Line:   67,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   70,
											},
											File:   "spread_test.flux",
											Source: "(table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread()",
											Start: ast.Position{
												Column: 13,
												Line:   67,
											},
										},
									},
									Body: &ast.PipeExpression{
										Argument: &ast.PipeExpression{
											Argument: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 18,
															Line:   68,
														},
														File:   "spread_test.flux",
														Source: "table",
														Start: ast.Position{
															Column: 13,
															Line:   68,
														},
													},
												},
												Name: "table",
											},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 54,
														Line:   69,
													},
													File:   "spread_test.flux",
													Source: "table\n                |> range(start: 2018-12-01T00:00:00Z)",
													Start: ast.Position{
														Column: 13,
														Line:   68,
													},
												},
											},
											Call: &ast.CallExpression{
												Arguments: []ast.Expression{&ast.ObjectExpression{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 53,
																Line:   69,
															},
															File:   "spread_test.flux",
															Source: "start: 2018-12-01T00:00:00Z",
															Start: ast.Position{
																Column: 26,
																Line:   69,
															},
														},
													},
													Lbrace: nil,
													Properties: []*ast.Property{&ast.Property{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 53,
																	Line:   69,
																},
																File:   "spread_test.flux",
																Source: "start: 2018-12-01T00:00:00Z",
																Start: ast.Position{
																	Column: 26,
																	Line:   69,
																},
															},
														},
														Comma: nil,
														Key: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 31,
																		Line:   69,
																	},
																	File:   "spread_test.flux",
																	Source: "start",
																	Start: ast.Position{
																		Column: 26,
																		Line:   69,
																	},
																},
															},
															Name: "start",
														},
														Separator: nil,
														Value: &ast.DateTimeLiteral{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 53,
																		Line:   69,
																	},
																	File:   "spread_test.flux",
																	Source: "2018-12-01T00:00:00Z",
																	Start: ast.Position{
																		Column: 33,
																		Line:   69,
																	},
																},
															},
															Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
														},
													}},
													Rbrace: nil,
													With:   nil,
												}},
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 54,
															Line:   69,
														},
														File:   "spread_test.flux",
														Source: "range(start: 2018-12-01T00:00:00Z)",
														Start: ast.Position{
															Column: 20,
															Line:   69,
														},
													},
												},
												Callee: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 25,
																Line:   69,
															},
															File:   "spread_test.flux",
															Source: "range",
															Start: ast.Position{
																Column: 20,
																Line:   69,
															},
														},
													},
													Name: "range",
												},
												Lparen: nil,
												Rparen: nil,
											},
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   70,
												},
												File:   "spread_test.flux",
												Source: "table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread()",
												Start: ast.Position{
													Column: 13,
													Line:   68,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: nil,
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   70,
													},
													File:   "spread_test.flux",
													Source: "experimental.spread()",
													Start: ast.Position{
														Column: 20,
														Line:   70,
													},
												},
											},
											Callee: &ast.MemberExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 39,
															Line:   70,
														},
														File:   "spread_test.flux",
														Source: "experimental.spread",
														Start: ast.Position{
															Column: 20,
															Line:   70,
														},
													},
												},
												Lbrack: nil,
												Object: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 32,
																Line:   70,
															},
															File:   "spread_test.flux",
															Source: "experimental",
															Start: ast.Position{
																Column: 20,
																Line:   70,
															},
														},
													},
													Name: "experimental",
												},
												Property: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 39,
																Line:   70,
															},
															File:   "spread_test.flux",
															Source: "spread",
															Start: ast.Position{
																Column: 33,
																Line:   70,
															},
														},
													},
													Name: "spread",
												},
												Rbrack: nil,
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									Lparen: nil,
									Params: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 22,
													Line:   67,
												},
												File:   "spread_test.flux",
												Source: "table=<-",
												Start: ast.Position{
													Column: 14,
													Line:   67,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   67,
													},
													File:   "spread_test.flux",
													Source: "table",
													Start: ast.Position{
														Column: 14,
														Line:   67,
													},
												},
											},
											Name: "table",
										},
										Separator: nil,
										Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 22,
													Line:   67,
												},
												File:   "spread_test.flux",
												Source: "<-",
												Start: ast.Position{
													Column: 20,
													Line:   67,
												},
											},
										}},
									}},
									Rparan: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 7,
						Line:   71,
					},
					File:   "spread_test.flux",
					Source: "test _spread = () =>\n    ({\n        input: testing.loadStorage(csv: inData),\n        want: testing.loadMem(csv: outData),\n        fn: (table=<-) =>\n            table\n                |> range(start: 2018-12-01T00:00:00Z)\n                |> experimental.spread(),\n    })",
					Start: ast.Position{
						Column: 1,
						Line:   63,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "spread_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "spread_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "spread_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "spread_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "spread_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "spread_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "spread_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   59,
				},
				File:   "stddev_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,20.5621010599598\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,52.060541679855774\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,59.9881468845287\n\"\nt_stddev = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.stddev()\n\ntest _stddev = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "stddev_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "stddev_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "stddev_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "stddev_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "stddev_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "stddev_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "stddev_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "stddev_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   53,
					},
					File:   "stddev_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,20.5621010599598\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,52.060541679855774\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,59.9881468845287\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   44,
						},
						File:   "stddev_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   44,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   53,
						},
						File:   "stddev_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,20.5621010599598\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,52.060541679855774\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,59.9881468845287\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   45,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,20.5621010599598\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,52.060541679855774\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,59.9881468845287\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 33,
						Line:   57,
					},
					File:   "stddev_test.flux",
					Source: "t_stddev = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.stddev()",
					Start: ast.Position{
						Column: 1,
						Line:   54,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   54,
						},
						File:   "stddev_test.flux",
						Source: "t_stddev",
						Start: ast.Position{
							Column: 1,
							Line:   54,
						},
					},
				},
				Name: "t_stddev",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 33,
							Line:   57,
						},
						File:   "stddev_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.stddev()",
						Start: ast.Position{
							Column: 12,
							Line:   54,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   55,
									},
									File:   "stddev_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   55,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   56,
								},
								File:   "stddev_test.flux",
								Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   55,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   56,
										},
										File:   "stddev_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   56,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   56,
											},
											File:   "stddev_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   56,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   56,
												},
												File:   "stddev_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   56,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   56,
												},
												File:   "stddev_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   56,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   56,
									},
									File:   "stddev_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   56,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   56,
										},
										File:   "stddev_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   56,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 33,
								Line:   57,
							},
							File:   "stddev_test.flux",
							Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.stddev()",
							Start: ast.Position{
								Column: 5,
								Line:   55,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 33,
									Line:   57,
								},
								File:   "stddev_test.flux",
								Source: "experimental.stddev()",
								Start: ast.Position{
									Column: 12,
									Line:   57,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   57,
									},
									File:   "stddev_test.flux",
									Source: "experimental.stddev",
									Start: ast.Position{
										Column: 12,
										Line:   57,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   57,
										},
										File:   "stddev_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   57,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   57,
										},
										File:   "stddev_test.flux",
										Source: "stddev",
										Start: ast.Position{
											Column: 25,
											Line:   57,
										},
									},
								},
								Name: "stddev",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   54,
							},
							File:   "stddev_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 13,
								Line:   54,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 18,
									Line:   54,
								},
								File:   "stddev_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 13,
									Line:   54,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   54,
							},
							File:   "stddev_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 19,
								Line:   54,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 116,
							Line:   59,
						},
						File:   "stddev_test.flux",
						Source: "_stddev = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev})",
						Start: ast.Position{
							Column: 6,
							Line:   59,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 13,
								Line:   59,
							},
							File:   "stddev_test.flux",
							Source: "_stddev",
							Start: ast.Position{
								Column: 6,
								Line:   59,
							},
						},
					},
					Name: "_stddev",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   59,
							},
							File:   "stddev_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev})",
							Start: ast.Position{
								Column: 16,
								Line:   59,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 116,
									Line:   59,
								},
								File:   "stddev_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev})",
								Start: ast.Position{
									Column: 22,
									Line:   59,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   59,
									},
									File:   "stddev_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev}",
									Start: ast.Position{
										Column: 23,
										Line:   59,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 63,
											Line:   59,
										},
										File:   "stddev_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 24,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 24,
												Line:   59,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 62,
													Line:   59,
												},
												File:   "stddev_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 51,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 62,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 51,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 54,
															Line:   59,
														},
														File:   "stddev_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 51,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 62,
															Line:   59,
														},
														File:   "stddev_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 56,
															Line:   59,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 63,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 31,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 50,
													Line:   59,
												},
												File:   "stddev_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 31,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 38,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 31,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 50,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 39,
														Line:   59,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 100,
											Line:   59,
										},
										File:   "stddev_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 65,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 65,
												Line:   59,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 99,
													Line:   59,
												},
												File:   "stddev_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 87,
													Line:   59,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 99,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 87,
														Line:   59,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 90,
															Line:   59,
														},
														File:   "stddev_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 87,
															Line:   59,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 99,
															Line:   59,
														},
														File:   "stddev_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 92,
															Line:   59,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 100,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 71,
												Line:   59,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 86,
													Line:   59,
												},
												File:   "stddev_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 71,
													Line:   59,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 78,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 71,
														Line:   59,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 86,
														Line:   59,
													},
													File:   "stddev_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 79,
														Line:   59,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   59,
										},
										File:   "stddev_test.flux",
										Source: "fn: t_stddev",
										Start: ast.Position{
											Column: 102,
											Line:   59,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 104,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 102,
												Line:   59,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   59,
											},
											File:   "stddev_test.flux",
											Source: "t_stddev",
											Start: ast.Position{
												Column: 106,
												Line:   59,
											},
										},
									},
									Name: "t_stddev",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 116,
						Line:   59,
					},
					File:   "stddev_test.flux",
					Source: "test _stddev = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_stddev})",
					Start: ast.Position{
						Column: 1,
						Line:   59,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "stddev_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "stddev_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "stddev_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "stddev_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "stddev_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "stddev_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "stddev_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 110,
					Line:   67,
				},
				File:   "sum_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,288\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,57\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,65.87456992286917\n\"\nt_sum = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.sum()\n\ntest _sum = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "sum_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "sum_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "sum_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "sum_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "sum_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "sum_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "sum_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "sum_test.flux",
						Source: "\"\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,dateTime:RFC3339,unsignedLong\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:05Z,70\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:15Z,48\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:25Z,33\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:35Z,24\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:45Z,38\n,,0,Sgf,DlXwgrw,2018-12-18T22:11:55Z,75\n\n#datatype,string,long,string,string,dateTime:RFC3339,long\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:05Z,96\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:15Z,-44\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:25Z,-25\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:35Z,46\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:45Z,-2\n,,1,Sgf,GxUPYq1,2018-12-18T22:11:55Z,-14\n\n#datatype,string,long,string,string,dateTime:RFC3339,double\n#group,false,false,true,true,false,false\n#default,_result,,,,,\n,result,table,_measurement,_field,_time,_value\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:05Z,-61.68790887989735\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:15Z,-6.3173755351186465\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:25Z,-26.049728557657513\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:35Z,114.285955884979\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:45Z,16.140262630578995\n,,2,Sgf,qaOnnQc,2018-12-18T22:11:55Z,29.50336437998469\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   61,
					},
					File:   "sum_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,288\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,57\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,65.87456992286917\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   44,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   44,
						},
						File:   "sum_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   44,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   61,
						},
						File:   "sum_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,288\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,57\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,65.87456992286917\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   45,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,unsignedLong\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,DlXwgrw,288\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,long\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,GxUPYq1,57\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\n#group,false,false,true,true,true,true,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_field,_value\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,Sgf,qaOnnQc,65.87456992286917\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 30,
						Line:   65,
					},
					File:   "sum_test.flux",
					Source: "t_sum = (table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.sum()",
					Start: ast.Position{
						Column: 1,
						Line:   62,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   62,
						},
						File:   "sum_test.flux",
						Source: "t_sum",
						Start: ast.Position{
							Column: 1,
							Line:   62,
						},
					},
				},
				Name: "t_sum",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 30,
							Line:   65,
						},
						File:   "sum_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.sum()",
						Start: ast.Position{
							Column: 9,
							Line:   62,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 10,
										Line:   63,
									},
									File:   "sum_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 5,
										Line:   63,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   64,
								},
								File:   "sum_test.flux",
								Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 5,
									Line:   63,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   64,
										},
										File:   "sum_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 18,
											Line:   64,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   64,
											},
											File:   "sum_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   64,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 23,
													Line:   64,
												},
												File:   "sum_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 18,
													Line:   64,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   64,
												},
												File:   "sum_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 25,
													Line:   64,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-01T00:00:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   64,
									},
									File:   "sum_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 12,
										Line:   64,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 17,
											Line:   64,
										},
										File:   "sum_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 12,
											Line:   64,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 30,
								Line:   65,
							},
							File:   "sum_test.flux",
							Source: "table\n        |> range(start: 2018-12-01T00:00:00Z)\n        |> experimental.sum()",
							Start: ast.Position{
								Column: 5,
								Line:   63,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 30,
									Line:   65,
								},
								File:   "sum_test.flux",
								Source: "experimental.sum()",
								Start: ast.Position{
									Column: 12,
									Line:   65,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 28,
										Line:   65,
									},
									File:   "sum_test.flux",
									Source: "experimental.sum",
									Start: ast.Position{
										Column: 12,
										Line:   65,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   65,
										},
										File:   "sum_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   65,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   65,
										},
										File:   "sum_test.flux",
										Source: "sum",
										Start: ast.Position{
											Column: 25,
											Line:   65,
										},
									},
								},
								Name: "sum",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   62,
							},
							File:   "sum_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 10,
								Line:   62,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   62,
								},
								File:   "sum_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 10,
									Line:   62,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   62,
							},
							File:   "sum_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 16,
								Line:   62,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 110,
							Line:   67,
						},
						File:   "sum_test.flux",
						Source: "_sum = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum})",
						Start: ast.Position{
							Column: 6,
							Line:   67,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 10,
								Line:   67,
							},
							File:   "sum_test.flux",
							Source: "_sum",
							Start: ast.Position{
								Column: 6,
								Line:   67,
							},
						},
					},
					Name: "_sum",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 110,
								Line:   67,
							},
							File:   "sum_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum})",
							Start: ast.Position{
								Column: 13,
								Line:   67,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 110,
									Line:   67,
								},
								File:   "sum_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum})",
								Start: ast.Position{
									Column: 19,
									Line:   67,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 109,
										Line:   67,
									},
									File:   "sum_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum}",
									Start: ast.Position{
										Column: 20,
										Line:   67,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   67,
										},
										File:   "sum_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 21,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 26,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 21,
												Line:   67,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   67,
												},
												File:   "sum_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 48,
													Line:   67,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 48,
														Line:   67,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 51,
															Line:   67,
														},
														File:   "sum_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 48,
															Line:   67,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   67,
														},
														File:   "sum_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 53,
															Line:   67,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 28,
												Line:   67,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   67,
												},
												File:   "sum_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 28,
													Line:   67,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 35,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 28,
														Line:   67,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 36,
														Line:   67,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 97,
											Line:   67,
										},
										File:   "sum_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 62,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 62,
												Line:   67,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   67,
												},
												File:   "sum_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 84,
													Line:   67,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 84,
														Line:   67,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 87,
															Line:   67,
														},
														File:   "sum_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 84,
															Line:   67,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   67,
														},
														File:   "sum_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 89,
															Line:   67,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 97,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 68,
												Line:   67,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 83,
													Line:   67,
												},
												File:   "sum_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 68,
													Line:   67,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 75,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 68,
														Line:   67,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   67,
													},
													File:   "sum_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 76,
														Line:   67,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 108,
											Line:   67,
										},
										File:   "sum_test.flux",
										Source: "fn: t_sum",
										Start: ast.Position{
											Column: 99,
											Line:   67,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 99,
												Line:   67,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   67,
											},
											File:   "sum_test.flux",
											Source: "t_sum",
											Start: ast.Position{
												Column: 103,
												Line:   67,
											},
										},
									},
									Name: "t_sum",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 110,
						Line:   67,
					},
					File:   "sum_test.flux",
					Source: "test _sum = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_sum})",
					Start: ast.Position{
						Column: 1,
						Line:   67,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "sum_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "sum_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "sum_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "sum_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "sum_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "sum_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "sum_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   46,
				},
				File:   "unique_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,0,2018-05-22T19:53:56Z,55,f0,a,aa\n,,0,2018-05-22T19:54:06Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,1,2018-05-22T19:53:46Z,70,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,2,2018-05-22T19:54:16Z,11,f1,c,aa\n,,2,2018-05-22T19:53:56Z,99,f1,c,aa\n,,2,2018-05-22T19:54:06Z,85,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n,,4,2018-05-22T19:53:36Z,69,f1,e,aa\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n\"\nt_unique = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.unique()\n        |> drop(columns: [\"_start\", \"_stop\"])\n\ntest _unique = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "unique_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "unique_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "unique_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "unique_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "unique_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   27,
					},
					File:   "unique_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,0,2018-05-22T19:53:56Z,55,f0,a,aa\n,,0,2018-05-22T19:54:06Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,1,2018-05-22T19:53:46Z,70,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,2,2018-05-22T19:54:16Z,11,f1,c,aa\n,,2,2018-05-22T19:53:56Z,99,f1,c,aa\n,,2,2018-05-22T19:54:06Z,85,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n,,4,2018-05-22T19:53:36Z,69,f1,e,aa\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "unique_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   27,
						},
						File:   "unique_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,0,2018-05-22T19:53:56Z,55,f0,a,aa\n,,0,2018-05-22T19:54:06Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,1,2018-05-22T19:53:46Z,70,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,2,2018-05-22T19:54:16Z,11,f1,c,aa\n,,2,2018-05-22T19:53:56Z,99,f1,c,aa\n,,2,2018-05-22T19:54:06Z,85,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n,,4,2018-05-22T19:53:36Z,69,f1,e,aa\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,0,2018-05-22T19:53:56Z,55,f0,a,aa\n,,0,2018-05-22T19:54:06Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,1,2018-05-22T19:53:46Z,70,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,2,2018-05-22T19:54:16Z,11,f1,c,aa\n,,2,2018-05-22T19:53:56Z,99,f1,c,aa\n,,2,2018-05-22T19:54:06Z,85,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n,,4,2018-05-22T19:53:36Z,69,f1,e,aa\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   39,
					},
					File:   "unique_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   28,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   28,
						},
						File:   "unique_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   28,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   39,
						},
						File:   "unique_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   29,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,string\n#group,false,false,false,false,true,true,true\n#default,_result,,,,,,\n,result,table,_time,_test,_field,_value,_measurement\n,,0,2018-05-22T19:54:16Z,20,f0,a,aa\n,,1,2018-05-22T19:53:26Z,35,f0,b,aa\n,,2,2018-05-22T19:53:36Z,15,f1,c,aa\n,,3,2018-05-22T19:53:26Z,23,f1,d,aa\n,,4,2018-05-22T19:53:46Z,37,f1,e,aa\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 46,
						Line:   44,
					},
					File:   "unique_test.flux",
					Source: "t_unique = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.unique()\n        |> drop(columns: [\"_start\", \"_stop\"])",
					Start: ast.Position{
						Column: 1,
						Line:   40,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   40,
						},
						File:   "unique_test.flux",
						Source: "t_unique",
						Start: ast.Position{
							Column: 1,
							Line:   40,
						},
					},
				},
				Name: "t_unique",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 46,
							Line:   44,
						},
						File:   "unique_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.unique()\n        |> drop(columns: [\"_start\", \"_stop\"])",
						Start: ast.Position{
							Column: 12,
							Line:   40,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 10,
											Line:   41,
										},
										File:   "unique_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 5,
											Line:   41,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 46,
										Line:   42,
									},
									File:   "unique_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)",
									Start: ast.Position{
										Column: 5,
										Line:   41,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   42,
											},
											File:   "unique_test.flux",
											Source: "start: 2018-05-22T00:00:00Z",
											Start: ast.Position{
												Column: 18,
												Line:   42,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 45,
													Line:   42,
												},
												File:   "unique_test.flux",
												Source: "start: 2018-05-22T00:00:00Z",
												Start: ast.Position{
													Column: 18,
													Line:   42,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 23,
														Line:   42,
													},
													File:   "unique_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 18,
														Line:   42,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 45,
														Line:   42,
													},
													File:   "unique_test.flux",
													Source: "2018-05-22T00:00:00Z",
													Start: ast.Position{
														Column: 25,
														Line:   42,
													},
												},
											},
											Value: parser.MustParseTime("2018-05-22T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   42,
										},
										File:   "unique_test.flux",
										Source: "range(start: 2018-05-22T00:00:00Z)",
										Start: ast.Position{
											Column: 12,
											Line:   42,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 17,
												Line:   42,
											},
											File:   "unique_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 12,
												Line:   42,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 33,
									Line:   43,
								},
								File:   "unique_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.unique()",
								Start: ast.Position{
									Column: 5,
									Line:   41,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 33,
										Line:   43,
									},
									File:   "unique_test.flux",
									Source: "experimental.unique()",
									Start: ast.Position{
										Column: 12,
										Line:   43,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   43,
										},
										File:   "unique_test.flux",
										Source: "experimental.unique",
										Start: ast.Position{
											Column: 12,
											Line:   43,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   43,
											},
											File:   "unique_test.flux",
											Source: "experimental",
											Start: ast.Position{
												Column: 12,
												Line:   43,
											},
										},
									},
									Name: "experimental",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   43,
											},
											File:   "unique_test.flux",
											Source: "unique",
											Start: ast.Position{
												Column: 25,
												Line:   43,
											},
										},
									},
									Name: "unique",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 46,
								Line:   44,
							},
							File:   "unique_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T00:00:00Z)\n        |> experimental.unique()\n        |> drop(columns: [\"_start\", \"_stop\"])",
							Start: ast.Position{
								Column: 5,
								Line:   41,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   44,
									},
									File:   "unique_test.flux",
									Source: "columns: [\"_start\", \"_stop\"]",
									Start: ast.Position{
										Column: 17,
										Line:   44,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   44,
										},
										File:   "unique_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 17,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   44,
											},
											File:   "unique_test.flux",
											Source: "columns",
											Start: ast.Position{
												Column: 17,
												Line:   44,
											},
										},
									},
									Name: "columns",
								},
								Separator: nil,
								Value: &ast.ArrayExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   44,
											},
											File:   "unique_test.flux",
											Source: "[\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 26,
												Line:   44,
											},
										},
									},
									Elements: []ast.Expression{&ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 35,
													Line:   44,
												},
												File:   "unique_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 27,
													Line:   44,
												},
											},
										},
										Value: "_start",
									}, &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   44,
												},
												File:   "unique_test.flux",
												Source: "\"_stop\"",
												Start: ast.Position{
													Column: 37,
													Line:   44,
												},
											},
										},
										Value: "_stop",
									}},
									Lbrack: nil,
									Rbrack: nil,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 46,
									Line:   44,
								},
								File:   "unique_test.flux",
								Source: "drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 12,
									Line:   44,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 16,
										Line:   44,
									},
									File:   "unique_test.flux",
									Source: "drop",
									Start: ast.Position{
										Column: 12,
										Line:   44,
									},
								},
							},
							Name: "drop",
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   40,
							},
							File:   "unique_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 13,
								Line:   40,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 18,
									Line:   40,
								},
								File:   "unique_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 13,
									Line:   40,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   40,
							},
							File:   "unique_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 19,
								Line:   40,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 116,
							Line:   46,
						},
						File:   "unique_test.flux",
						Source: "_unique = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique})",
						Start: ast.Position{
							Column: 6,
							Line:   46,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 13,
								Line:   46,
							},
							File:   "unique_test.flux",
							Source: "_unique",
							Start: ast.Position{
								Column: 6,
								Line:   46,
							},
						},
					},
					Name: "_unique",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   46,
							},
							File:   "unique_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique})",
							Start: ast.Position{
								Column: 16,
								Line:   46,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 116,
									Line:   46,
								},
								File:   "unique_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique})",
								Start: ast.Position{
									Column: 22,
									Line:   46,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   46,
									},
									File:   "unique_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique}",
									Start: ast.Position{
										Column: 23,
										Line:   46,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 63,
											Line:   46,
										},
										File:   "unique_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 24,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 24,
												Line:   46,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 62,
													Line:   46,
												},
												File:   "unique_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 51,
													Line:   46,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 62,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 51,
														Line:   46,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 54,
															Line:   46,
														},
														File:   "unique_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 51,
															Line:   46,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 62,
															Line:   46,
														},
														File:   "unique_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 56,
															Line:   46,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 63,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 31,
												Line:   46,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 50,
													Line:   46,
												},
												File:   "unique_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 31,
													Line:   46,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 38,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 31,
														Line:   46,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 50,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 39,
														Line:   46,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 100,
											Line:   46,
										},
										File:   "unique_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 65,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 65,
												Line:   46,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 99,
													Line:   46,
												},
												File:   "unique_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 87,
													Line:   46,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 99,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 87,
														Line:   46,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 90,
															Line:   46,
														},
														File:   "unique_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 87,
															Line:   46,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 99,
															Line:   46,
														},
														File:   "unique_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 92,
															Line:   46,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 100,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 71,
												Line:   46,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 86,
													Line:   46,
												},
												File:   "unique_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 71,
													Line:   46,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 78,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 71,
														Line:   46,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 86,
														Line:   46,
													},
													File:   "unique_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 79,
														Line:   46,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   46,
										},
										File:   "unique_test.flux",
										Source: "fn: t_unique",
										Start: ast.Position{
											Column: 102,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 104,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 102,
												Line:   46,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   46,
											},
											File:   "unique_test.flux",
											Source: "t_unique",
											Start: ast.Position{
												Column: 106,
												Line:   46,
											},
										},
									},
									Name: "t_unique",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 116,
						Line:   46,
					},
					File:   "unique_test.flux",
					Source: "test _unique = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_unique})",
					Start: ast.Position{
						Column: 1,
						Line:   46,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "unique_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "unique_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "unique_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "unique_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "unique_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "unique_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "unique_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   50,
				},
				File:   "window_test.flux",
				Source: "package experimental_test\n\n\nimport \"testing\"\nimport \"experimental\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"\noutData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_time,_value\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:26Z,7602668\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:36Z,7602771\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:46Z,7602875\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:56Z,7602937\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:06Z,7603073.5\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:16Z,7603201.5\n\"\nt_window = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()\n        |> duplicate(column: \"_start\", as: \"_time\")\n        |> experimental.window(every: inf)\n\ntest _window = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window})",
				Start: ast.Position{
					Column: 1,
					Line:   1,
				},
			},
		},
		Body: []ast.Statement{&ast.OptionStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   7,
						},
						File:   "window_test.flux",
						Source: "now = () => 2030-01-01T00:00:00Z",
						Start: ast.Position{
							Column: 8,
							Line:   7,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 11,
								Line:   7,
							},
							File:   "window_test.flux",
							Source: "now",
							Start: ast.Position{
								Column: 8,
								Line:   7,
							},
						},
					},
					Name: "now",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   7,
							},
							File:   "window_test.flux",
							Source: "() => 2030-01-01T00:00:00Z",
							Start: ast.Position{
								Column: 14,
								Line:   7,
							},
						},
					},
					Body: &ast.DateTimeLiteral{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   7,
								},
								File:   "window_test.flux",
								Source: "2030-01-01T00:00:00Z",
								Start: ast.Position{
									Column: 20,
									Line:   7,
								},
							},
						},
						Value: parser.MustParseTime("2030-01-01T00:00:00Z"),
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   7,
					},
					File:   "window_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   7,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   27,
					},
					File:   "window_test.flux",
					Source: "inData =\n    \"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   9,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   9,
						},
						File:   "window_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   27,
						},
						File:   "window_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   10,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,long,string,string,string,string\n#group,false,false,false,false,true,true,true,true\n#default,_result,,,,,,,\n,result,table,_time,_value,_field,_measurement,host,name\n,,0,2018-05-22T19:53:26Z,15204688,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:36Z,15204894,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:46Z,15205102,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:53:56Z,15205226,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:06Z,15205499,io_time,diskio,host.local,disk0\n,,0,2018-05-22T19:54:16Z,15205755,io_time,diskio,host.local,disk0\n,,1,2018-05-22T19:53:26Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:36Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:46Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:53:56Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:06Z,648,io_time,diskio,host.local,disk2\n,,1,2018-05-22T19:54:16Z,648,io_time,diskio,host.local,disk2\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   40,
					},
					File:   "window_test.flux",
					Source: "outData =\n    \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_time,_value\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:26Z,7602668\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:36Z,7602771\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:46Z,7602875\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:56Z,7602937\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:06Z,7603073.5\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:16Z,7603201.5\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   28,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   28,
						},
						File:   "window_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   28,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   40,
						},
						File:   "window_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_time,_value\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:26Z,7602668\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:36Z,7602771\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:46Z,7602875\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:56Z,7602937\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:06Z,7603073.5\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:16Z,7603201.5\n\"",
						Start: ast.Position{
							Column: 5,
							Line:   29,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,dateTime:RFC3339,double\n#group,false,false,true,true,true,false,false\n#default,_result,,,,,,\n,result,table,_start,_stop,_measurement,_time,_value\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:26Z,7602668\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:36Z,7602771\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:46Z,7602875\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:53:56Z,7602937\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:06Z,7603073.5\n,,0,2018-05-22T19:53:00Z,2018-05-22T19:55:00Z,diskio,2018-05-22T19:54:16Z,7603201.5\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 43,
						Line:   48,
					},
					File:   "window_test.flux",
					Source: "t_window = (table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()\n        |> duplicate(column: \"_start\", as: \"_time\")\n        |> experimental.window(every: inf)",
					Start: ast.Position{
						Column: 1,
						Line:   41,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   41,
						},
						File:   "window_test.flux",
						Source: "t_window",
						Start: ast.Position{
							Column: 1,
							Line:   41,
						},
					},
				},
				Name: "t_window",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 43,
							Line:   48,
						},
						File:   "window_test.flux",
						Source: "(table=<-) =>\n    table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()\n        |> duplicate(column: \"_start\", as: \"_time\")\n        |> experimental.window(every: inf)",
						Start: ast.Position{
							Column: 12,
							Line:   41,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.PipeExpression{
							Argument: &ast.PipeExpression{
								Argument: &ast.PipeExpression{
									Argument: &ast.PipeExpression{
										Argument: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 10,
														Line:   42,
													},
													File:   "window_test.flux",
													Source: "table",
													Start: ast.Position{
														Column: 5,
														Line:   42,
													},
												},
											},
											Name: "table",
										},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 74,
													Line:   43,
												},
												File:   "window_test.flux",
												Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)",
												Start: ast.Position{
													Column: 5,
													Line:   42,
												},
											},
										},
										Call: &ast.CallExpression{
											Arguments: []ast.Expression{&ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   43,
														},
														File:   "window_test.flux",
														Source: "start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z",
														Start: ast.Position{
															Column: 18,
															Line:   43,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 45,
																Line:   43,
															},
															File:   "window_test.flux",
															Source: "start: 2018-05-22T19:53:00Z",
															Start: ast.Position{
																Column: 18,
																Line:   43,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 23,
																	Line:   43,
																},
																File:   "window_test.flux",
																Source: "start",
																Start: ast.Position{
																	Column: 18,
																	Line:   43,
																},
															},
														},
														Name: "start",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 45,
																	Line:   43,
																},
																File:   "window_test.flux",
																Source: "2018-05-22T19:53:00Z",
																Start: ast.Position{
																	Column: 25,
																	Line:   43,
																},
															},
														},
														Value: parser.MustParseTime("2018-05-22T19:53:00Z"),
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 73,
																Line:   43,
															},
															File:   "window_test.flux",
															Source: "stop: 2018-05-22T19:55:00Z",
															Start: ast.Position{
																Column: 47,
																Line:   43,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 51,
																	Line:   43,
																},
																File:   "window_test.flux",
																Source: "stop",
																Start: ast.Position{
																	Column: 47,
																	Line:   43,
																},
															},
														},
														Name: "stop",
													},
													Separator: nil,
													Value: &ast.DateTimeLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 73,
																	Line:   43,
																},
																File:   "window_test.flux",
																Source: "2018-05-22T19:55:00Z",
																Start: ast.Position{
																	Column: 53,
																	Line:   43,
																},
															},
														},
														Value: parser.MustParseTime("2018-05-22T19:55:00Z"),
													},
												}},
												Rbrace: nil,
												With:   nil,
											}},
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 74,
														Line:   43,
													},
													File:   "window_test.flux",
													Source: "range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)",
													Start: ast.Position{
														Column: 12,
														Line:   43,
													},
												},
											},
											Callee: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 17,
															Line:   43,
														},
														File:   "window_test.flux",
														Source: "range",
														Start: ast.Position{
															Column: 12,
															Line:   43,
														},
													},
												},
												Name: "range",
											},
											Lparen: nil,
											Rparen: nil,
										},
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 44,
												Line:   44,
											},
											File:   "window_test.flux",
											Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])",
											Start: ast.Position{
												Column: 5,
												Line:   42,
											},
										},
									},
									Call: &ast.CallExpression{
										Arguments: []ast.Expression{&ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 43,
														Line:   44,
													},
													File:   "window_test.flux",
													Source: "columns: [\"_measurement\"]",
													Start: ast.Position{
														Column: 18,
														Line:   44,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 43,
															Line:   44,
														},
														File:   "window_test.flux",
														Source: "columns: [\"_measurement\"]",
														Start: ast.Position{
															Column: 18,
															Line:   44,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 25,
																Line:   44,
															},
															File:   "window_test.flux",
															Source: "columns",
															Start: ast.Position{
																Column: 18,
																Line:   44,
															},
														},
													},
													Name: "columns",
												},
												Separator: nil,
												Value: &ast.ArrayExpression{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 43,
																Line:   44,
															},
															File:   "window_test.flux",
															Source: "[\"_measurement\"]",
															Start: ast.Position{
																Column: 27,
																Line:   44,
															},
														},
													},
													Elements: []ast.Expression{&ast.StringLiteral{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 42,
																	Line:   44,
																},
																File:   "window_test.flux",
																Source: "\"_measurement\"",
																Start: ast.Position{
																	Column: 28,
																	Line:   44,
																},
															},
														},
														Value: "_measurement",
													}},
													Lbrack: nil,
													Rbrack: nil,
												},
											}},
											Rbrace: nil,
											With:   nil,
										}},
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 44,
													Line:   44,
												},
												File:   "window_test.flux",
												Source: "group(columns: [\"_measurement\"])",
												Start: ast.Position{
													Column: 12,
													Line:   44,
												},
											},
										},
										Callee: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 17,
														Line:   44,
													},
													File:   "window_test.flux",
													Source: "group",
													Start: ast.Position{
														Column: 12,
														Line:   44,
													},
												},
											},
											Name: "group",
										},
										Lparen: nil,
										Rparen: nil,
									},
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   45,
										},
										File:   "window_test.flux",
										Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)",
										Start: ast.Position{
											Column: 5,
											Line:   42,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   45,
												},
												File:   "window_test.flux",
												Source: "every: 1s",
												Start: ast.Position{
													Column: 32,
													Line:   45,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   45,
													},
													File:   "window_test.flux",
													Source: "every: 1s",
													Start: ast.Position{
														Column: 32,
														Line:   45,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 37,
															Line:   45,
														},
														File:   "window_test.flux",
														Source: "every",
														Start: ast.Position{
															Column: 32,
															Line:   45,
														},
													},
												},
												Name: "every",
											},
											Separator: nil,
											Value: &ast.DurationLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   45,
														},
														File:   "window_test.flux",
														Source: "1s",
														Start: ast.Position{
															Column: 39,
															Line:   45,
														},
													},
												},
												Values: []ast.Duration{ast.Duration{
													Magnitude: int64(1),
													Unit:      "s",
												}},
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   45,
											},
											File:   "window_test.flux",
											Source: "experimental.window(every: 1s)",
											Start: ast.Position{
												Column: 12,
												Line:   45,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 31,
													Line:   45,
												},
												File:   "window_test.flux",
												Source: "experimental.window",
												Start: ast.Position{
													Column: 12,
													Line:   45,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 24,
														Line:   45,
													},
													File:   "window_test.flux",
													Source: "experimental",
													Start: ast.Position{
														Column: 12,
														Line:   45,
													},
												},
											},
											Name: "experimental",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   45,
													},
													File:   "window_test.flux",
													Source: "window",
													Start: ast.Position{
														Column: 25,
														Line:   45,
													},
												},
											},
											Name: "window",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 18,
										Line:   46,
									},
									File:   "window_test.flux",
									Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()",
									Start: ast.Position{
										Column: 5,
										Line:   42,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: nil,
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 18,
											Line:   46,
										},
										File:   "window_test.flux",
										Source: "mean()",
										Start: ast.Position{
											Column: 12,
											Line:   46,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 16,
												Line:   46,
											},
											File:   "window_test.flux",
											Source: "mean",
											Start: ast.Position{
												Column: 12,
												Line:   46,
											},
										},
									},
									Name: "mean",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 52,
									Line:   47,
								},
								File:   "window_test.flux",
								Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()\n        |> duplicate(column: \"_start\", as: \"_time\")",
								Start: ast.Position{
									Column: 5,
									Line:   42,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 51,
											Line:   47,
										},
										File:   "window_test.flux",
										Source: "column: \"_start\", as: \"_time\"",
										Start: ast.Position{
											Column: 22,
											Line:   47,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 38,
												Line:   47,
											},
											File:   "window_test.flux",
											Source: "column: \"_start\"",
											Start: ast.Position{
												Column: 22,
												Line:   47,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 28,
													Line:   47,
												},
												File:   "window_test.flux",
												Source: "column",
												Start: ast.Position{
													Column: 22,
													Line:   47,
												},
											},
										},
										Name: "column",
									},
									Separator: nil,
									Value: &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 38,
													Line:   47,
												},
												File:   "window_test.flux",
												Source: "\"_start\"",
												Start: ast.Position{
													Column: 30,
													Line:   47,
												},
											},
										},
										Value: "_start",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 51,
												Line:   47,
											},
											File:   "window_test.flux",
											Source: "as: \"_time\"",
											Start: ast.Position{
												Column: 40,
												Line:   47,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 42,
													Line:   47,
												},
												File:   "window_test.flux",
												Source: "as",
												Start: ast.Position{
													Column: 40,
													Line:   47,
												},
											},
										},
										Name: "as",
									},
									Separator: nil,
									Value: &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   47,
												},
												File:   "window_test.flux",
												Source: "\"_time\"",
												Start: ast.Position{
													Column: 44,
													Line:   47,
												},
											},
										},
										Value: "_time",
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 52,
										Line:   47,
									},
									File:   "window_test.flux",
									Source: "duplicate(column: \"_start\", as: \"_time\")",
									Start: ast.Position{
										Column: 12,
										Line:   47,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 21,
											Line:   47,
										},
										File:   "window_test.flux",
										Source: "duplicate",
										Start: ast.Position{
											Column: 12,
											Line:   47,
										},
									},
								},
								Name: "duplicate",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 43,
								Line:   48,
							},
							File:   "window_test.flux",
							Source: "table\n        |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:55:00Z)\n        |> group(columns: [\"_measurement\"])\n        |> experimental.window(every: 1s)\n        |> mean()\n        |> duplicate(column: \"_start\", as: \"_time\")\n        |> experimental.window(every: inf)",
							Start: ast.Position{
								Column: 5,
								Line:   42,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   48,
									},
									File:   "window_test.flux",
									Source: "every: inf",
									Start: ast.Position{
										Column: 32,
										Line:   48,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   48,
										},
										File:   "window_test.flux",
										Source: "every: inf",
										Start: ast.Position{
											Column: 32,
											Line:   48,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 37,
												Line:   48,
											},
											File:   "window_test.flux",
											Source: "every",
											Start: ast.Position{
												Column: 32,
												Line:   48,
											},
										},
									},
									Name: "every",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   48,
											},
											File:   "window_test.flux",
											Source: "inf",
											Start: ast.Position{
												Column: 39,
												Line:   48,
											},
										},
									},
									Name: "inf",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 43,
									Line:   48,
								},
								File:   "window_test.flux",
								Source: "experimental.window(every: inf)",
								Start: ast.Position{
									Column: 12,
									Line:   48,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   48,
									},
									File:   "window_test.flux",
									Source: "experimental.window",
									Start: ast.Position{
										Column: 12,
										Line:   48,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   48,
										},
										File:   "window_test.flux",
										Source: "experimental",
										Start: ast.Position{
											Column: 12,
											Line:   48,
										},
									},
								},
								Name: "experimental",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   48,
										},
										File:   "window_test.flux",
										Source: "window",
										Start: ast.Position{
											Column: 25,
											Line:   48,
										},
									},
								},
								Name: "window",
							},
							Rbrack: nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   41,
							},
							File:   "window_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 13,
								Line:   41,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 18,
									Line:   41,
								},
								File:   "window_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 13,
									Line:   41,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   41,
							},
							File:   "window_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 19,
								Line:   41,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 116,
							Line:   50,
						},
						File:   "window_test.flux",
						Source: "_window = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window})",
						Start: ast.Position{
							Column: 6,
							Line:   50,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 13,
								Line:   50,
							},
							File:   "window_test.flux",
							Source: "_window",
							Start: ast.Position{
								Column: 6,
								Line:   50,
							},
						},
					},
					Name: "_window",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   50,
							},
							File:   "window_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window})",
							Start: ast.Position{
								Column: 16,
								Line:   50,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 116,
									Line:   50,
								},
								File:   "window_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window})",
								Start: ast.Position{
									Column: 22,
									Line:   50,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 115,
										Line:   50,
									},
									File:   "window_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window}",
									Start: ast.Position{
										Column: 23,
										Line:   50,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 63,
											Line:   50,
										},
										File:   "window_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 24,
											Line:   50,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 29,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 24,
												Line:   50,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 62,
													Line:   50,
												},
												File:   "window_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 51,
													Line:   50,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 62,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 51,
														Line:   50,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 54,
															Line:   50,
														},
														File:   "window_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 51,
															Line:   50,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 62,
															Line:   50,
														},
														File:   "window_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 56,
															Line:   50,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 63,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 31,
												Line:   50,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 50,
													Line:   50,
												},
												File:   "window_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 31,
													Line:   50,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 38,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 31,
														Line:   50,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 50,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 39,
														Line:   50,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 100,
											Line:   50,
										},
										File:   "window_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 65,
											Line:   50,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 65,
												Line:   50,
											},
										},
									},
									Name: "want",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 99,
													Line:   50,
												},
												File:   "window_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 87,
													Line:   50,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 99,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 87,
														Line:   50,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 90,
															Line:   50,
														},
														File:   "window_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 87,
															Line:   50,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 99,
															Line:   50,
														},
														File:   "window_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 92,
															Line:   50,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 100,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 71,
												Line:   50,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 86,
													Line:   50,
												},
												File:   "window_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 71,
													Line:   50,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 78,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 71,
														Line:   50,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 86,
														Line:   50,
													},
													File:   "window_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 79,
														Line:   50,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 114,
											Line:   50,
										},
										File:   "window_test.flux",
										Source: "fn: t_window",
										Start: ast.Position{
											Column: 102,
											Line:   50,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 104,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 102,
												Line:   50,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   50,
											},
											File:   "window_test.flux",
											Source: "t_window",
											Start: ast.Position{
												Column: 106,
												Line:   50,
											},
										},
									},
									Name: "t_window",
								},
							}},
							Rbrace: nil,
							With:   nil,
						},
						Lparen: nil,
						Rparen: nil,
					},
					Lparen: nil,
					Params: []*ast.Property{},
					Rparan: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 116,
						Line:   50,
					},
					File:   "window_test.flux",
					Source: "test _window = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_window})",
					Start: ast.Position{
						Column: 1,
						Line:   50,
					},
				},
			},
		}},
		Eof: nil,
		Imports: []*ast.ImportDeclaration{&ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   4,
					},
					File:   "window_test.flux",
					Source: "import \"testing\"",
					Start: ast.Position{
						Column: 1,
						Line:   4,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 17,
							Line:   4,
						},
						File:   "window_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   4,
						},
					},
				},
				Value: "testing",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 22,
						Line:   5,
					},
					File:   "window_test.flux",
					Source: "import \"experimental\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 22,
							Line:   5,
						},
						File:   "window_test.flux",
						Source: "\"experimental\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "experimental",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "window_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   1,
					},
					File:   "window_test.flux",
					Source: "package experimental_test",
					Start: ast.Position{
						Column: 1,
						Line:   1,
					},
				},
			},
			Name: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   1,
						},
						File:   "window_test.flux",
						Source: "experimental_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "experimental_test",
			},
		},
	}},
	Package: "experimental_test",
	Path:    "experimental",
}}

Functions

func MakeChainFunction added in v0.68.0

func MakeChainFunction() values.Function

func NewGroupTransformation

func NewGroupTransformation(d execute.Dataset, cache execute.TableBuilderCache, spec *GroupProcedureSpec) *groupTransformation

func NewMergeJoinCache added in v0.65.0

func NewMergeJoinCache(ctx context.Context, alloc memory.Allocator, fn interpreter.ResolvedFunction, left, right execute.DatasetID) *mergeJoinCache

func NewMergeJoinTransformation added in v0.65.0

func NewMergeJoinTransformation(d execute.Dataset, cache *mergeJoinCache) *mergeJoinTransformation

func NewPreviewTransformation added in v0.167.0

func NewPreviewTransformation(id execute.DatasetID, spec *PreviewProcedureSpec, mem memory.Allocator) (execute.Transformation, execute.Dataset, error)

func NewSetTransformation added in v0.40.0

func NewSetTransformation(
	d execute.Dataset,
	cache execute.TableBuilderCache,
	spec *SetProcedureSpec,
) execute.Transformation

Types

type GroupOpSpec

type GroupOpSpec struct {
	Mode    string   `json:"mode"`
	Columns []string `json:"columns"`
}

GroupOpSpec in package experimental defines a special group() function that has just one mode called "extend", which adds additional columns to the group key. This is a workaround until schema introspection is implemented:

https://github.com/influxdata/flux/issues/27

Most of this code has simply been copied from stdlib/universe/group.go

func (*GroupOpSpec) Kind

func (s *GroupOpSpec) Kind() flux.OperationKind

type GroupProcedureSpec

type GroupProcedureSpec struct {
	plan.DefaultCost
	GroupKeys []string
}

func (*GroupProcedureSpec) Copy

func (*GroupProcedureSpec) Kind

type JoinOpSpec added in v0.65.0

type JoinOpSpec struct {
	Left  flux.OperationID             `json:"left"`
	Right flux.OperationID             `json:"right"`
	Fn    interpreter.ResolvedFunction `json:"fn"`
	// contains filtered or unexported fields
}

func (*JoinOpSpec) IDer added in v0.65.0

func (s *JoinOpSpec) IDer(ider flux.IDer)

func (*JoinOpSpec) Kind added in v0.65.0

func (s *JoinOpSpec) Kind() flux.OperationKind

type LabelAndOffset added in v0.121.0

type LabelAndOffset struct {
	Label  string
	Offset int
}

type MergeJoinProcedureSpec added in v0.65.0

type MergeJoinProcedureSpec struct {
	plan.DefaultCost

	Fn interpreter.ResolvedFunction `json:"fn"`
}

func (*MergeJoinProcedureSpec) Copy added in v0.65.0

func (*MergeJoinProcedureSpec) Kind added in v0.65.0

type PreviewOpSpec added in v0.167.0

type PreviewOpSpec struct {
	NRows   int64
	NTables int64
}

func (*PreviewOpSpec) Kind added in v0.167.0

func (s *PreviewOpSpec) Kind() flux.OperationKind

type PreviewProcedureSpec added in v0.167.0

type PreviewProcedureSpec struct {
	plan.DefaultCost
	NRows   int64
	NTables int64
}

func (*PreviewProcedureSpec) Copy added in v0.167.0

func (*PreviewProcedureSpec) Kind added in v0.167.0

type RowIterator added in v0.65.0

type RowIterator struct {
	// contains filtered or unexported fields
}

RowIterator iterates over the rows of several column readers

func NewRowIterator added in v0.65.0

func NewRowIterator(columns []flux.ColMeta, readers []flux.ColReader, timeCol int) *RowIterator

type SetOpSpec added in v0.40.0

type SetOpSpec struct {
	Object values.Object `json:"object"`
}

func (*SetOpSpec) Kind added in v0.40.0

func (s *SetOpSpec) Kind() flux.OperationKind

type SetProcedureSpec added in v0.40.0

type SetProcedureSpec struct {
	plan.DefaultCost
	Object values.Object
}

func (*SetProcedureSpec) Copy added in v0.40.0

func (*SetProcedureSpec) Kind added in v0.40.0

type ToOpSpec added in v0.121.0

type ToOpSpec struct {
	Org    influxdb.NameOrID
	Bucket influxdb.NameOrID
	Host   string
	Token  string
}

ToOpSpec is the flux.OperationSpec for the `to` flux function.

func (ToOpSpec) Kind added in v0.121.0

func (ToOpSpec) Kind() flux.OperationKind

Kind returns the kind for the ToOpSpec function.

func (*ToOpSpec) ReadArgs added in v0.121.0

func (s *ToOpSpec) ReadArgs(args flux.Arguments) error

ReadArgs reads the args from flux.Arguments into the op spec

type ToProcedureSpec added in v0.121.0

type ToProcedureSpec struct {
	plan.DefaultCost
	Config influxdb.Config
}

ToProcedureSpec is the procedure spec for the `to` flux function.

func (*ToProcedureSpec) Copy added in v0.121.0

Copy clones the procedure spec for `to` flux function.

func (*ToProcedureSpec) Kind added in v0.121.0

Kind returns the kind for the procedure spec for the `to` flux function.

type ToTransformation added in v0.121.0

type ToTransformation struct {
	execute.ExecutionNode
	// contains filtered or unexported fields
}

ToTransformation is the transformation for the `to` flux function.

func NewToTransformation added in v0.121.0

NewToTransformation returns a new *ToTransformation with the appropriate fields set.

func (*ToTransformation) Finish added in v0.121.0

func (t *ToTransformation) Finish(id execute.DatasetID, err error)

Finish is called after the `to` flux function's transformation is done processing.

func (*ToTransformation) Process added in v0.121.0

func (t *ToTransformation) Process(id execute.DatasetID, tbl flux.Table) error

Process does the actual work for the ToTransformation.

func (*ToTransformation) RetractTable added in v0.121.0

func (t *ToTransformation) RetractTable(id execute.DatasetID, key flux.GroupKey) error

RetractTable retracts the table for the transformation for the `to` flux function.

func (*ToTransformation) UpdateProcessingTime added in v0.121.0

func (t *ToTransformation) UpdateProcessingTime(id execute.DatasetID, pt execute.Time) error

UpdateProcessingTime updates the processing time for the transformation for the `to` flux function.

func (*ToTransformation) UpdateWatermark added in v0.121.0

func (t *ToTransformation) UpdateWatermark(id execute.DatasetID, pt execute.Time) error

UpdateWatermark updates the watermark for the transformation for the `to` flux function.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL