promql

package
v0.132.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2021 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

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: 118,
					Line:   46,
				},
				File:   "changes_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,3,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,1,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,5,prometheus\r\n\"\nt_changes = (table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.changes()\n\ntest _changes = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes})",
				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:   "changes_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:   "changes_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:   "changes_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:   "changes_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:   "changes_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:   "changes_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,3,prometheus\r\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:   "changes_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:   "changes_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,3,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,3,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   41,
					},
					File:   "changes_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,1,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,5,prometheus\r\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:   "changes_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:   "changes_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,1,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,5,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   33,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,1,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,5,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 24,
						Line:   44,
					},
					File:   "changes_test.flux",
					Source: "t_changes = (table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.changes()",
					Start: ast.Position{
						Column: 1,
						Line:   42,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 10,
							Line:   42,
						},
						File:   "changes_test.flux",
						Source: "t_changes",
						Start: ast.Position{
							Column: 1,
							Line:   42,
						},
					},
				},
				Name: "t_changes",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 24,
							Line:   44,
						},
						File:   "changes_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.changes()",
						Start: ast.Position{
							Column: 13,
							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: 32,
										Line:   42,
									},
									File:   "changes_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 27,
										Line:   42,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   43,
								},
								File:   "changes_test.flux",
								Source: "table\n    |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 27,
									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:   43,
										},
										File:   "changes_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   43,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   43,
											},
											File:   "changes_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   43,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   43,
												},
												File:   "changes_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   43,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   43,
												},
												File:   "changes_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   43,
												},
											},
										},
										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: 42,
										Line:   43,
									},
									File:   "changes_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   43,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   43,
										},
										File:   "changes_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   43,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   44,
							},
							File:   "changes_test.flux",
							Source: "table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.changes()",
							Start: ast.Position{
								Column: 27,
								Line:   42,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   44,
								},
								File:   "changes_test.flux",
								Source: "promql.changes()",
								Start: ast.Position{
									Column: 8,
									Line:   44,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 22,
										Line:   44,
									},
									File:   "changes_test.flux",
									Source: "promql.changes",
									Start: ast.Position{
										Column: 8,
										Line:   44,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   44,
										},
										File:   "changes_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   44,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   44,
										},
										File:   "changes_test.flux",
										Source: "changes",
										Start: ast.Position{
											Column: 15,
											Line:   44,
										},
									},
								},
								Name: "changes",
							},
							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:   42,
							},
							File:   "changes_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 14,
								Line:   42,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 19,
									Line:   42,
								},
								File:   "changes_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 14,
									Line:   42,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 22,
								Line:   42,
							},
							File:   "changes_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 20,
								Line:   42,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 118,
							Line:   46,
						},
						File:   "changes_test.flux",
						Source: "_changes = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes})",
						Start: ast.Position{
							Column: 6,
							Line:   46,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 14,
								Line:   46,
							},
							File:   "changes_test.flux",
							Source: "_changes",
							Start: ast.Position{
								Column: 6,
								Line:   46,
							},
						},
					},
					Name: "_changes",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 118,
								Line:   46,
							},
							File:   "changes_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes})",
							Start: ast.Position{
								Column: 17,
								Line:   46,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 118,
									Line:   46,
								},
								File:   "changes_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes})",
								Start: ast.Position{
									Column: 23,
									Line:   46,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 117,
										Line:   46,
									},
									File:   "changes_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes}",
									Start: ast.Position{
										Column: 24,
										Line:   46,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 64,
											Line:   46,
										},
										File:   "changes_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 25,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 30,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 25,
												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: 63,
													Line:   46,
												},
												File:   "changes_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 52,
													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:   "changes_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 52,
														Line:   46,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 55,
															Line:   46,
														},
														File:   "changes_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 52,
															Line:   46,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 63,
															Line:   46,
														},
														File:   "changes_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 57,
															Line:   46,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 64,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 32,
												Line:   46,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 51,
													Line:   46,
												},
												File:   "changes_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 32,
													Line:   46,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 39,
														Line:   46,
													},
													File:   "changes_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 32,
														Line:   46,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 51,
														Line:   46,
													},
													File:   "changes_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 40,
														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: 101,
											Line:   46,
										},
										File:   "changes_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 66,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 70,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 66,
												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: 100,
													Line:   46,
												},
												File:   "changes_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 88,
													Line:   46,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 100,
														Line:   46,
													},
													File:   "changes_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 88,
														Line:   46,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 91,
															Line:   46,
														},
														File:   "changes_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 88,
															Line:   46,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   46,
														},
														File:   "changes_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 93,
															Line:   46,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 101,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 72,
												Line:   46,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 87,
													Line:   46,
												},
												File:   "changes_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 72,
													Line:   46,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 79,
														Line:   46,
													},
													File:   "changes_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 72,
														Line:   46,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 87,
														Line:   46,
													},
													File:   "changes_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 80,
														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: 116,
											Line:   46,
										},
										File:   "changes_test.flux",
										Source: "fn: t_changes",
										Start: ast.Position{
											Column: 103,
											Line:   46,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 105,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 103,
												Line:   46,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 116,
												Line:   46,
											},
											File:   "changes_test.flux",
											Source: "t_changes",
											Start: ast.Position{
												Column: 107,
												Line:   46,
											},
										},
									},
									Name: "t_changes",
								},
							}},
							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: 118,
						Line:   46,
					},
					File:   "changes_test.flux",
					Source: "test _changes = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_changes})",
					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:   "changes_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:   "changes_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: 25,
						Line:   5,
					},
					File:   "changes_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "changes_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "changes_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "changes_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "changes_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   39,
				},
				File:   "dayOfMonth_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,29,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,31,prometheus\r\n\"\nt_promqlDayOfMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)}))\n\ntest _promqlDayOfMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth})",
				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:   "dayOfMonth_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:   "dayOfMonth_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:   "dayOfMonth_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:   "dayOfMonth_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:   "dayOfMonth_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:   "dayOfMonth_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,0,prometheus\r\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:   "dayOfMonth_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:   "dayOfMonth_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "dayOfMonth_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,29,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,31,prometheus\r\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:   "dayOfMonth_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:   32,
						},
						File:   "dayOfMonth_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,29,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,31,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-02T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-03T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-29T20:00:00Z,metric_name,29,prometheus\r\n,,0,2018-12-30T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-31T20:00:00Z,metric_name,31,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 87,
						Line:   37,
					},
					File:   "dayOfMonth_test.flux",
					Source: "t_promqlDayOfMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   33,
						},
						File:   "dayOfMonth_test.flux",
						Source: "t_promqlDayOfMonth",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlDayOfMonth",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 87,
							Line:   37,
						},
						File:   "dayOfMonth_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 22,
							Line:   33,
						},
					},
				},
				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: 41,
												Line:   33,
											},
											File:   "dayOfMonth_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 36,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "dayOfMonth_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 36,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "dayOfMonth_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "dayOfMonth_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "dayOfMonth_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "dayOfMonth_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "dayOfMonth_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "dayOfMonth_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "dayOfMonth_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 36,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "dayOfMonth_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "dayOfMonth_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "dayOfMonth_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "dayOfMonth_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "dayOfMonth_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "dayOfMonth_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "dayOfMonth_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "dayOfMonth_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "dayOfMonth_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 36,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "dayOfMonth_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "dayOfMonth_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "dayOfMonth_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "dayOfMonth_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 87,
								Line:   37,
							},
							File:   "dayOfMonth_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 36,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 86,
										Line:   37,
									},
									File:   "dayOfMonth_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 86,
											Line:   37,
										},
										File:   "dayOfMonth_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "dayOfMonth_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 86,
												Line:   37,
											},
											File:   "dayOfMonth_test.flux",
											Source: "(r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 86,
													Line:   37,
												},
												File:   "dayOfMonth_test.flux",
												Source: "({r with _value: promql.promqlDayOfMonth(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 85,
														Line:   37,
													},
													File:   "dayOfMonth_test.flux",
													Source: "{r with _value: promql.promqlDayOfMonth(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 84,
															Line:   37,
														},
														File:   "dayOfMonth_test.flux",
														Source: "_value: promql.promqlDayOfMonth(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "dayOfMonth_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 83,
																	Line:   37,
																},
																File:   "dayOfMonth_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 64,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 83,
																		Line:   37,
																	},
																	File:   "dayOfMonth_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 64,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 73,
																			Line:   37,
																		},
																		File:   "dayOfMonth_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 64,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 83,
																			Line:   37,
																		},
																		File:   "dayOfMonth_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 75,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 76,
																				Line:   37,
																			},
																			File:   "dayOfMonth_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 75,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 83,
																				Line:   37,
																			},
																			File:   "dayOfMonth_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 77,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 84,
																Line:   37,
															},
															File:   "dayOfMonth_test.flux",
															Source: "promql.promqlDayOfMonth(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 63,
																	Line:   37,
																},
																File:   "dayOfMonth_test.flux",
																Source: "promql.promqlDayOfMonth",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "dayOfMonth_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 63,
																		Line:   37,
																	},
																	File:   "dayOfMonth_test.flux",
																	Source: "promqlDayOfMonth",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlDayOfMonth",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "dayOfMonth_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "dayOfMonth_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "dayOfMonth_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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: 87,
									Line:   37,
								},
								File:   "dayOfMonth_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlDayOfMonth(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "dayOfMonth_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 31,
								Line:   33,
							},
							File:   "dayOfMonth_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   33,
								},
								File:   "dayOfMonth_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   33,
							},
							File:   "dayOfMonth_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   39,
						},
						File:   "dayOfMonth_test.flux",
						Source: "_promqlDayOfMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   39,
							},
							File:   "dayOfMonth_test.flux",
							Source: "_promqlDayOfMonth",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlDayOfMonth",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   39,
							},
							File:   "dayOfMonth_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth})",
							Start: ast.Position{
								Column: 26,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   39,
								},
								File:   "dayOfMonth_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth})",
								Start: ast.Position{
									Column: 32,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   39,
									},
									File:   "dayOfMonth_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth}",
									Start: ast.Position{
										Column: 33,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   39,
										},
										File:   "dayOfMonth_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											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:   "dayOfMonth_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												Line:   39,
											},
										},
									},
									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: 72,
													Line:   39,
												},
												File:   "dayOfMonth_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   39,
														},
														File:   "dayOfMonth_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   39,
														},
														File:   "dayOfMonth_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   39,
											},
											File:   "dayOfMonth_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   39,
												},
												File:   "dayOfMonth_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   39,
										},
										File:   "dayOfMonth_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   39,
											},
											File:   "dayOfMonth_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												Line:   39,
											},
										},
									},
									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: 109,
													Line:   39,
												},
												File:   "dayOfMonth_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   39,
														},
														File:   "dayOfMonth_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   39,
														},
														File:   "dayOfMonth_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "dayOfMonth_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   39,
												},
												File:   "dayOfMonth_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   39,
													},
													File:   "dayOfMonth_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 134,
											Line:   39,
										},
										File:   "dayOfMonth_test.flux",
										Source: "fn: t_promqlDayOfMonth",
										Start: ast.Position{
											Column: 112,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   39,
											},
											File:   "dayOfMonth_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   39,
											},
											File:   "dayOfMonth_test.flux",
											Source: "t_promqlDayOfMonth",
											Start: ast.Position{
												Column: 116,
												Line:   39,
											},
										},
									},
									Name: "t_promqlDayOfMonth",
								},
							}},
							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: 136,
						Line:   39,
					},
					File:   "dayOfMonth_test.flux",
					Source: "test _promqlDayOfMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfMonth})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "dayOfMonth_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:   "dayOfMonth_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: 25,
						Line:   5,
					},
					File:   "dayOfMonth_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "dayOfMonth_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "dayOfMonth_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "dayOfMonth_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "dayOfMonth_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 134,
					Line:   41,
				},
				File:   "dayOfWeek_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,4,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,5,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,6,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n\"\nt_promqlDayOfWeek = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)}))\n\ntest _promqlDayOfWeek = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek})",
				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:   "dayOfWeek_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:   "dayOfWeek_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:   "dayOfWeek_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:   "dayOfWeek_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:   "dayOfWeek_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:   "dayOfWeek_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\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:   "dayOfWeek_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:   "dayOfWeek_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   34,
					},
					File:   "dayOfWeek_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,4,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,5,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,6,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\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:   "dayOfWeek_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:   34,
						},
						File:   "dayOfWeek_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,4,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,5,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,6,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   22,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-12-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-12-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-12-06T20:00:00Z,metric_name,4,prometheus\r\n,,0,2018-12-07T20:00:00Z,metric_name,5,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,6,prometheus\r\n,,0,2018-12-09T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 86,
						Line:   39,
					},
					File:   "dayOfWeek_test.flux",
					Source: "t_promqlDayOfWeek = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   35,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 18,
							Line:   35,
						},
						File:   "dayOfWeek_test.flux",
						Source: "t_promqlDayOfWeek",
						Start: ast.Position{
							Column: 1,
							Line:   35,
						},
					},
				},
				Name: "t_promqlDayOfWeek",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 86,
							Line:   39,
						},
						File:   "dayOfWeek_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 21,
							Line:   35,
						},
					},
				},
				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: 40,
												Line:   35,
											},
											File:   "dayOfWeek_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 35,
												Line:   35,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   36,
										},
										File:   "dayOfWeek_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 35,
											Line:   35,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   36,
												},
												File:   "dayOfWeek_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   36,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   36,
													},
													File:   "dayOfWeek_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   36,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   36,
														},
														File:   "dayOfWeek_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   36,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   36,
														},
														File:   "dayOfWeek_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   36,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   36,
											},
											File:   "dayOfWeek_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   36,
												},
												File:   "dayOfWeek_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   36,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   37,
									},
									File:   "dayOfWeek_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 35,
										Line:   35,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   37,
											},
											File:   "dayOfWeek_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   37,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   37,
												},
												File:   "dayOfWeek_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   37,
													},
													File:   "dayOfWeek_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   37,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   37,
													},
													File:   "dayOfWeek_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   37,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   37,
														},
														File:   "dayOfWeek_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   37,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   37,
														},
														File:   "dayOfWeek_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   37,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   37,
										},
										File:   "dayOfWeek_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   37,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   37,
											},
											File:   "dayOfWeek_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   37,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   38,
								},
								File:   "dayOfWeek_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 35,
									Line:   35,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   38,
									},
									File:   "dayOfWeek_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   38,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   38,
										},
										File:   "dayOfWeek_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   38,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   38,
											},
											File:   "dayOfWeek_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   38,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   38,
											},
											File:   "dayOfWeek_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   38,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 86,
								Line:   39,
							},
							File:   "dayOfWeek_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 35,
								Line:   35,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 85,
										Line:   39,
									},
									File:   "dayOfWeek_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 85,
											Line:   39,
										},
										File:   "dayOfWeek_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)})",
										Start: ast.Position{
											Column: 12,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   39,
											},
											File:   "dayOfWeek_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 85,
												Line:   39,
											},
											File:   "dayOfWeek_test.flux",
											Source: "(r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   39,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 85,
													Line:   39,
												},
												File:   "dayOfWeek_test.flux",
												Source: "({r with _value: promql.promqlDayOfWeek(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   39,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "dayOfWeek_test.flux",
													Source: "{r with _value: promql.promqlDayOfWeek(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   39,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 83,
															Line:   39,
														},
														File:   "dayOfWeek_test.flux",
														Source: "_value: promql.promqlDayOfWeek(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   39,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   39,
															},
															File:   "dayOfWeek_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   39,
															},
														},
													},
													Name: "_value",
												},
												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:   39,
																},
																File:   "dayOfWeek_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 63,
																	Line:   39,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 82,
																		Line:   39,
																	},
																	File:   "dayOfWeek_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 63,
																		Line:   39,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 72,
																			Line:   39,
																		},
																		File:   "dayOfWeek_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 63,
																			Line:   39,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 82,
																			Line:   39,
																		},
																		File:   "dayOfWeek_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 74,
																			Line:   39,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 75,
																				Line:   39,
																			},
																			File:   "dayOfWeek_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 74,
																				Line:   39,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 82,
																				Line:   39,
																			},
																			File:   "dayOfWeek_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 76,
																				Line:   39,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 83,
																Line:   39,
															},
															File:   "dayOfWeek_test.flux",
															Source: "promql.promqlDayOfWeek(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   39,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 62,
																	Line:   39,
																},
																File:   "dayOfWeek_test.flux",
																Source: "promql.promqlDayOfWeek",
																Start: ast.Position{
																	Column: 40,
																	Line:   39,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   39,
																	},
																	File:   "dayOfWeek_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   39,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 62,
																		Line:   39,
																	},
																	File:   "dayOfWeek_test.flux",
																	Source: "promqlDayOfWeek",
																	Start: ast.Position{
																		Column: 47,
																		Line:   39,
																	},
																},
															},
															Name: "promqlDayOfWeek",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   39,
														},
														File:   "dayOfWeek_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   39,
														},
													},
												},
												Name: "r",
											},
										},
										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:   39,
												},
												File:   "dayOfWeek_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   39,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   39,
													},
													File:   "dayOfWeek_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   39,
													},
												},
											},
											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: 86,
									Line:   39,
								},
								File:   "dayOfWeek_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlDayOfWeek(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   39,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   39,
									},
									File:   "dayOfWeek_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   39,
									},
								},
							},
							Name: "map",
						},
						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: 30,
								Line:   35,
							},
							File:   "dayOfWeek_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 22,
								Line:   35,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   35,
								},
								File:   "dayOfWeek_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 22,
									Line:   35,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 30,
								Line:   35,
							},
							File:   "dayOfWeek_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 28,
								Line:   35,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 134,
							Line:   41,
						},
						File:   "dayOfWeek_test.flux",
						Source: "_promqlDayOfWeek = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek})",
						Start: ast.Position{
							Column: 6,
							Line:   41,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 22,
								Line:   41,
							},
							File:   "dayOfWeek_test.flux",
							Source: "_promqlDayOfWeek",
							Start: ast.Position{
								Column: 6,
								Line:   41,
							},
						},
					},
					Name: "_promqlDayOfWeek",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 134,
								Line:   41,
							},
							File:   "dayOfWeek_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek})",
							Start: ast.Position{
								Column: 25,
								Line:   41,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 134,
									Line:   41,
								},
								File:   "dayOfWeek_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek})",
								Start: ast.Position{
									Column: 31,
									Line:   41,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 133,
										Line:   41,
									},
									File:   "dayOfWeek_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek}",
									Start: ast.Position{
										Column: 32,
										Line:   41,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 72,
											Line:   41,
										},
										File:   "dayOfWeek_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 33,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 38,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 33,
												Line:   41,
											},
										},
									},
									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: 71,
													Line:   41,
												},
												File:   "dayOfWeek_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 60,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 71,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 60,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 63,
															Line:   41,
														},
														File:   "dayOfWeek_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 60,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 71,
															Line:   41,
														},
														File:   "dayOfWeek_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 65,
															Line:   41,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 72,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 40,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 59,
													Line:   41,
												},
												File:   "dayOfWeek_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 40,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 47,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 40,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 59,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 48,
														Line:   41,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 109,
											Line:   41,
										},
										File:   "dayOfWeek_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 74,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 78,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 74,
												Line:   41,
											},
										},
									},
									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: 108,
													Line:   41,
												},
												File:   "dayOfWeek_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 96,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 108,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 96,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 99,
															Line:   41,
														},
														File:   "dayOfWeek_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 96,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 108,
															Line:   41,
														},
														File:   "dayOfWeek_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 101,
															Line:   41,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 80,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 95,
													Line:   41,
												},
												File:   "dayOfWeek_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 80,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 87,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 80,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 95,
														Line:   41,
													},
													File:   "dayOfWeek_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 88,
														Line:   41,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 132,
											Line:   41,
										},
										File:   "dayOfWeek_test.flux",
										Source: "fn: t_promqlDayOfWeek",
										Start: ast.Position{
											Column: 111,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 113,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 111,
												Line:   41,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 132,
												Line:   41,
											},
											File:   "dayOfWeek_test.flux",
											Source: "t_promqlDayOfWeek",
											Start: ast.Position{
												Column: 115,
												Line:   41,
											},
										},
									},
									Name: "t_promqlDayOfWeek",
								},
							}},
							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: 134,
						Line:   41,
					},
					File:   "dayOfWeek_test.flux",
					Source: "test _promqlDayOfWeek = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDayOfWeek})",
					Start: ast.Position{
						Column: 1,
						Line:   41,
					},
				},
			},
		}},
		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:   "dayOfWeek_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:   "dayOfWeek_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: 25,
						Line:   5,
					},
					File:   "dayOfWeek_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "dayOfWeek_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "dayOfWeek_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "dayOfWeek_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "dayOfWeek_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 138,
					Line:   39,
				},
				File:   "daysInMonth_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,28,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,31,prometheus\r\n\"\nt_promqlDaysInMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)}))\n\ntest _promqlDaysInMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth})",
				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:   "daysInMonth_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:   "daysInMonth_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:   "daysInMonth_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:   "daysInMonth_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:   "daysInMonth_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:   "daysInMonth_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\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:   "daysInMonth_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:   "daysInMonth_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "daysInMonth_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,28,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,31,prometheus\r\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:   "daysInMonth_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:   32,
						},
						File:   "daysInMonth_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,28,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,31,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,28,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,31,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,30,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,31,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 88,
						Line:   37,
					},
					File:   "daysInMonth_test.flux",
					Source: "t_promqlDaysInMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 20,
							Line:   33,
						},
						File:   "daysInMonth_test.flux",
						Source: "t_promqlDaysInMonth",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlDaysInMonth",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 88,
							Line:   37,
						},
						File:   "daysInMonth_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 23,
							Line:   33,
						},
					},
				},
				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: 42,
												Line:   33,
											},
											File:   "daysInMonth_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 37,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "daysInMonth_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 37,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "daysInMonth_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "daysInMonth_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "daysInMonth_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "daysInMonth_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "daysInMonth_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "daysInMonth_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "daysInMonth_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 37,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "daysInMonth_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "daysInMonth_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "daysInMonth_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "daysInMonth_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "daysInMonth_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "daysInMonth_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "daysInMonth_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "daysInMonth_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "daysInMonth_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 37,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "daysInMonth_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "daysInMonth_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "daysInMonth_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "daysInMonth_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 88,
								Line:   37,
							},
							File:   "daysInMonth_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 37,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 87,
										Line:   37,
									},
									File:   "daysInMonth_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 87,
											Line:   37,
										},
										File:   "daysInMonth_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "daysInMonth_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 87,
												Line:   37,
											},
											File:   "daysInMonth_test.flux",
											Source: "(r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 87,
													Line:   37,
												},
												File:   "daysInMonth_test.flux",
												Source: "({r with _value: promql.promqlDaysInMonth(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 86,
														Line:   37,
													},
													File:   "daysInMonth_test.flux",
													Source: "{r with _value: promql.promqlDaysInMonth(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 85,
															Line:   37,
														},
														File:   "daysInMonth_test.flux",
														Source: "_value: promql.promqlDaysInMonth(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "daysInMonth_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 84,
																	Line:   37,
																},
																File:   "daysInMonth_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 65,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 84,
																		Line:   37,
																	},
																	File:   "daysInMonth_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 65,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 74,
																			Line:   37,
																		},
																		File:   "daysInMonth_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 65,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 84,
																			Line:   37,
																		},
																		File:   "daysInMonth_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 76,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 77,
																				Line:   37,
																			},
																			File:   "daysInMonth_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 76,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 84,
																				Line:   37,
																			},
																			File:   "daysInMonth_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 78,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 85,
																Line:   37,
															},
															File:   "daysInMonth_test.flux",
															Source: "promql.promqlDaysInMonth(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 64,
																	Line:   37,
																},
																File:   "daysInMonth_test.flux",
																Source: "promql.promqlDaysInMonth",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "daysInMonth_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 64,
																		Line:   37,
																	},
																	File:   "daysInMonth_test.flux",
																	Source: "promqlDaysInMonth",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlDaysInMonth",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "daysInMonth_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "daysInMonth_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "daysInMonth_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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: 88,
									Line:   37,
								},
								File:   "daysInMonth_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlDaysInMonth(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "daysInMonth_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 32,
								Line:   33,
							},
							File:   "daysInMonth_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 24,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 29,
									Line:   33,
								},
								File:   "daysInMonth_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 24,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 32,
								Line:   33,
							},
							File:   "daysInMonth_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 30,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 138,
							Line:   39,
						},
						File:   "daysInMonth_test.flux",
						Source: "_promqlDaysInMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   39,
							},
							File:   "daysInMonth_test.flux",
							Source: "_promqlDaysInMonth",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlDaysInMonth",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 138,
								Line:   39,
							},
							File:   "daysInMonth_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth})",
							Start: ast.Position{
								Column: 27,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 138,
									Line:   39,
								},
								File:   "daysInMonth_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth})",
								Start: ast.Position{
									Column: 33,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 137,
										Line:   39,
									},
									File:   "daysInMonth_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth}",
									Start: ast.Position{
										Column: 34,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 74,
											Line:   39,
										},
										File:   "daysInMonth_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										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: 40,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 35,
												Line:   39,
											},
										},
									},
									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: 73,
													Line:   39,
												},
												File:   "daysInMonth_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 62,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 73,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 62,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 65,
															Line:   39,
														},
														File:   "daysInMonth_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 73,
															Line:   39,
														},
														File:   "daysInMonth_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 67,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 74,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 42,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 61,
													Line:   39,
												},
												File:   "daysInMonth_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 42,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 49,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 42,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 61,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 50,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 111,
											Line:   39,
										},
										File:   "daysInMonth_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 76,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 80,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 76,
												Line:   39,
											},
										},
									},
									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: 110,
													Line:   39,
												},
												File:   "daysInMonth_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 98,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 110,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 98,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   39,
														},
														File:   "daysInMonth_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 110,
															Line:   39,
														},
														File:   "daysInMonth_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 103,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 111,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 82,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 97,
													Line:   39,
												},
												File:   "daysInMonth_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 82,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 89,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 82,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 97,
														Line:   39,
													},
													File:   "daysInMonth_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 90,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 136,
											Line:   39,
										},
										File:   "daysInMonth_test.flux",
										Source: "fn: t_promqlDaysInMonth",
										Start: ast.Position{
											Column: 113,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 115,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 113,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 136,
												Line:   39,
											},
											File:   "daysInMonth_test.flux",
											Source: "t_promqlDaysInMonth",
											Start: ast.Position{
												Column: 117,
												Line:   39,
											},
										},
									},
									Name: "t_promqlDaysInMonth",
								},
							}},
							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: 138,
						Line:   39,
					},
					File:   "daysInMonth_test.flux",
					Source: "test _promqlDaysInMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlDaysInMonth})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "daysInMonth_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:   "daysInMonth_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: 25,
						Line:   5,
					},
					File:   "daysInMonth_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "daysInMonth_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "daysInMonth_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "daysInMonth_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "daysInMonth_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 111,
					Line:   17,
				},
				File:   "emptyTable_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double\n#group,false,true,true,true,false,false\n#default,_result,0,1970-01-01T00:00:00Z,1970-01-01T00:00:00Z,,\n,result,table,_start,_stop,_time,_value\n\"\nt_emptyTable = (table=<-) => table\n\ntest _emptyTable = () => ({input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable})",
				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:   "emptyTable_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:   "emptyTable_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:   "emptyTable_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:   "emptyTable_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:   "emptyTable_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:   14,
					},
					File:   "emptyTable_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double\n#group,false,true,true,true,false,false\n#default,_result,0,1970-01-01T00:00:00Z,1970-01-01T00:00:00Z,,\n,result,table,_start,_stop,_time,_value\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: 8,
							Line:   9,
						},
						File:   "emptyTable_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   9,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   14,
						},
						File:   "emptyTable_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double\n#group,false,true,true,true,false,false\n#default,_result,0,1970-01-01T00:00:00Z,1970-01-01T00:00:00Z,,\n,result,table,_start,_stop,_time,_value\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double\n#group,false,true,true,true,false,false\n#default,_result,0,1970-01-01T00:00:00Z,1970-01-01T00:00:00Z,,\n,result,table,_start,_stop,_time,_value\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 35,
						Line:   15,
					},
					File:   "emptyTable_test.flux",
					Source: "t_emptyTable = (table=<-) => table",
					Start: ast.Position{
						Column: 1,
						Line:   15,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   15,
						},
						File:   "emptyTable_test.flux",
						Source: "t_emptyTable",
						Start: ast.Position{
							Column: 1,
							Line:   15,
						},
					},
				},
				Name: "t_emptyTable",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 35,
							Line:   15,
						},
						File:   "emptyTable_test.flux",
						Source: "(table=<-) => table",
						Start: ast.Position{
							Column: 16,
							Line:   15,
						},
					},
				},
				Body: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 35,
								Line:   15,
							},
							File:   "emptyTable_test.flux",
							Source: "table",
							Start: ast.Position{
								Column: 30,
								Line:   15,
							},
						},
					},
					Name: "table",
				},
				Lparen: nil,
				Params: []*ast.Property{&ast.Property{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   15,
							},
							File:   "emptyTable_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 17,
								Line:   15,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 22,
									Line:   15,
								},
								File:   "emptyTable_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 17,
									Line:   15,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   15,
							},
							File:   "emptyTable_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 23,
								Line:   15,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 111,
							Line:   17,
						},
						File:   "emptyTable_test.flux",
						Source: "_emptyTable = () => ({input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable})",
						Start: ast.Position{
							Column: 6,
							Line:   17,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   17,
							},
							File:   "emptyTable_test.flux",
							Source: "_emptyTable",
							Start: ast.Position{
								Column: 6,
								Line:   17,
							},
						},
					},
					Name: "_emptyTable",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 111,
								Line:   17,
							},
							File:   "emptyTable_test.flux",
							Source: "() => ({input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable})",
							Start: ast.Position{
								Column: 20,
								Line:   17,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 111,
									Line:   17,
								},
								File:   "emptyTable_test.flux",
								Source: "({input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable})",
								Start: ast.Position{
									Column: 26,
									Line:   17,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 110,
										Line:   17,
									},
									File:   "emptyTable_test.flux",
									Source: "{input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable}",
									Start: ast.Position{
										Column: 27,
										Line:   17,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   17,
										},
										File:   "emptyTable_test.flux",
										Source: "input: promql.emptyTable()",
										Start: ast.Position{
											Column: 28,
											Line:   17,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 28,
												Line:   17,
											},
										},
									},
									Name: "input",
								},
								Separator: nil,
								Value: &ast.CallExpression{
									Arguments: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "promql.emptyTable()",
											Start: ast.Position{
												Column: 35,
												Line:   17,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   17,
												},
												File:   "emptyTable_test.flux",
												Source: "promql.emptyTable",
												Start: ast.Position{
													Column: 35,
													Line:   17,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   17,
													},
													File:   "emptyTable_test.flux",
													Source: "promql",
													Start: ast.Position{
														Column: 35,
														Line:   17,
													},
												},
											},
											Name: "promql",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   17,
													},
													File:   "emptyTable_test.flux",
													Source: "emptyTable",
													Start: ast.Position{
														Column: 42,
														Line:   17,
													},
												},
											},
											Name: "emptyTable",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 91,
											Line:   17,
										},
										File:   "emptyTable_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 56,
											Line:   17,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 56,
												Line:   17,
											},
										},
									},
									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: 90,
													Line:   17,
												},
												File:   "emptyTable_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 78,
													Line:   17,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 90,
														Line:   17,
													},
													File:   "emptyTable_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 78,
														Line:   17,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 81,
															Line:   17,
														},
														File:   "emptyTable_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 78,
															Line:   17,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 90,
															Line:   17,
														},
														File:   "emptyTable_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 83,
															Line:   17,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 91,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 62,
												Line:   17,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 77,
													Line:   17,
												},
												File:   "emptyTable_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 62,
													Line:   17,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 69,
														Line:   17,
													},
													File:   "emptyTable_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 62,
														Line:   17,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 77,
														Line:   17,
													},
													File:   "emptyTable_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 70,
														Line:   17,
													},
												},
											},
											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:   17,
										},
										File:   "emptyTable_test.flux",
										Source: "fn: t_emptyTable",
										Start: ast.Position{
											Column: 93,
											Line:   17,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 95,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 93,
												Line:   17,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   17,
											},
											File:   "emptyTable_test.flux",
											Source: "t_emptyTable",
											Start: ast.Position{
												Column: 97,
												Line:   17,
											},
										},
									},
									Name: "t_emptyTable",
								},
							}},
							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:   17,
					},
					File:   "emptyTable_test.flux",
					Source: "test _emptyTable = () => ({input: promql.emptyTable(), want: testing.loadMem(csv: outData), fn: t_emptyTable})",
					Start: ast.Position{
						Column: 1,
						Line:   17,
					},
				},
			},
		}},
		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:   "emptyTable_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:   "emptyTable_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: 25,
						Line:   5,
					},
					File:   "emptyTable_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "emptyTable_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "emptyTable_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "emptyTable_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "emptyTable_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   51,
				},
				File:   "extrapolatedRate_counter_rate_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\nimport c \"csv\"\n\noption now = () => 2030-01-01T00:00:00Z\n\n// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\noption testing.loadStorage = (csv) => c.from(csv: csv)\n\ninData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.3663333333333333,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,2.533333333333333,prometheus\r\n\"\nt_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: true)\n\ntest _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
				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:   "extrapolatedRate_counter_rate_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:   "extrapolatedRate_counter_rate_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:   "extrapolatedRate_counter_rate_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:   "extrapolatedRate_counter_rate_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:   "extrapolatedRate_counter_rate_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.OptionStatement{
			Assignment: &ast.MemberAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 55,
							Line:   11,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "testing.loadStorage = (csv) => c.from(csv: csv)",
						Start: ast.Position{
							Column: 8,
							Line:   11,
						},
					},
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 55,
								Line:   11,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "(csv) => c.from(csv: csv)",
							Start: ast.Position{
								Column: 30,
								Line:   11,
							},
						},
					},
					Body: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 54,
										Line:   11,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "csv: csv",
									Start: ast.Position{
										Column: 46,
										Line:   11,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   11,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "csv: csv",
										Start: ast.Position{
											Column: 46,
											Line:   11,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 49,
												Line:   11,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "csv",
											Start: ast.Position{
												Column: 46,
												Line:   11,
											},
										},
									},
									Name: "csv",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   11,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "csv",
											Start: ast.Position{
												Column: 51,
												Line:   11,
											},
										},
									},
									Name: "csv",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 55,
									Line:   11,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "c.from(csv: csv)",
								Start: ast.Position{
									Column: 39,
									Line:   11,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 45,
										Line:   11,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "c.from",
									Start: ast.Position{
										Column: 39,
										Line:   11,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 40,
											Line:   11,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "c",
										Start: ast.Position{
											Column: 39,
											Line:   11,
										},
									},
								},
								Name: "c",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   11,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "from",
										Start: ast.Position{
											Column: 41,
											Line:   11,
										},
									},
								},
								Name: "from",
							},
							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: 34,
									Line:   11,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "csv",
								Start: ast.Position{
									Column: 31,
									Line:   11,
								},
							},
						},
						Comma: nil,
						Key: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   11,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "csv",
									Start: ast.Position{
										Column: 31,
										Line:   11,
									},
								},
							},
							Name: "csv",
						},
						Separator: nil,
						Value:     nil,
					}},
					Rparan: nil,
				},
				Member: &ast.MemberExpression{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   11,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "testing.loadStorage",
							Start: ast.Position{
								Column: 8,
								Line:   11,
							},
						},
					},
					Lbrack: nil,
					Object: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   11,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "testing",
								Start: ast.Position{
									Column: 8,
									Line:   11,
								},
							},
						},
						Name: "testing",
					},
					Property: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   11,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "loadStorage",
								Start: ast.Position{
									Column: 16,
									Line:   11,
								},
							},
						},
						Name: "loadStorage",
					},
					Rbrack: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: []ast.Comment{ast.Comment{Text: "// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\n"}},
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 55,
						Line:   11,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "option testing.loadStorage = (csv) => c.from(csv: csv)",
					Start: ast.Position{
						Column: 1,
						Line:   11,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   37,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "inData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   13,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   13,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   13,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   37,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   13,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   46,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.3663333333333333,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,2.533333333333333,prometheus\r\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:   "extrapolatedRate_counter_rate_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:   46,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.3663333333333333,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,2.533333333333333,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   38,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.3663333333333333,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,2.533333333333333,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 62,
						Line:   49,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "t_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: true)",
					Start: ast.Position{
						Column: 1,
						Line:   47,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   47,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "t_extrapolatedRate",
						Start: ast.Position{
							Column: 1,
							Line:   47,
						},
					},
				},
				Name: "t_extrapolatedRate",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 62,
							Line:   49,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: true)",
						Start: ast.Position{
							Column: 22,
							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: 41,
										Line:   47,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 36,
										Line:   47,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   48,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 36,
									Line:   47,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   48,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   48,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   48,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   48,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   48,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   48,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   48,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   48,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   48,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   48,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   48,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   48,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   48,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   48,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   48,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   48,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   48,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   48,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 62,
								Line:   49,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: true)",
							Start: ast.Position{
								Column: 36,
								Line:   47,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 61,
										Line:   49,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "isCounter: true, isRate: true",
									Start: ast.Position{
										Column: 32,
										Line:   49,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 47,
											Line:   49,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "isCounter: true",
										Start: ast.Position{
											Column: 32,
											Line:   49,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   49,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "isCounter",
											Start: ast.Position{
												Column: 32,
												Line:   49,
											},
										},
									},
									Name: "isCounter",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 47,
												Line:   49,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 43,
												Line:   49,
											},
										},
									},
									Name: "true",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   49,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "isRate: true",
										Start: ast.Position{
											Column: 49,
											Line:   49,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 55,
												Line:   49,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "isRate",
											Start: ast.Position{
												Column: 49,
												Line:   49,
											},
										},
									},
									Name: "isRate",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   49,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 57,
												Line:   49,
											},
										},
									},
									Name: "true",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 62,
									Line:   49,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "promql.extrapolatedRate(isCounter: true, isRate: true)",
								Start: ast.Position{
									Column: 8,
									Line:   49,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   49,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "promql.extrapolatedRate",
									Start: ast.Position{
										Column: 8,
										Line:   49,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   49,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   49,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   49,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "extrapolatedRate",
										Start: ast.Position{
											Column: 15,
											Line:   49,
										},
									},
								},
								Name: "extrapolatedRate",
							},
							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: 31,
								Line:   47,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								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:   "extrapolatedRate_counter_rate_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   47,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   47,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   47,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   51,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "_extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
						Start: ast.Position{
							Column: 6,
							Line:   51,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   51,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "_extrapolatedRate",
							Start: ast.Position{
								Column: 6,
								Line:   51,
							},
						},
					},
					Name: "_extrapolatedRate",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   51,
							},
							File:   "extrapolatedRate_counter_rate_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
							Start: ast.Position{
								Column: 26,
								Line:   51,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   51,
								},
								File:   "extrapolatedRate_counter_rate_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
								Start: ast.Position{
									Column: 32,
									Line:   51,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   51,
									},
									File:   "extrapolatedRate_counter_rate_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate}",
									Start: ast.Position{
										Column: 33,
										Line:   51,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   51,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											Line:   51,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												Line:   51,
											},
										},
									},
									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: 72,
													Line:   51,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   51,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   51,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   51,
														},
														File:   "extrapolatedRate_counter_rate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   51,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   51,
														},
														File:   "extrapolatedRate_counter_rate_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   51,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   51,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   51,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   51,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   51,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														Line:   51,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   51,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   51,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												Line:   51,
											},
										},
									},
									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: 109,
													Line:   51,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   51,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   51,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   51,
														},
														File:   "extrapolatedRate_counter_rate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   51,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   51,
														},
														File:   "extrapolatedRate_counter_rate_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   51,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   51,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   51,
												},
												File:   "extrapolatedRate_counter_rate_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   51,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   51,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   51,
													},
													File:   "extrapolatedRate_counter_rate_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														Line:   51,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 134,
											Line:   51,
										},
										File:   "extrapolatedRate_counter_rate_test.flux",
										Source: "fn: t_extrapolatedRate",
										Start: ast.Position{
											Column: 112,
											Line:   51,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   51,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   51,
											},
											File:   "extrapolatedRate_counter_rate_test.flux",
											Source: "t_extrapolatedRate",
											Start: ast.Position{
												Column: 116,
												Line:   51,
											},
										},
									},
									Name: "t_extrapolatedRate",
								},
							}},
							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: 136,
						Line:   51,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "test _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
					Start: ast.Position{
						Column: 1,
						Line:   51,
					},
				},
			},
		}},
		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:   "extrapolatedRate_counter_rate_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:   "extrapolatedRate_counter_rate_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: 25,
						Line:   5,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   6,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "c",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Name: "c",
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 15,
						Line:   6,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "import c \"csv\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   6,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "\"csv\"",
						Start: ast.Position{
							Column: 10,
							Line:   6,
						},
					},
				},
				Value: "csv",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "extrapolatedRate_counter_rate_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "extrapolatedRate_counter_rate_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "extrapolatedRate_counter_rate_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   57,
				},
				File:   "extrapolatedRate_nocounter_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\nimport c \"csv\"\n\noption now = () => 2030-01-01T00:00:00Z\n\n// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\noption testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )\n\ninData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.39599999999999996,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,1.2,prometheus\r\n\"\nt_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: false, isRate: true)\n\ntest _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
				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:   "extrapolatedRate_nocounter_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:   "extrapolatedRate_nocounter_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:   "extrapolatedRate_nocounter_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:   "extrapolatedRate_nocounter_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:   "extrapolatedRate_nocounter_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.OptionStatement{
			Assignment: &ast.MemberAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   18,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
						Start: ast.Position{
							Column: 8,
							Line:   11,
						},
					},
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   18,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "(csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
							Start: ast.Position{
								Column: 30,
								Line:   11,
							},
						},
					},
					Body: &ast.PipeExpression{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   11,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "csv: csv",
										Start: ast.Position{
											Column: 46,
											Line:   11,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   11,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "csv: csv",
											Start: ast.Position{
												Column: 46,
												Line:   11,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   11,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 46,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   11,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 51,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 55,
										Line:   11,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "c.from(csv: csv)",
									Start: ast.Position{
										Column: 39,
										Line:   11,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   11,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "c.from",
										Start: ast.Position{
											Column: 39,
											Line:   11,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 40,
												Line:   11,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "c",
											Start: ast.Position{
												Column: 39,
												Line:   11,
											},
										},
									},
									Name: "c",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   11,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "from",
											Start: ast.Position{
												Column: 41,
												Line:   11,
											},
										},
									},
									Name: "from",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   18,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
								Start: ast.Position{
									Column: 39,
									Line:   11,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   17,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
										Start: ast.Position{
											Column: 9,
											Line:   13,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 11,
												Line:   17,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
											Start: ast.Position{
												Column: 9,
												Line:   13,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   13,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 9,
													Line:   13,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   17,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "(r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
												Start: ast.Position{
													Column: 13,
													Line:   13,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 11,
														Line:   17,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
													Start: ast.Position{
														Column: 20,
														Line:   13,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 10,
															Line:   17,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "{r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }",
														Start: ast.Position{
															Column: 21,
															Line:   13,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 115,
																Line:   14,
															},
															File:   "extrapolatedRate_nocounter_test.flux",
															Source: "_field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
															Start: ast.Position{
																Column: 13,
																Line:   14,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 19,
																	Line:   14,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "_field",
																Start: ast.Position{
																	Column: 13,
																	Line:   14,
																},
															},
														},
														Name: "_field",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 114,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "msg: \"test input table does not have _field column\"",
																		Start: ast.Position{
																			Column: 63,
																			Line:   14,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 114,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "msg: \"test input table does not have _field column\"",
																			Start: ast.Position{
																				Column: 63,
																				Line:   14,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 66,
																					Line:   14,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 63,
																					Line:   14,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 114,
																					Line:   14,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "\"test input table does not have _field column\"",
																				Start: ast.Position{
																					Column: 68,
																					Line:   14,
																				},
																			},
																		},
																		Value: "test input table does not have _field column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 115,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "die(msg: \"test input table does not have _field column\")",
																	Start: ast.Position{
																		Column: 59,
																		Line:   14,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 62,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 59,
																			Line:   14,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 115,
																	Line:   14,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
																Start: ast.Position{
																	Column: 21,
																	Line:   14,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 53,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 45,
																		Line:   14,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 46,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 45,
																			Line:   14,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 53,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 47,
																			Line:   14,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 39,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r._field",
																		Start: ast.Position{
																			Column: 31,
																			Line:   14,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 32,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 31,
																				Line:   14,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 39,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "_field",
																			Start: ast.Position{
																				Column: 33,
																				Line:   14,
																			},
																		},
																	},
																	Name: "_field",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 39,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "exists r._field",
																	Start: ast.Position{
																		Column: 24,
																		Line:   14,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 139,
																Line:   15,
															},
															File:   "extrapolatedRate_nocounter_test.flux",
															Source: "_measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
															Start: ast.Position{
																Column: 13,
																Line:   15,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   15,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "_measurement",
																Start: ast.Position{
																	Column: 13,
																	Line:   15,
																},
															},
														},
														Name: "_measurement",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 138,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "msg: \"test input table does not have _measurement column\"",
																		Start: ast.Position{
																			Column: 81,
																			Line:   15,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 138,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "msg: \"test input table does not have _measurement column\"",
																			Start: ast.Position{
																				Column: 81,
																				Line:   15,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 84,
																					Line:   15,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 81,
																					Line:   15,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 138,
																					Line:   15,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "\"test input table does not have _measurement column\"",
																				Start: ast.Position{
																					Column: 86,
																					Line:   15,
																				},
																			},
																		},
																		Value: "test input table does not have _measurement column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 139,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "die(msg: \"test input table does not have _measurement column\")",
																	Start: ast.Position{
																		Column: 77,
																		Line:   15,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 80,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 77,
																			Line:   15,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 139,
																	Line:   15,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
																Start: ast.Position{
																	Column: 27,
																	Line:   15,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 71,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "r._measurement",
																	Start: ast.Position{
																		Column: 57,
																		Line:   15,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 58,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 57,
																			Line:   15,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 71,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "_measurement",
																		Start: ast.Position{
																			Column: 59,
																			Line:   15,
																		},
																	},
																},
																Name: "_measurement",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 51,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 37,
																			Line:   15,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 38,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 37,
																				Line:   15,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 51,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 39,
																				Line:   15,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 51,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "exists r._measurement",
																	Start: ast.Position{
																		Column: 30,
																		Line:   15,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 111,
																Line:   16,
															},
															File:   "extrapolatedRate_nocounter_test.flux",
															Source: "_time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
															Start: ast.Position{
																Column: 13,
																Line:   16,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 18,
																	Line:   16,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "_time",
																Start: ast.Position{
																	Column: 13,
																	Line:   16,
																},
															},
														},
														Name: "_time",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 110,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "msg: \"test input table does not have _time column\"",
																		Start: ast.Position{
																			Column: 60,
																			Line:   16,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 110,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "msg: \"test input table does not have _time column\"",
																			Start: ast.Position{
																				Column: 60,
																				Line:   16,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 63,
																					Line:   16,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 60,
																					Line:   16,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 110,
																					Line:   16,
																				},
																				File:   "extrapolatedRate_nocounter_test.flux",
																				Source: "\"test input table does not have _time column\"",
																				Start: ast.Position{
																					Column: 65,
																					Line:   16,
																				},
																			},
																		},
																		Value: "test input table does not have _time column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 111,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "die(msg: \"test input table does not have _time column\")",
																	Start: ast.Position{
																		Column: 56,
																		Line:   16,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 59,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 56,
																			Line:   16,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 111,
																	Line:   16,
																},
																File:   "extrapolatedRate_nocounter_test.flux",
																Source: "if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
																Start: ast.Position{
																	Column: 20,
																	Line:   16,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 50,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "r._time",
																	Start: ast.Position{
																		Column: 43,
																		Line:   16,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 44,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 43,
																			Line:   16,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 50,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "_time",
																		Start: ast.Position{
																			Column: 45,
																			Line:   16,
																		},
																	},
																},
																Name: "_time",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 37,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_nocounter_test.flux",
																		Source: "r._time",
																		Start: ast.Position{
																			Column: 30,
																			Line:   16,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 31,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 30,
																				Line:   16,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 37,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_nocounter_test.flux",
																			Source: "_time",
																			Start: ast.Position{
																				Column: 32,
																				Line:   16,
																			},
																		},
																	},
																	Name: "_time",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 37,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_nocounter_test.flux",
																	Source: "exists r._time",
																	Start: ast.Position{
																		Column: 23,
																		Line:   16,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 23,
																Line:   13,
															},
															File:   "extrapolatedRate_nocounter_test.flux",
															Source: "r",
															Start: ast.Position{
																Column: 22,
																Line:   13,
															},
														},
													},
													Name: "r",
												},
											},
											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: 15,
														Line:   13,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 14,
														Line:   13,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 15,
															Line:   13,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 14,
															Line:   13,
														},
													},
												},
												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: 6,
										Line:   18,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
									Start: ast.Position{
										Column: 8,
										Line:   12,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   12,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "map",
										Start: ast.Position{
											Column: 8,
											Line:   12,
										},
									},
								},
								Name: "map",
							},
							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: 34,
									Line:   11,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "csv",
								Start: ast.Position{
									Column: 31,
									Line:   11,
								},
							},
						},
						Comma: nil,
						Key: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   11,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "csv",
									Start: ast.Position{
										Column: 31,
										Line:   11,
									},
								},
							},
							Name: "csv",
						},
						Separator: nil,
						Value:     nil,
					}},
					Rparan: nil,
				},
				Member: &ast.MemberExpression{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   11,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "testing.loadStorage",
							Start: ast.Position{
								Column: 8,
								Line:   11,
							},
						},
					},
					Lbrack: nil,
					Object: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   11,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "testing",
								Start: ast.Position{
									Column: 8,
									Line:   11,
								},
							},
						},
						Name: "testing",
					},
					Property: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   11,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "loadStorage",
								Start: ast.Position{
									Column: 16,
									Line:   11,
								},
							},
						},
						Name: "loadStorage",
					},
					Rbrack: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: []ast.Comment{ast.Comment{Text: "// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\n"}},
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   18,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "option testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   11,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "inData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   20,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   20,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   20,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   20,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   52,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.39599999999999996,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,1.2,prometheus\r\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:   "extrapolatedRate_nocounter_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:   52,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.39599999999999996,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,1.2,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   44,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0.39599999999999996,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,1.2,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 63,
						Line:   55,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "t_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: false, isRate: true)",
					Start: ast.Position{
						Column: 1,
						Line:   53,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   53,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "t_extrapolatedRate",
						Start: ast.Position{
							Column: 1,
							Line:   53,
						},
					},
				},
				Name: "t_extrapolatedRate",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 63,
							Line:   55,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: false, isRate: true)",
						Start: ast.Position{
							Column: 22,
							Line:   53,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 41,
										Line:   53,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 36,
										Line:   53,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   54,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 36,
									Line:   53,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   54,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   54,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   54,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   54,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   54,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   54,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   54,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   54,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   54,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   54,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   54,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   54,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   54,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   54,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   54,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   54,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   54,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   54,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 63,
								Line:   55,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: false, isRate: true)",
							Start: ast.Position{
								Column: 36,
								Line:   53,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 62,
										Line:   55,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "isCounter: false, isRate: true",
									Start: ast.Position{
										Column: 32,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 48,
											Line:   55,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "isCounter: false",
										Start: ast.Position{
											Column: 32,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   55,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "isCounter",
											Start: ast.Position{
												Column: 32,
												Line:   55,
											},
										},
									},
									Name: "isCounter",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 48,
												Line:   55,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "false",
											Start: ast.Position{
												Column: 43,
												Line:   55,
											},
										},
									},
									Name: "false",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   55,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "isRate: true",
										Start: ast.Position{
											Column: 50,
											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:   "extrapolatedRate_nocounter_test.flux",
											Source: "isRate",
											Start: ast.Position{
												Column: 50,
												Line:   55,
											},
										},
									},
									Name: "isRate",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   55,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 58,
												Line:   55,
											},
										},
									},
									Name: "true",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 63,
									Line:   55,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "promql.extrapolatedRate(isCounter: false, isRate: true)",
								Start: ast.Position{
									Column: 8,
									Line:   55,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   55,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "promql.extrapolatedRate",
									Start: ast.Position{
										Column: 8,
										Line:   55,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   55,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   55,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   55,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "extrapolatedRate",
										Start: ast.Position{
											Column: 15,
											Line:   55,
										},
									},
								},
								Name: "extrapolatedRate",
							},
							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: 31,
								Line:   53,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								Line:   53,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   53,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   53,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   53,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   53,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   57,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "_extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   57,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "_extrapolatedRate",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_extrapolatedRate",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   57,
							},
							File:   "extrapolatedRate_nocounter_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
							Start: ast.Position{
								Column: 26,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   57,
								},
								File:   "extrapolatedRate_nocounter_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
								Start: ast.Position{
									Column: 32,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   57,
									},
									File:   "extrapolatedRate_nocounter_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate}",
									Start: ast.Position{
										Column: 33,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   57,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												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: 72,
													Line:   57,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   57,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   57,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   57,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														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: 110,
											Line:   57,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												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: 109,
													Line:   57,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   57,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   57,
														},
														File:   "extrapolatedRate_nocounter_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   57,
												},
												File:   "extrapolatedRate_nocounter_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   57,
													},
													File:   "extrapolatedRate_nocounter_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														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: 134,
											Line:   57,
										},
										File:   "extrapolatedRate_nocounter_test.flux",
										Source: "fn: t_extrapolatedRate",
										Start: ast.Position{
											Column: 112,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   57,
											},
											File:   "extrapolatedRate_nocounter_test.flux",
											Source: "t_extrapolatedRate",
											Start: ast.Position{
												Column: 116,
												Line:   57,
											},
										},
									},
									Name: "t_extrapolatedRate",
								},
							}},
							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: 136,
						Line:   57,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "test _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
					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:   "extrapolatedRate_nocounter_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:   "extrapolatedRate_nocounter_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: 25,
						Line:   5,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   6,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "c",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Name: "c",
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 15,
						Line:   6,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "import c \"csv\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   6,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "\"csv\"",
						Start: ast.Position{
							Column: 10,
							Line:   6,
						},
					},
				},
				Value: "csv",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "extrapolatedRate_nocounter_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "extrapolatedRate_nocounter_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "extrapolatedRate_nocounter_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   57,
				},
				File:   "extrapolatedRate_norate_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\nimport c \"csv\"\n\noption now = () => 2030-01-01T00:00:00Z\n\n// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\noption testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )\n\ninData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,109.89999999999999,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,760,prometheus\r\n\"\nt_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: false)\n\ntest _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
				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:   "extrapolatedRate_norate_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:   "extrapolatedRate_norate_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:   "extrapolatedRate_norate_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:   "extrapolatedRate_norate_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:   "extrapolatedRate_norate_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.OptionStatement{
			Assignment: &ast.MemberAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   18,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
						Start: ast.Position{
							Column: 8,
							Line:   11,
						},
					},
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   18,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "(csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
							Start: ast.Position{
								Column: 30,
								Line:   11,
							},
						},
					},
					Body: &ast.PipeExpression{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   11,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "csv: csv",
										Start: ast.Position{
											Column: 46,
											Line:   11,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   11,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "csv: csv",
											Start: ast.Position{
												Column: 46,
												Line:   11,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   11,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 46,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   11,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 51,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 55,
										Line:   11,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "c.from(csv: csv)",
									Start: ast.Position{
										Column: 39,
										Line:   11,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   11,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "c.from",
										Start: ast.Position{
											Column: 39,
											Line:   11,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 40,
												Line:   11,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "c",
											Start: ast.Position{
												Column: 39,
												Line:   11,
											},
										},
									},
									Name: "c",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   11,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "from",
											Start: ast.Position{
												Column: 41,
												Line:   11,
											},
										},
									},
									Name: "from",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   18,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
								Start: ast.Position{
									Column: 39,
									Line:   11,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   17,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
										Start: ast.Position{
											Column: 9,
											Line:   13,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 11,
												Line:   17,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
											Start: ast.Position{
												Column: 9,
												Line:   13,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   13,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 9,
													Line:   13,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   17,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "(r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
												Start: ast.Position{
													Column: 13,
													Line:   13,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 11,
														Line:   17,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
													Start: ast.Position{
														Column: 20,
														Line:   13,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 10,
															Line:   17,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "{r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }",
														Start: ast.Position{
															Column: 21,
															Line:   13,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 115,
																Line:   14,
															},
															File:   "extrapolatedRate_norate_test.flux",
															Source: "_field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
															Start: ast.Position{
																Column: 13,
																Line:   14,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 19,
																	Line:   14,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "_field",
																Start: ast.Position{
																	Column: 13,
																	Line:   14,
																},
															},
														},
														Name: "_field",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 114,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "msg: \"test input table does not have _field column\"",
																		Start: ast.Position{
																			Column: 63,
																			Line:   14,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 114,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "msg: \"test input table does not have _field column\"",
																			Start: ast.Position{
																				Column: 63,
																				Line:   14,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 66,
																					Line:   14,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 63,
																					Line:   14,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 114,
																					Line:   14,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "\"test input table does not have _field column\"",
																				Start: ast.Position{
																					Column: 68,
																					Line:   14,
																				},
																			},
																		},
																		Value: "test input table does not have _field column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 115,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "die(msg: \"test input table does not have _field column\")",
																	Start: ast.Position{
																		Column: 59,
																		Line:   14,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 62,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 59,
																			Line:   14,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 115,
																	Line:   14,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
																Start: ast.Position{
																	Column: 21,
																	Line:   14,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 53,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 45,
																		Line:   14,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 46,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 45,
																			Line:   14,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 53,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 47,
																			Line:   14,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 39,
																			Line:   14,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r._field",
																		Start: ast.Position{
																			Column: 31,
																			Line:   14,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 32,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 31,
																				Line:   14,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 39,
																				Line:   14,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "_field",
																			Start: ast.Position{
																				Column: 33,
																				Line:   14,
																			},
																		},
																	},
																	Name: "_field",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 39,
																		Line:   14,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "exists r._field",
																	Start: ast.Position{
																		Column: 24,
																		Line:   14,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 139,
																Line:   15,
															},
															File:   "extrapolatedRate_norate_test.flux",
															Source: "_measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
															Start: ast.Position{
																Column: 13,
																Line:   15,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   15,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "_measurement",
																Start: ast.Position{
																	Column: 13,
																	Line:   15,
																},
															},
														},
														Name: "_measurement",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 138,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "msg: \"test input table does not have _measurement column\"",
																		Start: ast.Position{
																			Column: 81,
																			Line:   15,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 138,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "msg: \"test input table does not have _measurement column\"",
																			Start: ast.Position{
																				Column: 81,
																				Line:   15,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 84,
																					Line:   15,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 81,
																					Line:   15,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 138,
																					Line:   15,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "\"test input table does not have _measurement column\"",
																				Start: ast.Position{
																					Column: 86,
																					Line:   15,
																				},
																			},
																		},
																		Value: "test input table does not have _measurement column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 139,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "die(msg: \"test input table does not have _measurement column\")",
																	Start: ast.Position{
																		Column: 77,
																		Line:   15,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 80,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 77,
																			Line:   15,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 139,
																	Line:   15,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
																Start: ast.Position{
																	Column: 27,
																	Line:   15,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 71,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "r._measurement",
																	Start: ast.Position{
																		Column: 57,
																		Line:   15,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 58,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 57,
																			Line:   15,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 71,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "_measurement",
																		Start: ast.Position{
																			Column: 59,
																			Line:   15,
																		},
																	},
																},
																Name: "_measurement",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 51,
																			Line:   15,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 37,
																			Line:   15,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 38,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 37,
																				Line:   15,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 51,
																				Line:   15,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 39,
																				Line:   15,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 51,
																		Line:   15,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "exists r._measurement",
																	Start: ast.Position{
																		Column: 30,
																		Line:   15,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 111,
																Line:   16,
															},
															File:   "extrapolatedRate_norate_test.flux",
															Source: "_time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
															Start: ast.Position{
																Column: 13,
																Line:   16,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 18,
																	Line:   16,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "_time",
																Start: ast.Position{
																	Column: 13,
																	Line:   16,
																},
															},
														},
														Name: "_time",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 110,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "msg: \"test input table does not have _time column\"",
																		Start: ast.Position{
																			Column: 60,
																			Line:   16,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 110,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "msg: \"test input table does not have _time column\"",
																			Start: ast.Position{
																				Column: 60,
																				Line:   16,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 63,
																					Line:   16,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 60,
																					Line:   16,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 110,
																					Line:   16,
																				},
																				File:   "extrapolatedRate_norate_test.flux",
																				Source: "\"test input table does not have _time column\"",
																				Start: ast.Position{
																					Column: 65,
																					Line:   16,
																				},
																			},
																		},
																		Value: "test input table does not have _time column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 111,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "die(msg: \"test input table does not have _time column\")",
																	Start: ast.Position{
																		Column: 56,
																		Line:   16,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 59,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 56,
																			Line:   16,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 111,
																	Line:   16,
																},
																File:   "extrapolatedRate_norate_test.flux",
																Source: "if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
																Start: ast.Position{
																	Column: 20,
																	Line:   16,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 50,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "r._time",
																	Start: ast.Position{
																		Column: 43,
																		Line:   16,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 44,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 43,
																			Line:   16,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 50,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "_time",
																		Start: ast.Position{
																			Column: 45,
																			Line:   16,
																		},
																	},
																},
																Name: "_time",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 37,
																			Line:   16,
																		},
																		File:   "extrapolatedRate_norate_test.flux",
																		Source: "r._time",
																		Start: ast.Position{
																			Column: 30,
																			Line:   16,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 31,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 30,
																				Line:   16,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 37,
																				Line:   16,
																			},
																			File:   "extrapolatedRate_norate_test.flux",
																			Source: "_time",
																			Start: ast.Position{
																				Column: 32,
																				Line:   16,
																			},
																		},
																	},
																	Name: "_time",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 37,
																		Line:   16,
																	},
																	File:   "extrapolatedRate_norate_test.flux",
																	Source: "exists r._time",
																	Start: ast.Position{
																		Column: 23,
																		Line:   16,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 23,
																Line:   13,
															},
															File:   "extrapolatedRate_norate_test.flux",
															Source: "r",
															Start: ast.Position{
																Column: 22,
																Line:   13,
															},
														},
													},
													Name: "r",
												},
											},
											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: 15,
														Line:   13,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 14,
														Line:   13,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 15,
															Line:   13,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 14,
															Line:   13,
														},
													},
												},
												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: 6,
										Line:   18,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
									Start: ast.Position{
										Column: 8,
										Line:   12,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   12,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "map",
										Start: ast.Position{
											Column: 8,
											Line:   12,
										},
									},
								},
								Name: "map",
							},
							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: 34,
									Line:   11,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "csv",
								Start: ast.Position{
									Column: 31,
									Line:   11,
								},
							},
						},
						Comma: nil,
						Key: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   11,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "csv",
									Start: ast.Position{
										Column: 31,
										Line:   11,
									},
								},
							},
							Name: "csv",
						},
						Separator: nil,
						Value:     nil,
					}},
					Rparan: nil,
				},
				Member: &ast.MemberExpression{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   11,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "testing.loadStorage",
							Start: ast.Position{
								Column: 8,
								Line:   11,
							},
						},
					},
					Lbrack: nil,
					Object: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   11,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "testing",
								Start: ast.Position{
									Column: 8,
									Line:   11,
								},
							},
						},
						Name: "testing",
					},
					Property: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   11,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "loadStorage",
								Start: ast.Position{
									Column: 16,
									Line:   11,
								},
							},
						},
						Name: "loadStorage",
					},
					Rbrack: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: []ast.Comment{ast.Comment{Text: "// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\n"}},
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   18,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "option testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   11,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   43,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "inData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   20,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   20,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   20,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   43,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   20,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   52,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,109.89999999999999,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,760,prometheus\r\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:   "extrapolatedRate_norate_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:   52,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,109.89999999999999,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,760,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   44,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,109.89999999999999,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,760,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 63,
						Line:   55,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "t_extrapolatedRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: false)",
					Start: ast.Position{
						Column: 1,
						Line:   53,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   53,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "t_extrapolatedRate",
						Start: ast.Position{
							Column: 1,
							Line:   53,
						},
					},
				},
				Name: "t_extrapolatedRate",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 63,
							Line:   55,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: false)",
						Start: ast.Position{
							Column: 22,
							Line:   53,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 41,
										Line:   53,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 36,
										Line:   53,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   54,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 36,
									Line:   53,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   54,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   54,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   54,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   54,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   54,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   54,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   54,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   54,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   54,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   54,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   54,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   54,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   54,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   54,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   54,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   54,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   54,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   54,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 63,
								Line:   55,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.extrapolatedRate(isCounter: true, isRate: false)",
							Start: ast.Position{
								Column: 36,
								Line:   53,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 62,
										Line:   55,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "isCounter: true, isRate: false",
									Start: ast.Position{
										Column: 32,
										Line:   55,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 47,
											Line:   55,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "isCounter: true",
										Start: ast.Position{
											Column: 32,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   55,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "isCounter",
											Start: ast.Position{
												Column: 32,
												Line:   55,
											},
										},
									},
									Name: "isCounter",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 47,
												Line:   55,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 43,
												Line:   55,
											},
										},
									},
									Name: "true",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 62,
											Line:   55,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "isRate: false",
										Start: ast.Position{
											Column: 49,
											Line:   55,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 55,
												Line:   55,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "isRate",
											Start: ast.Position{
												Column: 49,
												Line:   55,
											},
										},
									},
									Name: "isRate",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 62,
												Line:   55,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "false",
											Start: ast.Position{
												Column: 57,
												Line:   55,
											},
										},
									},
									Name: "false",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 63,
									Line:   55,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "promql.extrapolatedRate(isCounter: true, isRate: false)",
								Start: ast.Position{
									Column: 8,
									Line:   55,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   55,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "promql.extrapolatedRate",
									Start: ast.Position{
										Column: 8,
										Line:   55,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   55,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   55,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   55,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "extrapolatedRate",
										Start: ast.Position{
											Column: 15,
											Line:   55,
										},
									},
								},
								Name: "extrapolatedRate",
							},
							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: 31,
								Line:   53,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								Line:   53,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   53,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   53,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   53,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   53,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   57,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "_extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
						Start: ast.Position{
							Column: 6,
							Line:   57,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   57,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "_extrapolatedRate",
							Start: ast.Position{
								Column: 6,
								Line:   57,
							},
						},
					},
					Name: "_extrapolatedRate",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   57,
							},
							File:   "extrapolatedRate_norate_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
							Start: ast.Position{
								Column: 26,
								Line:   57,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   57,
								},
								File:   "extrapolatedRate_norate_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
								Start: ast.Position{
									Column: 32,
									Line:   57,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   57,
									},
									File:   "extrapolatedRate_norate_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate}",
									Start: ast.Position{
										Column: 33,
										Line:   57,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   57,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												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: 72,
													Line:   57,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   57,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   57,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   57,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   57,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														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: 110,
											Line:   57,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												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: 109,
													Line:   57,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   57,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   57,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   57,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   57,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   57,
														},
														File:   "extrapolatedRate_norate_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   57,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   57,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   57,
												},
												File:   "extrapolatedRate_norate_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   57,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   57,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   57,
													},
													File:   "extrapolatedRate_norate_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														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: 134,
											Line:   57,
										},
										File:   "extrapolatedRate_norate_test.flux",
										Source: "fn: t_extrapolatedRate",
										Start: ast.Position{
											Column: 112,
											Line:   57,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   57,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   57,
											},
											File:   "extrapolatedRate_norate_test.flux",
											Source: "t_extrapolatedRate",
											Start: ast.Position{
												Column: 116,
												Line:   57,
											},
										},
									},
									Name: "t_extrapolatedRate",
								},
							}},
							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: 136,
						Line:   57,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "test _extrapolatedRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_extrapolatedRate})",
					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:   "extrapolatedRate_norate_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:   "extrapolatedRate_norate_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: 25,
						Line:   5,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   6,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "c",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Name: "c",
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 15,
						Line:   6,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "import c \"csv\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   6,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "\"csv\"",
						Start: ast.Position{
							Column: 10,
							Line:   6,
						},
					},
				},
				Value: "csv",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "extrapolatedRate_norate_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "extrapolatedRate_norate_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "extrapolatedRate_norate_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 140,
					Line:   44,
				},
				File:   "histogramQuantile_test.flux",
				Source: "package promql_test\n\n\nimport \"experimental\"\nimport \"internal/promql\"\nimport \"testing\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"#datatype,string,long,dateTime:RFC3339,string,double,string,string\r\n#group,false,false,false,true,false,true,true\r\n#default,inData,,,,,,\r\n,result,table,_time,_field,_value,le,_measurement\r\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,prometheus\r\n,,1,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,prometheus\r\n,,2,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,prometheus\r\n,,3,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,prometheus\r\n,,4,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,prometheus\r\n,,5,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,prometheus\r\n,,6,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,prometheus\r\n,,7,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,prometheus\r\n,,8,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,prometheus\r\n,,9,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,prometheus\r\n,,10,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,prometheus\r\n,,11,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,prometheus\r\n,,12,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,prometheus\r\n,,13,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,prometheus\r\n,,14,2018-05-22T19:53:00Z,y_duration_seconds,45,1,prometheus\r\n,,15,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\r\n#group,false,false,true,true,true,true,false\r\n#default,_result,,,,,,\r\n,result,table,_start,_stop,_field,_measurement,_value\r\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,x_duration_seconds,prometheus,0.8500000000000001\r\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,y_duration_seconds,prometheus,0.91\r\n\"\nt_histogram_quantile = (table=<-) => table\n    |> range(start: 2018-05-22T19:53:00Z)\n    |> group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])\n    |> promql.promHistogramQuantile(quantile: 0.9)\n\ntest _histogram_quantile = () => ({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:   8,
						},
						File:   "histogramQuantile_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:   "histogramQuantile_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:   "histogramQuantile_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:   "histogramQuantile_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:   "histogramQuantile_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:   30,
					},
					File:   "histogramQuantile_test.flux",
					Source: "inData = \"#datatype,string,long,dateTime:RFC3339,string,double,string,string\r\n#group,false,false,false,true,false,true,true\r\n#default,inData,,,,,,\r\n,result,table,_time,_field,_value,le,_measurement\r\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,prometheus\r\n,,1,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,prometheus\r\n,,2,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,prometheus\r\n,,3,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,prometheus\r\n,,4,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,prometheus\r\n,,5,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,prometheus\r\n,,6,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,prometheus\r\n,,7,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,prometheus\r\n,,8,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,prometheus\r\n,,9,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,prometheus\r\n,,10,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,prometheus\r\n,,11,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,prometheus\r\n,,12,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,prometheus\r\n,,13,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,prometheus\r\n,,14,2018-05-22T19:53:00Z,y_duration_seconds,45,1,prometheus\r\n,,15,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,prometheus\r\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:   "histogramQuantile_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:   30,
						},
						File:   "histogramQuantile_test.flux",
						Source: "\"#datatype,string,long,dateTime:RFC3339,string,double,string,string\r\n#group,false,false,false,true,false,true,true\r\n#default,inData,,,,,,\r\n,result,table,_time,_field,_value,le,_measurement\r\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,prometheus\r\n,,1,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,prometheus\r\n,,2,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,prometheus\r\n,,3,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,prometheus\r\n,,4,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,prometheus\r\n,,5,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,prometheus\r\n,,6,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,prometheus\r\n,,7,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,prometheus\r\n,,8,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,prometheus\r\n,,9,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,prometheus\r\n,,10,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,prometheus\r\n,,11,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,prometheus\r\n,,12,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,prometheus\r\n,,13,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,prometheus\r\n,,14,2018-05-22T19:53:00Z,y_duration_seconds,45,1,prometheus\r\n,,15,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   10,
						},
					},
				},
				Value: "#datatype,string,long,dateTime:RFC3339,string,double,string,string\r\n#group,false,false,false,true,false,true,true\r\n#default,inData,,,,,,\r\n,result,table,_time,_field,_value,le,_measurement\r\n,,0,2018-05-22T19:53:00Z,x_duration_seconds,1,0.1,prometheus\r\n,,1,2018-05-22T19:53:00Z,x_duration_seconds,2,0.2,prometheus\r\n,,2,2018-05-22T19:53:00Z,x_duration_seconds,2,0.3,prometheus\r\n,,3,2018-05-22T19:53:00Z,x_duration_seconds,2,0.4,prometheus\r\n,,4,2018-05-22T19:53:00Z,x_duration_seconds,2,0.5,prometheus\r\n,,5,2018-05-22T19:53:00Z,x_duration_seconds,2,0.6,prometheus\r\n,,6,2018-05-22T19:53:00Z,x_duration_seconds,2,0.7,prometheus\r\n,,7,2018-05-22T19:53:00Z,x_duration_seconds,8,0.8,prometheus\r\n,,8,2018-05-22T19:53:00Z,x_duration_seconds,10,0.9,prometheus\r\n,,9,2018-05-22T19:53:00Z,x_duration_seconds,10,+Inf,prometheus\r\n,,10,2018-05-22T19:53:00Z,y_duration_seconds,10,0.2,prometheus\r\n,,11,2018-05-22T19:53:00Z,y_duration_seconds,15,0.4,prometheus\r\n,,12,2018-05-22T19:53:00Z,y_duration_seconds,25,0.6,prometheus\r\n,,13,2018-05-22T19:53:00Z,y_duration_seconds,35,0.8,prometheus\r\n,,14,2018-05-22T19:53:00Z,y_duration_seconds,45,1,prometheus\r\n,,15,2018-05-22T19:53:00Z,y_duration_seconds,45,+Inf,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   38,
					},
					File:   "histogramQuantile_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\r\n#group,false,false,true,true,true,true,false\r\n#default,_result,,,,,,\r\n,result,table,_start,_stop,_field,_measurement,_value\r\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,x_duration_seconds,prometheus,0.8500000000000001\r\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,y_duration_seconds,prometheus,0.91\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   31,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   31,
						},
						File:   "histogramQuantile_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   31,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   38,
						},
						File:   "histogramQuantile_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\r\n#group,false,false,true,true,true,true,false\r\n#default,_result,,,,,,\r\n,result,table,_start,_stop,_field,_measurement,_value\r\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,x_duration_seconds,prometheus,0.8500000000000001\r\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,y_duration_seconds,prometheus,0.91\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   31,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,double\r\n#group,false,false,true,true,true,true,false\r\n#default,_result,,,,,,\r\n,result,table,_start,_stop,_field,_measurement,_value\r\n,,0,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,x_duration_seconds,prometheus,0.8500000000000001\r\n,,1,2018-05-22T19:53:00Z,2030-01-01T00:00:00Z,y_duration_seconds,prometheus,0.91\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 51,
						Line:   42,
					},
					File:   "histogramQuantile_test.flux",
					Source: "t_histogram_quantile = (table=<-) => table\n    |> range(start: 2018-05-22T19:53:00Z)\n    |> group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])\n    |> promql.promHistogramQuantile(quantile: 0.9)",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 21,
							Line:   39,
						},
						File:   "histogramQuantile_test.flux",
						Source: "t_histogram_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   39,
						},
					},
				},
				Name: "t_histogram_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 51,
							Line:   42,
						},
						File:   "histogramQuantile_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-05-22T19:53:00Z)\n    |> group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])\n    |> promql.promHistogramQuantile(quantile: 0.9)",
						Start: ast.Position{
							Column: 24,
							Line:   39,
						},
					},
				},
				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: 43,
											Line:   39,
										},
										File:   "histogramQuantile_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 38,
											Line:   39,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   40,
									},
									File:   "histogramQuantile_test.flux",
									Source: "table\n    |> range(start: 2018-05-22T19:53:00Z)",
									Start: ast.Position{
										Column: 38,
										Line:   39,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   40,
											},
											File:   "histogramQuantile_test.flux",
											Source: "start: 2018-05-22T19:53:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   40,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   40,
												},
												File:   "histogramQuantile_test.flux",
												Source: "start: 2018-05-22T19:53:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   40,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   40,
													},
													File:   "histogramQuantile_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   40,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   40,
													},
													File:   "histogramQuantile_test.flux",
													Source: "2018-05-22T19:53:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   40,
													},
												},
											},
											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: 42,
											Line:   40,
										},
										File:   "histogramQuantile_test.flux",
										Source: "range(start: 2018-05-22T19:53:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   40,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   40,
											},
											File:   "histogramQuantile_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   40,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 65,
									Line:   41,
								},
								File:   "histogramQuantile_test.flux",
								Source: "table\n    |> range(start: 2018-05-22T19:53:00Z)\n    |> group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])",
								Start: ast.Position{
									Column: 38,
									Line:   39,
								},
							},
						},
						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:   "histogramQuantile_test.flux",
										Source: "mode: \"except\", columns: [\"le\", \"_time\", \"_value\"]",
										Start: ast.Position{
											Column: 14,
											Line:   41,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   41,
											},
											File:   "histogramQuantile_test.flux",
											Source: "mode: \"except\"",
											Start: ast.Position{
												Column: 14,
												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:   "histogramQuantile_test.flux",
												Source: "mode",
												Start: ast.Position{
													Column: 14,
													Line:   41,
												},
											},
										},
										Name: "mode",
									},
									Separator: nil,
									Value: &ast.StringLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 28,
													Line:   41,
												},
												File:   "histogramQuantile_test.flux",
												Source: "\"except\"",
												Start: ast.Position{
													Column: 20,
													Line:   41,
												},
											},
										},
										Value: "except",
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 64,
												Line:   41,
											},
											File:   "histogramQuantile_test.flux",
											Source: "columns: [\"le\", \"_time\", \"_value\"]",
											Start: ast.Position{
												Column: 30,
												Line:   41,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 37,
													Line:   41,
												},
												File:   "histogramQuantile_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 30,
													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:   "histogramQuantile_test.flux",
												Source: "[\"le\", \"_time\", \"_value\"]",
												Start: ast.Position{
													Column: 39,
													Line:   41,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   41,
													},
													File:   "histogramQuantile_test.flux",
													Source: "\"le\"",
													Start: ast.Position{
														Column: 40,
														Line:   41,
													},
												},
											},
											Value: "le",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 53,
														Line:   41,
													},
													File:   "histogramQuantile_test.flux",
													Source: "\"_time\"",
													Start: ast.Position{
														Column: 46,
														Line:   41,
													},
												},
											},
											Value: "_time",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 63,
														Line:   41,
													},
													File:   "histogramQuantile_test.flux",
													Source: "\"_value\"",
													Start: ast.Position{
														Column: 55,
														Line:   41,
													},
												},
											},
											Value: "_value",
										}},
										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:   "histogramQuantile_test.flux",
									Source: "group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])",
									Start: ast.Position{
										Column: 8,
										Line:   41,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   41,
										},
										File:   "histogramQuantile_test.flux",
										Source: "group",
										Start: ast.Position{
											Column: 8,
											Line:   41,
										},
									},
								},
								Name: "group",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 51,
								Line:   42,
							},
							File:   "histogramQuantile_test.flux",
							Source: "table\n    |> range(start: 2018-05-22T19:53:00Z)\n    |> group(mode: \"except\", columns: [\"le\", \"_time\", \"_value\"])\n    |> promql.promHistogramQuantile(quantile: 0.9)",
							Start: ast.Position{
								Column: 38,
								Line:   39,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 50,
										Line:   42,
									},
									File:   "histogramQuantile_test.flux",
									Source: "quantile: 0.9",
									Start: ast.Position{
										Column: 37,
										Line:   42,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 50,
											Line:   42,
										},
										File:   "histogramQuantile_test.flux",
										Source: "quantile: 0.9",
										Start: ast.Position{
											Column: 37,
											Line:   42,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   42,
											},
											File:   "histogramQuantile_test.flux",
											Source: "quantile",
											Start: ast.Position{
												Column: 37,
												Line:   42,
											},
										},
									},
									Name: "quantile",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 50,
												Line:   42,
											},
											File:   "histogramQuantile_test.flux",
											Source: "0.9",
											Start: ast.Position{
												Column: 47,
												Line:   42,
											},
										},
									},
									Value: 0.9,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 51,
									Line:   42,
								},
								File:   "histogramQuantile_test.flux",
								Source: "promql.promHistogramQuantile(quantile: 0.9)",
								Start: ast.Position{
									Column: 8,
									Line:   42,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 36,
										Line:   42,
									},
									File:   "histogramQuantile_test.flux",
									Source: "promql.promHistogramQuantile",
									Start: ast.Position{
										Column: 8,
										Line:   42,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   42,
										},
										File:   "histogramQuantile_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   42,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 36,
											Line:   42,
										},
										File:   "histogramQuantile_test.flux",
										Source: "promHistogramQuantile",
										Start: ast.Position{
											Column: 15,
											Line:   42,
										},
									},
								},
								Name: "promHistogramQuantile",
							},
							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:   39,
							},
							File:   "histogramQuantile_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 25,
								Line:   39,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 30,
									Line:   39,
								},
								File:   "histogramQuantile_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 25,
									Line:   39,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 33,
								Line:   39,
							},
							File:   "histogramQuantile_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 31,
								Line:   39,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 140,
							Line:   44,
						},
						File:   "histogramQuantile_test.flux",
						Source: "_histogram_quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
						Start: ast.Position{
							Column: 6,
							Line:   44,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   44,
							},
							File:   "histogramQuantile_test.flux",
							Source: "_histogram_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   44,
							},
						},
					},
					Name: "_histogram_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 140,
								Line:   44,
							},
							File:   "histogramQuantile_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
							Start: ast.Position{
								Column: 28,
								Line:   44,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 140,
									Line:   44,
								},
								File:   "histogramQuantile_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
								Start: ast.Position{
									Column: 34,
									Line:   44,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 139,
										Line:   44,
									},
									File:   "histogramQuantile_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile}",
									Start: ast.Position{
										Column: 35,
										Line:   44,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 75,
											Line:   44,
										},
										File:   "histogramQuantile_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 36,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 36,
												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: 74,
													Line:   44,
												},
												File:   "histogramQuantile_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 63,
													Line:   44,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 74,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 63,
														Line:   44,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 66,
															Line:   44,
														},
														File:   "histogramQuantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 63,
															Line:   44,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 74,
															Line:   44,
														},
														File:   "histogramQuantile_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 68,
															Line:   44,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 43,
												Line:   44,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 62,
													Line:   44,
												},
												File:   "histogramQuantile_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 43,
													Line:   44,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 50,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 43,
														Line:   44,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 62,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 51,
														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: 112,
											Line:   44,
										},
										File:   "histogramQuantile_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 77,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 81,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 77,
												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: 111,
													Line:   44,
												},
												File:   "histogramQuantile_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 99,
													Line:   44,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 111,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 99,
														Line:   44,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 102,
															Line:   44,
														},
														File:   "histogramQuantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 99,
															Line:   44,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 111,
															Line:   44,
														},
														File:   "histogramQuantile_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 104,
															Line:   44,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 112,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 83,
												Line:   44,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 98,
													Line:   44,
												},
												File:   "histogramQuantile_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 83,
													Line:   44,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 90,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 83,
														Line:   44,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 98,
														Line:   44,
													},
													File:   "histogramQuantile_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 91,
														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: 138,
											Line:   44,
										},
										File:   "histogramQuantile_test.flux",
										Source: "fn: t_histogram_quantile",
										Start: ast.Position{
											Column: 114,
											Line:   44,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 116,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 114,
												Line:   44,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 138,
												Line:   44,
											},
											File:   "histogramQuantile_test.flux",
											Source: "t_histogram_quantile",
											Start: ast.Position{
												Column: 118,
												Line:   44,
											},
										},
									},
									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: 140,
						Line:   44,
					},
					File:   "histogramQuantile_test.flux",
					Source: "test _histogram_quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_histogram_quantile})",
					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:   "histogramQuantile_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:   "histogramQuantile_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: 25,
						Line:   5,
					},
					File:   "histogramQuantile_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "histogramQuantile_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: nil,
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 17,
						Line:   6,
					},
					File:   "histogramQuantile_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:   "histogramQuantile_test.flux",
						Source: "\"testing\"",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Value: "testing",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "histogramQuantile_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "histogramQuantile_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "histogramQuantile_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 126,
					Line:   47,
				},
				File:   "holtWinters_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,32.78296,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,535.7920000000001,prometheus\r\n\"\nt_holtWinters = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.holtWinters(smoothingFactor: 0.1, trendFactor: 0.2)\n\ntest _holtWinters = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters})",
				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:   "holtWinters_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:   "holtWinters_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:   "holtWinters_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:   "holtWinters_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:   "holtWinters_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:   33,
					},
					File:   "holtWinters_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\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:   "holtWinters_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:   33,
						},
						File:   "holtWinters_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   42,
					},
					File:   "holtWinters_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,32.78296,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,535.7920000000001,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   34,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   34,
						},
						File:   "holtWinters_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   34,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   42,
						},
						File:   "holtWinters_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,32.78296,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,535.7920000000001,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   34,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,32.78296,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,535.7920000000001,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 66,
						Line:   45,
					},
					File:   "holtWinters_test.flux",
					Source: "t_holtWinters = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.holtWinters(smoothingFactor: 0.1, trendFactor: 0.2)",
					Start: ast.Position{
						Column: 1,
						Line:   43,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 14,
							Line:   43,
						},
						File:   "holtWinters_test.flux",
						Source: "t_holtWinters",
						Start: ast.Position{
							Column: 1,
							Line:   43,
						},
					},
				},
				Name: "t_holtWinters",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 66,
							Line:   45,
						},
						File:   "holtWinters_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.holtWinters(smoothingFactor: 0.1, trendFactor: 0.2)",
						Start: ast.Position{
							Column: 17,
							Line:   43,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 36,
										Line:   43,
									},
									File:   "holtWinters_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 31,
										Line:   43,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   44,
								},
								File:   "holtWinters_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 31,
									Line:   43,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   44,
										},
										File:   "holtWinters_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   44,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   44,
											},
											File:   "holtWinters_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   44,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   44,
												},
												File:   "holtWinters_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   44,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   44,
												},
												File:   "holtWinters_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   44,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   44,
											},
											File:   "holtWinters_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   44,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   44,
												},
												File:   "holtWinters_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   44,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   44,
												},
												File:   "holtWinters_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   44,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   44,
									},
									File:   "holtWinters_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   44,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   44,
										},
										File:   "holtWinters_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   44,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 66,
								Line:   45,
							},
							File:   "holtWinters_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.holtWinters(smoothingFactor: 0.1, trendFactor: 0.2)",
							Start: ast.Position{
								Column: 31,
								Line:   43,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 65,
										Line:   45,
									},
									File:   "holtWinters_test.flux",
									Source: "smoothingFactor: 0.1, trendFactor: 0.2",
									Start: ast.Position{
										Column: 27,
										Line:   45,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 47,
											Line:   45,
										},
										File:   "holtWinters_test.flux",
										Source: "smoothingFactor: 0.1",
										Start: ast.Position{
											Column: 27,
											Line:   45,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   45,
											},
											File:   "holtWinters_test.flux",
											Source: "smoothingFactor",
											Start: ast.Position{
												Column: 27,
												Line:   45,
											},
										},
									},
									Name: "smoothingFactor",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 47,
												Line:   45,
											},
											File:   "holtWinters_test.flux",
											Source: "0.1",
											Start: ast.Position{
												Column: 44,
												Line:   45,
											},
										},
									},
									Value: 0.1,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   45,
										},
										File:   "holtWinters_test.flux",
										Source: "trendFactor: 0.2",
										Start: ast.Position{
											Column: 49,
											Line:   45,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   45,
											},
											File:   "holtWinters_test.flux",
											Source: "trendFactor",
											Start: ast.Position{
												Column: 49,
												Line:   45,
											},
										},
									},
									Name: "trendFactor",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   45,
											},
											File:   "holtWinters_test.flux",
											Source: "0.2",
											Start: ast.Position{
												Column: 62,
												Line:   45,
											},
										},
									},
									Value: 0.2,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 66,
									Line:   45,
								},
								File:   "holtWinters_test.flux",
								Source: "promql.holtWinters(smoothingFactor: 0.1, trendFactor: 0.2)",
								Start: ast.Position{
									Column: 8,
									Line:   45,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   45,
									},
									File:   "holtWinters_test.flux",
									Source: "promql.holtWinters",
									Start: ast.Position{
										Column: 8,
										Line:   45,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   45,
										},
										File:   "holtWinters_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   45,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 26,
											Line:   45,
										},
										File:   "holtWinters_test.flux",
										Source: "holtWinters",
										Start: ast.Position{
											Column: 15,
											Line:   45,
										},
									},
								},
								Name: "holtWinters",
							},
							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: 26,
								Line:   43,
							},
							File:   "holtWinters_test.flux",
							Source: "table=<-",
							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:   "holtWinters_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 18,
									Line:   43,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 26,
								Line:   43,
							},
							File:   "holtWinters_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 24,
								Line:   43,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 126,
							Line:   47,
						},
						File:   "holtWinters_test.flux",
						Source: "_holtWinters = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters})",
						Start: ast.Position{
							Column: 6,
							Line:   47,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   47,
							},
							File:   "holtWinters_test.flux",
							Source: "_holtWinters",
							Start: ast.Position{
								Column: 6,
								Line:   47,
							},
						},
					},
					Name: "_holtWinters",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 126,
								Line:   47,
							},
							File:   "holtWinters_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters})",
							Start: ast.Position{
								Column: 21,
								Line:   47,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 126,
									Line:   47,
								},
								File:   "holtWinters_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters})",
								Start: ast.Position{
									Column: 27,
									Line:   47,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 125,
										Line:   47,
									},
									File:   "holtWinters_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters}",
									Start: ast.Position{
										Column: 28,
										Line:   47,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 68,
											Line:   47,
										},
										File:   "holtWinters_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 29,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 29,
												Line:   47,
											},
										},
									},
									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: 67,
													Line:   47,
												},
												File:   "holtWinters_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 56,
													Line:   47,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 67,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 56,
														Line:   47,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   47,
														},
														File:   "holtWinters_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 56,
															Line:   47,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 67,
															Line:   47,
														},
														File:   "holtWinters_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 61,
															Line:   47,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 36,
												Line:   47,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 55,
													Line:   47,
												},
												File:   "holtWinters_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 36,
													Line:   47,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 43,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 36,
														Line:   47,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 55,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 44,
														Line:   47,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 105,
											Line:   47,
										},
										File:   "holtWinters_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 70,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 74,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 70,
												Line:   47,
											},
										},
									},
									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: 104,
													Line:   47,
												},
												File:   "holtWinters_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 92,
													Line:   47,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 104,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 92,
														Line:   47,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 95,
															Line:   47,
														},
														File:   "holtWinters_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 92,
															Line:   47,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 104,
															Line:   47,
														},
														File:   "holtWinters_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 97,
															Line:   47,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 105,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 76,
												Line:   47,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 91,
													Line:   47,
												},
												File:   "holtWinters_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 76,
													Line:   47,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 76,
														Line:   47,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 91,
														Line:   47,
													},
													File:   "holtWinters_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 84,
														Line:   47,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 124,
											Line:   47,
										},
										File:   "holtWinters_test.flux",
										Source: "fn: t_holtWinters",
										Start: ast.Position{
											Column: 107,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 107,
												Line:   47,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 124,
												Line:   47,
											},
											File:   "holtWinters_test.flux",
											Source: "t_holtWinters",
											Start: ast.Position{
												Column: 111,
												Line:   47,
											},
										},
									},
									Name: "t_holtWinters",
								},
							}},
							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: 126,
						Line:   47,
					},
					File:   "holtWinters_test.flux",
					Source: "test _holtWinters = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_holtWinters})",
					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:   "holtWinters_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:   "holtWinters_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: 25,
						Line:   5,
					},
					File:   "holtWinters_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "holtWinters_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "holtWinters_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "holtWinters_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "holtWinters_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 124,
					Line:   39,
				},
				File:   "hour_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,21,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,22,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,23,prometheus\r\n\"\nt_promqlHour = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)}))\n\ntest _promqlHour = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour})",
				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:   "hour_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:   "hour_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:   "hour_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:   "hour_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:   "hour_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:   "hour_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,0,prometheus\r\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:   "hour_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:   "hour_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "hour_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,21,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,22,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,23,prometheus\r\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:   "hour_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:   32,
						},
						File:   "hour_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,21,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,22,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,23,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T01:00:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T02:00:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T21:00:00Z,metric_name,21,prometheus\r\n,,0,2018-11-07T22:00:00Z,metric_name,22,prometheus\r\n,,0,2018-12-08T23:00:00Z,metric_name,23,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 81,
						Line:   37,
					},
					File:   "hour_test.flux",
					Source: "t_promqlHour = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   33,
						},
						File:   "hour_test.flux",
						Source: "t_promqlHour",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlHour",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 81,
							Line:   37,
						},
						File:   "hour_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 16,
							Line:   33,
						},
					},
				},
				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: 35,
												Line:   33,
											},
											File:   "hour_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 30,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "hour_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 30,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "hour_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "hour_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "hour_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "hour_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "hour_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "hour_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "hour_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 30,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "hour_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "hour_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "hour_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "hour_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "hour_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "hour_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "hour_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "hour_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "hour_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 30,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "hour_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "hour_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "hour_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "hour_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 81,
								Line:   37,
							},
							File:   "hour_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 30,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 80,
										Line:   37,
									},
									File:   "hour_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 80,
											Line:   37,
										},
										File:   "hour_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "hour_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 80,
												Line:   37,
											},
											File:   "hour_test.flux",
											Source: "(r) => ({r with _value: promql.promqlHour(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 80,
													Line:   37,
												},
												File:   "hour_test.flux",
												Source: "({r with _value: promql.promqlHour(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 79,
														Line:   37,
													},
													File:   "hour_test.flux",
													Source: "{r with _value: promql.promqlHour(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 78,
															Line:   37,
														},
														File:   "hour_test.flux",
														Source: "_value: promql.promqlHour(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "hour_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 77,
																	Line:   37,
																},
																File:   "hour_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 58,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 77,
																		Line:   37,
																	},
																	File:   "hour_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 58,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 67,
																			Line:   37,
																		},
																		File:   "hour_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 58,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 77,
																			Line:   37,
																		},
																		File:   "hour_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 69,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 70,
																				Line:   37,
																			},
																			File:   "hour_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 69,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 77,
																				Line:   37,
																			},
																			File:   "hour_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 71,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 78,
																Line:   37,
															},
															File:   "hour_test.flux",
															Source: "promql.promqlHour(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 57,
																	Line:   37,
																},
																File:   "hour_test.flux",
																Source: "promql.promqlHour",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "hour_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 57,
																		Line:   37,
																	},
																	File:   "hour_test.flux",
																	Source: "promqlHour",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlHour",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "hour_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "hour_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "hour_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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: 81,
									Line:   37,
								},
								File:   "hour_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlHour(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "hour_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 25,
								Line:   33,
							},
							File:   "hour_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 17,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 22,
									Line:   33,
								},
								File:   "hour_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 17,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   33,
							},
							File:   "hour_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 23,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 124,
							Line:   39,
						},
						File:   "hour_test.flux",
						Source: "_promqlHour = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   39,
							},
							File:   "hour_test.flux",
							Source: "_promqlHour",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlHour",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 124,
								Line:   39,
							},
							File:   "hour_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour})",
							Start: ast.Position{
								Column: 20,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 124,
									Line:   39,
								},
								File:   "hour_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour})",
								Start: ast.Position{
									Column: 26,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 123,
										Line:   39,
									},
									File:   "hour_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour}",
									Start: ast.Position{
										Column: 27,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 67,
											Line:   39,
										},
										File:   "hour_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 28,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 28,
												Line:   39,
											},
										},
									},
									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: 66,
													Line:   39,
												},
												File:   "hour_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 55,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 66,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 55,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 58,
															Line:   39,
														},
														File:   "hour_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 55,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 66,
															Line:   39,
														},
														File:   "hour_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 60,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 35,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   39,
												},
												File:   "hour_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 35,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 42,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 35,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 54,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 43,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 104,
											Line:   39,
										},
										File:   "hour_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 69,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 69,
												Line:   39,
											},
										},
									},
									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: 103,
													Line:   39,
												},
												File:   "hour_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 91,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 103,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 91,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 94,
															Line:   39,
														},
														File:   "hour_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 91,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 103,
															Line:   39,
														},
														File:   "hour_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 96,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 104,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 75,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 90,
													Line:   39,
												},
												File:   "hour_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 75,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 75,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 90,
														Line:   39,
													},
													File:   "hour_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 83,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 122,
											Line:   39,
										},
										File:   "hour_test.flux",
										Source: "fn: t_promqlHour",
										Start: ast.Position{
											Column: 106,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 106,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 122,
												Line:   39,
											},
											File:   "hour_test.flux",
											Source: "t_promqlHour",
											Start: ast.Position{
												Column: 110,
												Line:   39,
											},
										},
									},
									Name: "t_promqlHour",
								},
							}},
							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: 124,
						Line:   39,
					},
					File:   "hour_test.flux",
					Source: "test _promqlHour = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlHour})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "hour_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:   "hour_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: 25,
						Line:   5,
					},
					File:   "hour_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "hour_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "hour_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "hour_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "hour_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 126,
					Line:   47,
				},
				File:   "instantRate_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,10,prometheus\r\n\"\nt_instantRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.instantRate(isRate: true)\n\ntest _instantRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate})",
				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:   "instantRate_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:   "instantRate_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:   "instantRate_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:   "instantRate_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:   "instantRate_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:   33,
					},
					File:   "instantRate_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\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:   "instantRate_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:   33,
						},
						File:   "instantRate_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   42,
					},
					File:   "instantRate_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,10,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   34,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   34,
						},
						File:   "instantRate_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   34,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   42,
						},
						File:   "instantRate_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,10,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   34,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,10,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 40,
						Line:   45,
					},
					File:   "instantRate_test.flux",
					Source: "t_instantRate = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.instantRate(isRate: true)",
					Start: ast.Position{
						Column: 1,
						Line:   43,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 14,
							Line:   43,
						},
						File:   "instantRate_test.flux",
						Source: "t_instantRate",
						Start: ast.Position{
							Column: 1,
							Line:   43,
						},
					},
				},
				Name: "t_instantRate",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 40,
							Line:   45,
						},
						File:   "instantRate_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.instantRate(isRate: true)",
						Start: ast.Position{
							Column: 17,
							Line:   43,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 36,
										Line:   43,
									},
									File:   "instantRate_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 31,
										Line:   43,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   44,
								},
								File:   "instantRate_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 31,
									Line:   43,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   44,
										},
										File:   "instantRate_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   44,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   44,
											},
											File:   "instantRate_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   44,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   44,
												},
												File:   "instantRate_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   44,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   44,
												},
												File:   "instantRate_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   44,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   44,
											},
											File:   "instantRate_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   44,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   44,
												},
												File:   "instantRate_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   44,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   44,
												},
												File:   "instantRate_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   44,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   44,
									},
									File:   "instantRate_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   44,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   44,
										},
										File:   "instantRate_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   44,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 40,
								Line:   45,
							},
							File:   "instantRate_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.instantRate(isRate: true)",
							Start: ast.Position{
								Column: 31,
								Line:   43,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 39,
										Line:   45,
									},
									File:   "instantRate_test.flux",
									Source: "isRate: true",
									Start: ast.Position{
										Column: 27,
										Line:   45,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 39,
											Line:   45,
										},
										File:   "instantRate_test.flux",
										Source: "isRate: true",
										Start: ast.Position{
											Column: 27,
											Line:   45,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   45,
											},
											File:   "instantRate_test.flux",
											Source: "isRate",
											Start: ast.Position{
												Column: 27,
												Line:   45,
											},
										},
									},
									Name: "isRate",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   45,
											},
											File:   "instantRate_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 35,
												Line:   45,
											},
										},
									},
									Name: "true",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 40,
									Line:   45,
								},
								File:   "instantRate_test.flux",
								Source: "promql.instantRate(isRate: true)",
								Start: ast.Position{
									Column: 8,
									Line:   45,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   45,
									},
									File:   "instantRate_test.flux",
									Source: "promql.instantRate",
									Start: ast.Position{
										Column: 8,
										Line:   45,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   45,
										},
										File:   "instantRate_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   45,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 26,
											Line:   45,
										},
										File:   "instantRate_test.flux",
										Source: "instantRate",
										Start: ast.Position{
											Column: 15,
											Line:   45,
										},
									},
								},
								Name: "instantRate",
							},
							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: 26,
								Line:   43,
							},
							File:   "instantRate_test.flux",
							Source: "table=<-",
							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:   "instantRate_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 18,
									Line:   43,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 26,
								Line:   43,
							},
							File:   "instantRate_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 24,
								Line:   43,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 126,
							Line:   47,
						},
						File:   "instantRate_test.flux",
						Source: "_instantRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate})",
						Start: ast.Position{
							Column: 6,
							Line:   47,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   47,
							},
							File:   "instantRate_test.flux",
							Source: "_instantRate",
							Start: ast.Position{
								Column: 6,
								Line:   47,
							},
						},
					},
					Name: "_instantRate",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 126,
								Line:   47,
							},
							File:   "instantRate_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate})",
							Start: ast.Position{
								Column: 21,
								Line:   47,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 126,
									Line:   47,
								},
								File:   "instantRate_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate})",
								Start: ast.Position{
									Column: 27,
									Line:   47,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 125,
										Line:   47,
									},
									File:   "instantRate_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate}",
									Start: ast.Position{
										Column: 28,
										Line:   47,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 68,
											Line:   47,
										},
										File:   "instantRate_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 29,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 29,
												Line:   47,
											},
										},
									},
									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: 67,
													Line:   47,
												},
												File:   "instantRate_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 56,
													Line:   47,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 67,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 56,
														Line:   47,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   47,
														},
														File:   "instantRate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 56,
															Line:   47,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 67,
															Line:   47,
														},
														File:   "instantRate_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 61,
															Line:   47,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 36,
												Line:   47,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 55,
													Line:   47,
												},
												File:   "instantRate_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 36,
													Line:   47,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 43,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 36,
														Line:   47,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 55,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 44,
														Line:   47,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 105,
											Line:   47,
										},
										File:   "instantRate_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 70,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 74,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 70,
												Line:   47,
											},
										},
									},
									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: 104,
													Line:   47,
												},
												File:   "instantRate_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 92,
													Line:   47,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 104,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 92,
														Line:   47,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 95,
															Line:   47,
														},
														File:   "instantRate_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 92,
															Line:   47,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 104,
															Line:   47,
														},
														File:   "instantRate_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 97,
															Line:   47,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 105,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 76,
												Line:   47,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 91,
													Line:   47,
												},
												File:   "instantRate_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 76,
													Line:   47,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 76,
														Line:   47,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 91,
														Line:   47,
													},
													File:   "instantRate_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 84,
														Line:   47,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 124,
											Line:   47,
										},
										File:   "instantRate_test.flux",
										Source: "fn: t_instantRate",
										Start: ast.Position{
											Column: 107,
											Line:   47,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 107,
												Line:   47,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 124,
												Line:   47,
											},
											File:   "instantRate_test.flux",
											Source: "t_instantRate",
											Start: ast.Position{
												Column: 111,
												Line:   47,
											},
										},
									},
									Name: "t_instantRate",
								},
							}},
							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: 126,
						Line:   47,
					},
					File:   "instantRate_test.flux",
					Source: "test _instantRate = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_instantRate})",
					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:   "instantRate_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:   "instantRate_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: 25,
						Line:   5,
					},
					File:   "instantRate_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "instantRate_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "instantRate_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "instantRate_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "instantRate_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_empty_dst_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,double,string\r\n#group,false,false,true,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_field,src,_value,_measurement\r\n,,0,metric_name,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_empty_dst_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:   "labelReplace_empty_dst_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:   "labelReplace_empty_dst_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:   "labelReplace_empty_dst_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:   "labelReplace_empty_dst_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:   18,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_empty_dst_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:   18,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,double,string\r\n#group,false,false,true,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_field,src,_value,_measurement\r\n,,0,metric_name,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "\"\n#datatype,string,long,string,string,double,string\r\n#group,false,false,true,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_field,src,_value,_measurement\r\n,,0,metric_name,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,double,string\r\n#group,false,false,true,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_field,src,_value,_measurement\r\n,,0,metric_name,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_empty_dst_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_empty_dst_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_empty_dst_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_empty_dst_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 24,
										Line:   36,
									},
									File:   "labelReplace_empty_dst_test.flux",
									Source: "source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   33,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "source: \"src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   33,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "\"src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 20,
											Line:   35,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "regex: \".*\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   35,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "\".*\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: ".*",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "replacement: \"\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "\"\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_empty_dst_test.flux",
								Source: "promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \".*\",\n        replacement: \"\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_empty_dst_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_empty_dst_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_empty_dst_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_empty_dst_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_empty_dst_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_empty_dst_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_empty_dst_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_empty_dst_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_empty_dst_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_empty_dst_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_empty_dst_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_empty_dst_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_empty_dst_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_empty_dst_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_empty_dst_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_empty_dst_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_empty_dst_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:   "labelReplace_empty_dst_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: 25,
						Line:   5,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_empty_dst_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_empty_dst_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_empty_dst_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_full_string_match_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,destination-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,destination-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_full_string_match_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:   "labelReplace_full_string_match_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:   "labelReplace_full_string_match_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:   "labelReplace_full_string_match_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:   "labelReplace_full_string_match_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:   18,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_full_string_match_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:   18,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,destination-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,destination-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,destination-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,destination-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,destination-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,destination-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,destination-value-20,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_full_string_match_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_full_string_match_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_full_string_match_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_full_string_match_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 44,
										Line:   36,
									},
									File:   "labelReplace_full_string_match_test.flux",
									Source: "source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   33,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "source: \"src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   33,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "\"src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 35,
											Line:   35,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "regex: \"source-value-(.*)\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   35,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "\"source-value-(.*)\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "source-value-(.*)",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 44,
											Line:   36,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "replacement: \"destination-value-$1\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 44,
												Line:   36,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "\"destination-value-$1\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "destination-value-$1",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_full_string_match_test.flux",
								Source: "promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_full_string_match_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_full_string_match_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_full_string_match_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_full_string_match_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_full_string_match_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_full_string_match_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_full_string_match_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_full_string_match_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_full_string_match_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_full_string_match_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_full_string_match_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_full_string_match_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_full_string_match_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_full_string_match_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_full_string_match_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_full_string_match_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_full_string_match_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:   "labelReplace_full_string_match_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: 25,
						Line:   5,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_full_string_match_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_full_string_match_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_full_string_match_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_multiple_groups_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_multiple_groups_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:   "labelReplace_multiple_groups_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:   "labelReplace_multiple_groups_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:   "labelReplace_multiple_groups_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:   "labelReplace_multiple_groups_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:   18,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_multiple_groups_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:   18,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,source-value-10,1,prometheus\r\n,,0,metric_name,source-value-10,source-value-10,2,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,3,prometheus\r\n,,1,metric_name,source-value-20,source-value-20,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_multiple_groups_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_multiple_groups_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_multiple_groups_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_multiple_groups_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 35,
										Line:   36,
									},
									File:   "labelReplace_multiple_groups_test.flux",
									Source: "source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   33,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "source: \"src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   33,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "\"src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 33,
											Line:   35,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "regex: \"(.*)-value-(.*)\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   35,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "\"(.*)-value-(.*)\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "(.*)-value-(.*)",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 35,
											Line:   36,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "replacement: \"$1-value-$2\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   36,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "\"$1-value-$2\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "$1-value-$2",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_multiple_groups_test.flux",
								Source: "promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"(.*)-value-(.*)\",\n        replacement: \"$1-value-$2\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_multiple_groups_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_multiple_groups_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_multiple_groups_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_multiple_groups_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_multiple_groups_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_multiple_groups_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_multiple_groups_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_multiple_groups_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_multiple_groups_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_multiple_groups_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_multiple_groups_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_multiple_groups_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_multiple_groups_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_multiple_groups_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_multiple_groups_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_multiple_groups_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_multiple_groups_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:   "labelReplace_multiple_groups_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: 25,
						Line:   5,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_multiple_groups_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_multiple_groups_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_multiple_groups_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_src_empty_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,value-,1,prometheus\r\n,,0,metric_name,source-value-10,value-,2,prometheus\r\n,,1,metric_name,source-value-20,value-,3,prometheus\r\n,,1,metric_name,source-value-20,value-,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_src_empty_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:   "labelReplace_src_empty_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:   "labelReplace_src_empty_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:   "labelReplace_src_empty_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:   "labelReplace_src_empty_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:   18,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_src_empty_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:   18,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,value-,1,prometheus\r\n,,0,metric_name,source-value-10,value-,2,prometheus\r\n,,1,metric_name,source-value-20,value-,3,prometheus\r\n,,1,metric_name,source-value-20,value-,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,value-,1,prometheus\r\n,,0,metric_name,source-value-10,value-,2,prometheus\r\n,,1,metric_name,source-value-20,value-,3,prometheus\r\n,,1,metric_name,source-value-20,value-,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,value-,1,prometheus\r\n,,0,metric_name,source-value-10,value-,2,prometheus\r\n,,1,metric_name,source-value-20,value-,3,prometheus\r\n,,1,metric_name,source-value-20,value-,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_src_empty_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_src_empty_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_src_empty_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_src_empty_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   36,
									},
									File:   "labelReplace_src_empty_test.flux",
									Source: "source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 34,
											Line:   33,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "source: \"nonexistent-src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   33,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "\"nonexistent-src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "nonexistent-src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   35,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "regex: \"(.*)\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   35,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "\"(.*)\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "(.*)",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 32,
											Line:   36,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "replacement: \"value-$1\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 32,
												Line:   36,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "\"value-$1\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "value-$1",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_src_empty_test.flux",
								Source: "promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"(.*)\",\n        replacement: \"value-$1\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_src_empty_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_src_empty_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_src_empty_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_src_empty_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_src_empty_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_src_empty_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_src_empty_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_src_empty_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_src_empty_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_src_empty_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_src_empty_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_src_empty_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_src_empty_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_src_empty_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_src_empty_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_src_empty_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_src_empty_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:   "labelReplace_src_empty_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: 25,
						Line:   5,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_src_empty_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_src_empty_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_src_empty_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_src_nonexistent_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_src_nonexistent_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:   "labelReplace_src_nonexistent_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:   "labelReplace_src_nonexistent_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:   "labelReplace_src_nonexistent_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:   "labelReplace_src_nonexistent_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:   18,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_src_nonexistent_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:   18,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_src_nonexistent_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_src_nonexistent_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_src_nonexistent_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_src_nonexistent_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   36,
									},
									File:   "labelReplace_src_nonexistent_test.flux",
									Source: "source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 34,
											Line:   33,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "source: \"nonexistent-src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   33,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "\"nonexistent-src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "nonexistent-src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 35,
											Line:   35,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "regex: \"source-value-(.*)\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   35,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "\"source-value-(.*)\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "source-value-(.*)",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 32,
											Line:   36,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "replacement: \"value-$1\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 32,
												Line:   36,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "\"value-$1\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "value-$1",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_src_nonexistent_test.flux",
								Source: "promql.labelReplace(\n        source: \"nonexistent-src\",\n        destination: \"dst\",\n        regex: \"source-value-(.*)\",\n        replacement: \"value-$1\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_src_nonexistent_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_src_nonexistent_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_src_nonexistent_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_src_nonexistent_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_src_nonexistent_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_src_nonexistent_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_src_nonexistent_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_src_nonexistent_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_src_nonexistent_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_src_nonexistent_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_src_nonexistent_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_src_nonexistent_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_src_nonexistent_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_src_nonexistent_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_src_nonexistent_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_src_nonexistent_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_src_nonexistent_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:   "labelReplace_src_nonexistent_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: 25,
						Line:   5,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_src_nonexistent_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_src_nonexistent_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_src_nonexistent_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_src_not_matched_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_src_not_matched_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:   "labelReplace_src_not_matched_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:   "labelReplace_src_not_matched_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:   "labelReplace_src_not_matched_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:   "labelReplace_src_not_matched_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:   18,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_src_not_matched_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:   18,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_src_not_matched_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_src_not_matched_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_src_not_matched_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_src_not_matched_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 32,
										Line:   36,
									},
									File:   "labelReplace_src_not_matched_test.flux",
									Source: "source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   33,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "source: \"src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   33,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "\"src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 36,
											Line:   35,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "regex: \"non-matching-regex\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 36,
												Line:   35,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "\"non-matching-regex\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "non-matching-regex",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 32,
											Line:   36,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "replacement: \"value-$1\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 32,
												Line:   36,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "\"value-$1\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "value-$1",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_src_not_matched_test.flux",
								Source: "promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"non-matching-regex\",\n        replacement: \"value-$1\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_src_not_matched_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_src_not_matched_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_src_not_matched_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_src_not_matched_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_src_not_matched_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_src_not_matched_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_src_not_matched_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_src_not_matched_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_src_not_matched_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_src_not_matched_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_src_not_matched_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_src_not_matched_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_src_not_matched_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_src_not_matched_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_src_not_matched_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_src_not_matched_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_src_not_matched_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:   "labelReplace_src_not_matched_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: 25,
						Line:   5,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_src_not_matched_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_src_not_matched_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_src_not_matched_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "labelReplace_sub_string_match_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\noutData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"\nt_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )\n\ntest _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
				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:   "labelReplace_sub_string_match_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:   "labelReplace_sub_string_match_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:   "labelReplace_sub_string_match_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:   "labelReplace_sub_string_match_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:   "labelReplace_sub_string_match_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:   18,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\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:   "labelReplace_sub_string_match_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:   18,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,string,string,double,string\r\n#group,false,false,false,true,true,true,false,true\r\n#default,inData,,,,,,,\r\n,result,table,_time,_field,src,dst,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   28,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "outData = \"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   19,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   19,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   19,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   28,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "\"\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   19,
						},
					},
				},
				Value: "\n#datatype,string,long,string,string,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_field,src,dst,_value,_measurement\r\n,,0,metric_name,source-value-10,original-destination-value,1,prometheus\r\n,,0,metric_name,source-value-10,original-destination-value,2,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,3,prometheus\r\n,,1,metric_name,source-value-20,original-destination-value,4,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   37,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "t_labelReplace = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   29,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   29,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "t_labelReplace",
						Start: ast.Position{
							Column: 1,
							Line:   29,
						},
					},
				},
				Name: "t_labelReplace",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   37,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
						Start: ast.Position{
							Column: 18,
							Line:   29,
						},
					},
				},
				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: 37,
											Line:   29,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 32,
											Line:   29,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   30,
									},
									File:   "labelReplace_sub_string_match_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 32,
										Line:   29,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   30,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   30,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   30,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   30,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   30,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   30,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   30,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   30,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   30,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   30,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   30,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   30,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   31,
								},
								File:   "labelReplace_sub_string_match_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 32,
									Line:   29,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   31,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   31,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   31,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   31,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   31,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   31,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   31,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   31,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   31,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   31,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   31,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   31,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   31,
									},
									File:   "labelReplace_sub_string_match_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   31,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   31,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   31,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   37,
							},
							File:   "labelReplace_sub_string_match_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
							Start: ast.Position{
								Column: 32,
								Line:   29,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 44,
										Line:   36,
									},
									File:   "labelReplace_sub_string_match_test.flux",
									Source: "source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\"",
									Start: ast.Position{
										Column: 9,
										Line:   33,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 22,
											Line:   33,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "source: \"src\"",
										Start: ast.Position{
											Column: 9,
											Line:   33,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 15,
												Line:   33,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "source",
											Start: ast.Position{
												Column: 9,
												Line:   33,
											},
										},
									},
									Name: "source",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 22,
												Line:   33,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "\"src\"",
											Start: ast.Position{
												Column: 17,
												Line:   33,
											},
										},
									},
									Value: "src",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   34,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "destination: \"dst\"",
										Start: ast.Position{
											Column: 9,
											Line:   34,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   34,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "destination",
											Start: ast.Position{
												Column: 9,
												Line:   34,
											},
										},
									},
									Name: "destination",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 27,
												Line:   34,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "\"dst\"",
											Start: ast.Position{
												Column: 22,
												Line:   34,
											},
										},
									},
									Value: "dst",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 28,
											Line:   35,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "regex: \"value-(.*)\"",
										Start: ast.Position{
											Column: 9,
											Line:   35,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   35,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "regex",
											Start: ast.Position{
												Column: 9,
												Line:   35,
											},
										},
									},
									Name: "regex",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 28,
												Line:   35,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "\"value-(.*)\"",
											Start: ast.Position{
												Column: 16,
												Line:   35,
											},
										},
									},
									Value: "value-(.*)",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 44,
											Line:   36,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "replacement: \"destination-value-$1\"",
										Start: ast.Position{
											Column: 9,
											Line:   36,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 20,
												Line:   36,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "replacement",
											Start: ast.Position{
												Column: 9,
												Line:   36,
											},
										},
									},
									Name: "replacement",
								},
								Separator: nil,
								Value: &ast.StringLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 44,
												Line:   36,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "\"destination-value-$1\"",
											Start: ast.Position{
												Column: 22,
												Line:   36,
											},
										},
									},
									Value: "destination-value-$1",
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   37,
								},
								File:   "labelReplace_sub_string_match_test.flux",
								Source: "promql.labelReplace(\n        source: \"src\",\n        destination: \"dst\",\n        regex: \"value-(.*)\",\n        replacement: \"destination-value-$1\",\n    )",
								Start: ast.Position{
									Column: 8,
									Line:   32,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 27,
										Line:   32,
									},
									File:   "labelReplace_sub_string_match_test.flux",
									Source: "promql.labelReplace",
									Start: ast.Position{
										Column: 8,
										Line:   32,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   32,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   32,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 27,
											Line:   32,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "labelReplace",
										Start: ast.Position{
											Column: 15,
											Line:   32,
										},
									},
								},
								Name: "labelReplace",
							},
							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: 27,
								Line:   29,
							},
							File:   "labelReplace_sub_string_match_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   29,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   29,
								},
								File:   "labelReplace_sub_string_match_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   29,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   29,
							},
							File:   "labelReplace_sub_string_match_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   29,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "_labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "labelReplace_sub_string_match_test.flux",
							Source: "_labelReplace",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_labelReplace",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "labelReplace_sub_string_match_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "labelReplace_sub_string_match_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "labelReplace_sub_string_match_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "labelReplace_sub_string_match_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "labelReplace_sub_string_match_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "labelReplace_sub_string_match_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "labelReplace_sub_string_match_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "labelReplace_sub_string_match_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "labelReplace_sub_string_match_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "labelReplace_sub_string_match_test.flux",
										Source: "fn: t_labelReplace",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "labelReplace_sub_string_match_test.flux",
											Source: "t_labelReplace",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_labelReplace",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "test _labelReplace = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_labelReplace})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "labelReplace_sub_string_match_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:   "labelReplace_sub_string_match_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: 25,
						Line:   5,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "labelReplace_sub_string_match_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "labelReplace_sub_string_match_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "labelReplace_sub_string_match_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   58,
				},
				File:   "linearRegression_nopredict_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\nimport c \"csv\"\n\noption now = () => 2030-01-01T00:00:00Z\n\n// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\noption testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )\n\ninData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,2.545714285714286,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,4.857142857142857,prometheus\r\n\"\nt_linearRegression = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: false, fromNow: 0.0)\n\ntest _linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
				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:   "linearRegression_nopredict_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:   "linearRegression_nopredict_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:   "linearRegression_nopredict_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:   "linearRegression_nopredict_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:   "linearRegression_nopredict_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.OptionStatement{
			Assignment: &ast.MemberAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   18,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
						Start: ast.Position{
							Column: 8,
							Line:   11,
						},
					},
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   18,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "(csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
							Start: ast.Position{
								Column: 30,
								Line:   11,
							},
						},
					},
					Body: &ast.PipeExpression{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   11,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "csv: csv",
										Start: ast.Position{
											Column: 46,
											Line:   11,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   11,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "csv: csv",
											Start: ast.Position{
												Column: 46,
												Line:   11,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   11,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 46,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   11,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 51,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 55,
										Line:   11,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "c.from(csv: csv)",
									Start: ast.Position{
										Column: 39,
										Line:   11,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   11,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "c.from",
										Start: ast.Position{
											Column: 39,
											Line:   11,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 40,
												Line:   11,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "c",
											Start: ast.Position{
												Column: 39,
												Line:   11,
											},
										},
									},
									Name: "c",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   11,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "from",
											Start: ast.Position{
												Column: 41,
												Line:   11,
											},
										},
									},
									Name: "from",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   18,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
								Start: ast.Position{
									Column: 39,
									Line:   11,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   17,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
										Start: ast.Position{
											Column: 9,
											Line:   13,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 11,
												Line:   17,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
											Start: ast.Position{
												Column: 9,
												Line:   13,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   13,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 9,
													Line:   13,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   17,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "(r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
												Start: ast.Position{
													Column: 13,
													Line:   13,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 11,
														Line:   17,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
													Start: ast.Position{
														Column: 20,
														Line:   13,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 10,
															Line:   17,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "{r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }",
														Start: ast.Position{
															Column: 21,
															Line:   13,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 115,
																Line:   14,
															},
															File:   "linearRegression_nopredict_test.flux",
															Source: "_field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
															Start: ast.Position{
																Column: 13,
																Line:   14,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 19,
																	Line:   14,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "_field",
																Start: ast.Position{
																	Column: 13,
																	Line:   14,
																},
															},
														},
														Name: "_field",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 114,
																			Line:   14,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "msg: \"test input table does not have _field column\"",
																		Start: ast.Position{
																			Column: 63,
																			Line:   14,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 114,
																				Line:   14,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "msg: \"test input table does not have _field column\"",
																			Start: ast.Position{
																				Column: 63,
																				Line:   14,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 66,
																					Line:   14,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 63,
																					Line:   14,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 114,
																					Line:   14,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "\"test input table does not have _field column\"",
																				Start: ast.Position{
																					Column: 68,
																					Line:   14,
																				},
																			},
																		},
																		Value: "test input table does not have _field column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 115,
																		Line:   14,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "die(msg: \"test input table does not have _field column\")",
																	Start: ast.Position{
																		Column: 59,
																		Line:   14,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 62,
																			Line:   14,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 59,
																			Line:   14,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 115,
																	Line:   14,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
																Start: ast.Position{
																	Column: 21,
																	Line:   14,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 53,
																		Line:   14,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 45,
																		Line:   14,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 46,
																			Line:   14,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 45,
																			Line:   14,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 53,
																			Line:   14,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 47,
																			Line:   14,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 39,
																			Line:   14,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r._field",
																		Start: ast.Position{
																			Column: 31,
																			Line:   14,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 32,
																				Line:   14,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 31,
																				Line:   14,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 39,
																				Line:   14,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "_field",
																			Start: ast.Position{
																				Column: 33,
																				Line:   14,
																			},
																		},
																	},
																	Name: "_field",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 39,
																		Line:   14,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "exists r._field",
																	Start: ast.Position{
																		Column: 24,
																		Line:   14,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 139,
																Line:   15,
															},
															File:   "linearRegression_nopredict_test.flux",
															Source: "_measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
															Start: ast.Position{
																Column: 13,
																Line:   15,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   15,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "_measurement",
																Start: ast.Position{
																	Column: 13,
																	Line:   15,
																},
															},
														},
														Name: "_measurement",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 138,
																			Line:   15,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "msg: \"test input table does not have _measurement column\"",
																		Start: ast.Position{
																			Column: 81,
																			Line:   15,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 138,
																				Line:   15,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "msg: \"test input table does not have _measurement column\"",
																			Start: ast.Position{
																				Column: 81,
																				Line:   15,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 84,
																					Line:   15,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 81,
																					Line:   15,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 138,
																					Line:   15,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "\"test input table does not have _measurement column\"",
																				Start: ast.Position{
																					Column: 86,
																					Line:   15,
																				},
																			},
																		},
																		Value: "test input table does not have _measurement column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 139,
																		Line:   15,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "die(msg: \"test input table does not have _measurement column\")",
																	Start: ast.Position{
																		Column: 77,
																		Line:   15,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 80,
																			Line:   15,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 77,
																			Line:   15,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 139,
																	Line:   15,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
																Start: ast.Position{
																	Column: 27,
																	Line:   15,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 71,
																		Line:   15,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "r._measurement",
																	Start: ast.Position{
																		Column: 57,
																		Line:   15,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 58,
																			Line:   15,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 57,
																			Line:   15,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 71,
																			Line:   15,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "_measurement",
																		Start: ast.Position{
																			Column: 59,
																			Line:   15,
																		},
																	},
																},
																Name: "_measurement",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 51,
																			Line:   15,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 37,
																			Line:   15,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 38,
																				Line:   15,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 37,
																				Line:   15,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 51,
																				Line:   15,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 39,
																				Line:   15,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 51,
																		Line:   15,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "exists r._measurement",
																	Start: ast.Position{
																		Column: 30,
																		Line:   15,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 111,
																Line:   16,
															},
															File:   "linearRegression_nopredict_test.flux",
															Source: "_time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
															Start: ast.Position{
																Column: 13,
																Line:   16,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 18,
																	Line:   16,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "_time",
																Start: ast.Position{
																	Column: 13,
																	Line:   16,
																},
															},
														},
														Name: "_time",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 110,
																			Line:   16,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "msg: \"test input table does not have _time column\"",
																		Start: ast.Position{
																			Column: 60,
																			Line:   16,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 110,
																				Line:   16,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "msg: \"test input table does not have _time column\"",
																			Start: ast.Position{
																				Column: 60,
																				Line:   16,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 63,
																					Line:   16,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 60,
																					Line:   16,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 110,
																					Line:   16,
																				},
																				File:   "linearRegression_nopredict_test.flux",
																				Source: "\"test input table does not have _time column\"",
																				Start: ast.Position{
																					Column: 65,
																					Line:   16,
																				},
																			},
																		},
																		Value: "test input table does not have _time column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 111,
																		Line:   16,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "die(msg: \"test input table does not have _time column\")",
																	Start: ast.Position{
																		Column: 56,
																		Line:   16,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 59,
																			Line:   16,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 56,
																			Line:   16,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 111,
																	Line:   16,
																},
																File:   "linearRegression_nopredict_test.flux",
																Source: "if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
																Start: ast.Position{
																	Column: 20,
																	Line:   16,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 50,
																		Line:   16,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "r._time",
																	Start: ast.Position{
																		Column: 43,
																		Line:   16,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 44,
																			Line:   16,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 43,
																			Line:   16,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 50,
																			Line:   16,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "_time",
																		Start: ast.Position{
																			Column: 45,
																			Line:   16,
																		},
																	},
																},
																Name: "_time",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 37,
																			Line:   16,
																		},
																		File:   "linearRegression_nopredict_test.flux",
																		Source: "r._time",
																		Start: ast.Position{
																			Column: 30,
																			Line:   16,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 31,
																				Line:   16,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 30,
																				Line:   16,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 37,
																				Line:   16,
																			},
																			File:   "linearRegression_nopredict_test.flux",
																			Source: "_time",
																			Start: ast.Position{
																				Column: 32,
																				Line:   16,
																			},
																		},
																	},
																	Name: "_time",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 37,
																		Line:   16,
																	},
																	File:   "linearRegression_nopredict_test.flux",
																	Source: "exists r._time",
																	Start: ast.Position{
																		Column: 23,
																		Line:   16,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 23,
																Line:   13,
															},
															File:   "linearRegression_nopredict_test.flux",
															Source: "r",
															Start: ast.Position{
																Column: 22,
																Line:   13,
															},
														},
													},
													Name: "r",
												},
											},
											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: 15,
														Line:   13,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 14,
														Line:   13,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 15,
															Line:   13,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 14,
															Line:   13,
														},
													},
												},
												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: 6,
										Line:   18,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
									Start: ast.Position{
										Column: 8,
										Line:   12,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   12,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "map",
										Start: ast.Position{
											Column: 8,
											Line:   12,
										},
									},
								},
								Name: "map",
							},
							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: 34,
									Line:   11,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "csv",
								Start: ast.Position{
									Column: 31,
									Line:   11,
								},
							},
						},
						Comma: nil,
						Key: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   11,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "csv",
									Start: ast.Position{
										Column: 31,
										Line:   11,
									},
								},
							},
							Name: "csv",
						},
						Separator: nil,
						Value:     nil,
					}},
					Rparan: nil,
				},
				Member: &ast.MemberExpression{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   11,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "testing.loadStorage",
							Start: ast.Position{
								Column: 8,
								Line:   11,
							},
						},
					},
					Lbrack: nil,
					Object: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   11,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "testing",
								Start: ast.Position{
									Column: 8,
									Line:   11,
								},
							},
						},
						Name: "testing",
					},
					Property: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   11,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "loadStorage",
								Start: ast.Position{
									Column: 16,
									Line:   11,
								},
							},
						},
						Name: "loadStorage",
					},
					Rbrack: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: []ast.Comment{ast.Comment{Text: "// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\n"}},
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   18,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "option testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   11,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   44,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "inData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   20,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   20,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   20,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   44,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   20,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   53,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,2.545714285714286,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,4.857142857142857,prometheus\r\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:   "linearRegression_nopredict_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:   53,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,2.545714285714286,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,4.857142857142857,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   45,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,2.545714285714286,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,4.857142857142857,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 61,
						Line:   56,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "t_linearRegression = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: false, fromNow: 0.0)",
					Start: ast.Position{
						Column: 1,
						Line:   54,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   54,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "t_linearRegression",
						Start: ast.Position{
							Column: 1,
							Line:   54,
						},
					},
				},
				Name: "t_linearRegression",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 61,
							Line:   56,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: false, fromNow: 0.0)",
						Start: ast.Position{
							Column: 22,
							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: 41,
										Line:   54,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 36,
										Line:   54,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   55,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 36,
									Line:   54,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   55,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   55,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   55,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   55,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   55,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   55,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   55,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   55,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   55,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   55,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   55,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   55,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   55,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   55,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   55,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   55,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   55,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   55,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 61,
								Line:   56,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: false, fromNow: 0.0)",
							Start: ast.Position{
								Column: 36,
								Line:   54,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 60,
										Line:   56,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "predict: false, fromNow: 0.0",
									Start: ast.Position{
										Column: 32,
										Line:   56,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 46,
											Line:   56,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "predict: false",
										Start: ast.Position{
											Column: 32,
											Line:   56,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   56,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "predict",
											Start: ast.Position{
												Column: 32,
												Line:   56,
											},
										},
									},
									Name: "predict",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 46,
												Line:   56,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "false",
											Start: ast.Position{
												Column: 41,
												Line:   56,
											},
										},
									},
									Name: "false",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 60,
											Line:   56,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "fromNow: 0.0",
										Start: ast.Position{
											Column: 48,
											Line:   56,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 55,
												Line:   56,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "fromNow",
											Start: ast.Position{
												Column: 48,
												Line:   56,
											},
										},
									},
									Name: "fromNow",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 60,
												Line:   56,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "0.0",
											Start: ast.Position{
												Column: 57,
												Line:   56,
											},
										},
									},
									Value: 0.0,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 61,
									Line:   56,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "promql.linearRegression(predict: false, fromNow: 0.0)",
								Start: ast.Position{
									Column: 8,
									Line:   56,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   56,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "promql.linearRegression",
									Start: ast.Position{
										Column: 8,
										Line:   56,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   56,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   56,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   56,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "linearRegression",
										Start: ast.Position{
											Column: 15,
											Line:   56,
										},
									},
								},
								Name: "linearRegression",
							},
							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: 31,
								Line:   54,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								Line:   54,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   54,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   54,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   54,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   54,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   58,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "_linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
						Start: ast.Position{
							Column: 6,
							Line:   58,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   58,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "_linearRegression",
							Start: ast.Position{
								Column: 6,
								Line:   58,
							},
						},
					},
					Name: "_linearRegression",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   58,
							},
							File:   "linearRegression_nopredict_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
							Start: ast.Position{
								Column: 26,
								Line:   58,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   58,
								},
								File:   "linearRegression_nopredict_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
								Start: ast.Position{
									Column: 32,
									Line:   58,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   58,
									},
									File:   "linearRegression_nopredict_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression}",
									Start: ast.Position{
										Column: 33,
										Line:   58,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   58,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												Line:   58,
											},
										},
									},
									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: 72,
													Line:   58,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   58,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   58,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   58,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   58,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   58,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   58,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   58,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   58,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   58,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   58,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														Line:   58,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   58,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												Line:   58,
											},
										},
									},
									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: 109,
													Line:   58,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   58,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   58,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   58,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   58,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   58,
														},
														File:   "linearRegression_nopredict_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   58,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   58,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   58,
												},
												File:   "linearRegression_nopredict_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   58,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   58,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   58,
													},
													File:   "linearRegression_nopredict_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														Line:   58,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 134,
											Line:   58,
										},
										File:   "linearRegression_nopredict_test.flux",
										Source: "fn: t_linearRegression",
										Start: ast.Position{
											Column: 112,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   58,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   58,
											},
											File:   "linearRegression_nopredict_test.flux",
											Source: "t_linearRegression",
											Start: ast.Position{
												Column: 116,
												Line:   58,
											},
										},
									},
									Name: "t_linearRegression",
								},
							}},
							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: 136,
						Line:   58,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "test _linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
					Start: ast.Position{
						Column: 1,
						Line:   58,
					},
				},
			},
		}},
		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:   "linearRegression_nopredict_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:   "linearRegression_nopredict_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: 25,
						Line:   5,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   6,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "c",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Name: "c",
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 15,
						Line:   6,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "import c \"csv\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   6,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "\"csv\"",
						Start: ast.Position{
							Column: 10,
							Line:   6,
						},
					},
				},
				Value: "csv",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "linearRegression_nopredict_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "linearRegression_nopredict_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "linearRegression_nopredict_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 136,
					Line:   58,
				},
				File:   "linearRegression_predict_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\nimport c \"csv\"\n\noption now = () => 2030-01-01T00:00:00Z\n\n// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\noption testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )\n\ninData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"\noutData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,1888.5057142857145,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,3756.8571428571427,prometheus\r\n\"\nt_linearRegression = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: true, fromNow: 600.0)\n\ntest _linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
				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:   "linearRegression_predict_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:   "linearRegression_predict_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:   "linearRegression_predict_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:   "linearRegression_predict_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:   "linearRegression_predict_test.flux",
					Source: "option now = () => 2030-01-01T00:00:00Z",
					Start: ast.Position{
						Column: 1,
						Line:   8,
					},
				},
			},
		}, &ast.OptionStatement{
			Assignment: &ast.MemberAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 6,
							Line:   18,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
						Start: ast.Position{
							Column: 8,
							Line:   11,
						},
					},
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 6,
								Line:   18,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "(csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
							Start: ast.Position{
								Column: 30,
								Line:   11,
							},
						},
					},
					Body: &ast.PipeExpression{
						Argument: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 54,
											Line:   11,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "csv: csv",
										Start: ast.Position{
											Column: 46,
											Line:   11,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   11,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "csv: csv",
											Start: ast.Position{
												Column: 46,
												Line:   11,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 49,
													Line:   11,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 46,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
									Separator: nil,
									Value: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   11,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "csv",
												Start: ast.Position{
													Column: 51,
													Line:   11,
												},
											},
										},
										Name: "csv",
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 55,
										Line:   11,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "c.from(csv: csv)",
									Start: ast.Position{
										Column: 39,
										Line:   11,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 45,
											Line:   11,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "c.from",
										Start: ast.Position{
											Column: 39,
											Line:   11,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 40,
												Line:   11,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "c",
											Start: ast.Position{
												Column: 39,
												Line:   11,
											},
										},
									},
									Name: "c",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   11,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "from",
											Start: ast.Position{
												Column: 41,
												Line:   11,
											},
										},
									},
									Name: "from",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 6,
									Line:   18,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
								Start: ast.Position{
									Column: 39,
									Line:   11,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   17,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
										Start: ast.Position{
											Column: 9,
											Line:   13,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 11,
												Line:   17,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
											Start: ast.Position{
												Column: 9,
												Line:   13,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   13,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "fn",
												Start: ast.Position{
													Column: 9,
													Line:   13,
												},
											},
										},
										Name: "fn",
									},
									Separator: nil,
									Value: &ast.FunctionExpression{
										Arrow: nil,
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 11,
													Line:   17,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "(r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
												Start: ast.Position{
													Column: 13,
													Line:   13,
												},
											},
										},
										Body: &ast.ParenExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 11,
														Line:   17,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        })",
													Start: ast.Position{
														Column: 20,
														Line:   13,
													},
												},
											},
											Expression: &ast.ObjectExpression{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 10,
															Line:   17,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "{r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }",
														Start: ast.Position{
															Column: 21,
															Line:   13,
														},
													},
												},
												Lbrace: nil,
												Properties: []*ast.Property{&ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 115,
																Line:   14,
															},
															File:   "linearRegression_predict_test.flux",
															Source: "_field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
															Start: ast.Position{
																Column: 13,
																Line:   14,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 19,
																	Line:   14,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "_field",
																Start: ast.Position{
																	Column: 13,
																	Line:   14,
																},
															},
														},
														Name: "_field",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 114,
																			Line:   14,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "msg: \"test input table does not have _field column\"",
																		Start: ast.Position{
																			Column: 63,
																			Line:   14,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 114,
																				Line:   14,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "msg: \"test input table does not have _field column\"",
																			Start: ast.Position{
																				Column: 63,
																				Line:   14,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 66,
																					Line:   14,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 63,
																					Line:   14,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 114,
																					Line:   14,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "\"test input table does not have _field column\"",
																				Start: ast.Position{
																					Column: 68,
																					Line:   14,
																				},
																			},
																		},
																		Value: "test input table does not have _field column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 115,
																		Line:   14,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "die(msg: \"test input table does not have _field column\")",
																	Start: ast.Position{
																		Column: 59,
																		Line:   14,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 62,
																			Line:   14,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 59,
																			Line:   14,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 115,
																	Line:   14,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "if exists r._field then r._field else die(msg: \"test input table does not have _field column\")",
																Start: ast.Position{
																	Column: 21,
																	Line:   14,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 53,
																		Line:   14,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "r._field",
																	Start: ast.Position{
																		Column: 45,
																		Line:   14,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 46,
																			Line:   14,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 45,
																			Line:   14,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 53,
																			Line:   14,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "_field",
																		Start: ast.Position{
																			Column: 47,
																			Line:   14,
																		},
																	},
																},
																Name: "_field",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 39,
																			Line:   14,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r._field",
																		Start: ast.Position{
																			Column: 31,
																			Line:   14,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 32,
																				Line:   14,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 31,
																				Line:   14,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 39,
																				Line:   14,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "_field",
																			Start: ast.Position{
																				Column: 33,
																				Line:   14,
																			},
																		},
																	},
																	Name: "_field",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 39,
																		Line:   14,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "exists r._field",
																	Start: ast.Position{
																		Column: 24,
																		Line:   14,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 139,
																Line:   15,
															},
															File:   "linearRegression_predict_test.flux",
															Source: "_measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
															Start: ast.Position{
																Column: 13,
																Line:   15,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 25,
																	Line:   15,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "_measurement",
																Start: ast.Position{
																	Column: 13,
																	Line:   15,
																},
															},
														},
														Name: "_measurement",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 138,
																			Line:   15,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "msg: \"test input table does not have _measurement column\"",
																		Start: ast.Position{
																			Column: 81,
																			Line:   15,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 138,
																				Line:   15,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "msg: \"test input table does not have _measurement column\"",
																			Start: ast.Position{
																				Column: 81,
																				Line:   15,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 84,
																					Line:   15,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 81,
																					Line:   15,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 138,
																					Line:   15,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "\"test input table does not have _measurement column\"",
																				Start: ast.Position{
																					Column: 86,
																					Line:   15,
																				},
																			},
																		},
																		Value: "test input table does not have _measurement column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 139,
																		Line:   15,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "die(msg: \"test input table does not have _measurement column\")",
																	Start: ast.Position{
																		Column: 77,
																		Line:   15,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 80,
																			Line:   15,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 77,
																			Line:   15,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 139,
																	Line:   15,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\")",
																Start: ast.Position{
																	Column: 27,
																	Line:   15,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 71,
																		Line:   15,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "r._measurement",
																	Start: ast.Position{
																		Column: 57,
																		Line:   15,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 58,
																			Line:   15,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 57,
																			Line:   15,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 71,
																			Line:   15,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "_measurement",
																		Start: ast.Position{
																			Column: 59,
																			Line:   15,
																		},
																	},
																},
																Name: "_measurement",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 51,
																			Line:   15,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r._measurement",
																		Start: ast.Position{
																			Column: 37,
																			Line:   15,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 38,
																				Line:   15,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 37,
																				Line:   15,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 51,
																				Line:   15,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "_measurement",
																			Start: ast.Position{
																				Column: 39,
																				Line:   15,
																			},
																		},
																	},
																	Name: "_measurement",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 51,
																		Line:   15,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "exists r._measurement",
																	Start: ast.Position{
																		Column: 30,
																		Line:   15,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}, &ast.Property{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 111,
																Line:   16,
															},
															File:   "linearRegression_predict_test.flux",
															Source: "_time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
															Start: ast.Position{
																Column: 13,
																Line:   16,
															},
														},
													},
													Comma: nil,
													Key: &ast.Identifier{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 18,
																	Line:   16,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "_time",
																Start: ast.Position{
																	Column: 13,
																	Line:   16,
																},
															},
														},
														Name: "_time",
													},
													Separator: nil,
													Value: &ast.ConditionalExpression{
														Alternate: &ast.CallExpression{
															Arguments: []ast.Expression{&ast.ObjectExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 110,
																			Line:   16,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "msg: \"test input table does not have _time column\"",
																		Start: ast.Position{
																			Column: 60,
																			Line:   16,
																		},
																	},
																},
																Lbrace: nil,
																Properties: []*ast.Property{&ast.Property{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 110,
																				Line:   16,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "msg: \"test input table does not have _time column\"",
																			Start: ast.Position{
																				Column: 60,
																				Line:   16,
																			},
																		},
																	},
																	Comma: nil,
																	Key: &ast.Identifier{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 63,
																					Line:   16,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "msg",
																				Start: ast.Position{
																					Column: 60,
																					Line:   16,
																				},
																			},
																		},
																		Name: "msg",
																	},
																	Separator: nil,
																	Value: &ast.StringLiteral{
																		BaseNode: ast.BaseNode{
																			Comments: nil,
																			Errors:   nil,
																			Loc: &ast.SourceLocation{
																				End: ast.Position{
																					Column: 110,
																					Line:   16,
																				},
																				File:   "linearRegression_predict_test.flux",
																				Source: "\"test input table does not have _time column\"",
																				Start: ast.Position{
																					Column: 65,
																					Line:   16,
																				},
																			},
																		},
																		Value: "test input table does not have _time column",
																	},
																}},
																Rbrace: nil,
																With:   nil,
															}},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 111,
																		Line:   16,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "die(msg: \"test input table does not have _time column\")",
																	Start: ast.Position{
																		Column: 56,
																		Line:   16,
																	},
																},
															},
															Callee: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 59,
																			Line:   16,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "die",
																		Start: ast.Position{
																			Column: 56,
																			Line:   16,
																		},
																	},
																},
																Name: "die",
															},
															Lparen: nil,
															Rparen: nil,
														},
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 111,
																	Line:   16,
																},
																File:   "linearRegression_predict_test.flux",
																Source: "if exists r._time then r._time else die(msg: \"test input table does not have _time column\")",
																Start: ast.Position{
																	Column: 20,
																	Line:   16,
																},
															},
														},
														Consequent: &ast.MemberExpression{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 50,
																		Line:   16,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "r._time",
																	Start: ast.Position{
																		Column: 43,
																		Line:   16,
																	},
																},
															},
															Lbrack: nil,
															Object: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 44,
																			Line:   16,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r",
																		Start: ast.Position{
																			Column: 43,
																			Line:   16,
																		},
																	},
																},
																Name: "r",
															},
															Property: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 50,
																			Line:   16,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "_time",
																		Start: ast.Position{
																			Column: 45,
																			Line:   16,
																		},
																	},
																},
																Name: "_time",
															},
															Rbrack: nil,
														},
														Test: &ast.UnaryExpression{
															Argument: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 37,
																			Line:   16,
																		},
																		File:   "linearRegression_predict_test.flux",
																		Source: "r._time",
																		Start: ast.Position{
																			Column: 30,
																			Line:   16,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 31,
																				Line:   16,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 30,
																				Line:   16,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 37,
																				Line:   16,
																			},
																			File:   "linearRegression_predict_test.flux",
																			Source: "_time",
																			Start: ast.Position{
																				Column: 32,
																				Line:   16,
																			},
																		},
																	},
																	Name: "_time",
																},
																Rbrack: nil,
															},
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 37,
																		Line:   16,
																	},
																	File:   "linearRegression_predict_test.flux",
																	Source: "exists r._time",
																	Start: ast.Position{
																		Column: 23,
																		Line:   16,
																	},
																},
															},
															Operator: 14,
														},
														Tk_else: nil,
														Tk_if:   nil,
														Tk_then: nil,
													},
												}},
												Rbrace: nil,
												With: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 23,
																Line:   13,
															},
															File:   "linearRegression_predict_test.flux",
															Source: "r",
															Start: ast.Position{
																Column: 22,
																Line:   13,
															},
														},
													},
													Name: "r",
												},
											},
											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: 15,
														Line:   13,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 14,
														Line:   13,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 15,
															Line:   13,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 14,
															Line:   13,
														},
													},
												},
												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: 6,
										Line:   18,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
									Start: ast.Position{
										Column: 8,
										Line:   12,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 11,
											Line:   12,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "map",
										Start: ast.Position{
											Column: 8,
											Line:   12,
										},
									},
								},
								Name: "map",
							},
							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: 34,
									Line:   11,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "csv",
								Start: ast.Position{
									Column: 31,
									Line:   11,
								},
							},
						},
						Comma: nil,
						Key: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 34,
										Line:   11,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "csv",
									Start: ast.Position{
										Column: 31,
										Line:   11,
									},
								},
							},
							Name: "csv",
						},
						Separator: nil,
						Value:     nil,
					}},
					Rparan: nil,
				},
				Member: &ast.MemberExpression{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   11,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "testing.loadStorage",
							Start: ast.Position{
								Column: 8,
								Line:   11,
							},
						},
					},
					Lbrack: nil,
					Object: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 15,
									Line:   11,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "testing",
								Start: ast.Position{
									Column: 8,
									Line:   11,
								},
							},
						},
						Name: "testing",
					},
					Property: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 27,
									Line:   11,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "loadStorage",
								Start: ast.Position{
									Column: 16,
									Line:   11,
								},
							},
						},
						Name: "loadStorage",
					},
					Rbrack: nil,
				},
			},
			BaseNode: ast.BaseNode{
				Comments: []ast.Comment{ast.Comment{Text: "// todo(faith): remove overload https://github.com/influxdata/flux/issues/3155\r\n"}},
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 6,
						Line:   18,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "option testing.loadStorage = (csv) => c.from(csv: csv)\n    |> map(\n        fn: (r) => ({r with\n            _field: if exists r._field then r._field else die(msg: \"test input table does not have _field column\"),\n            _measurement: if exists r._measurement then r._measurement else die(msg: \"test input table does not have _measurement column\"),\n            _time: if exists r._time then r._time else die(msg: \"test input table does not have _time column\"),\n        }),\n    )",
					Start: ast.Position{
						Column: 1,
						Line:   11,
					},
				},
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   44,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "inData = \"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   20,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 7,
							Line:   20,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "inData",
						Start: ast.Position{
							Column: 1,
							Line:   20,
						},
					},
				},
				Name: "inData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   44,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   20,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,100,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,100,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,100,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,200,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,300,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,400,prometheus\r\n,,3,2018-12-18T20:52:33Z,metric_name4,100,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   53,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "outData = \"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,1888.5057142857145,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,3756.8571428571427,prometheus\r\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:   "linearRegression_predict_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:   53,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "\"\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,1888.5057142857145,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,3756.8571428571427,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   45,
						},
					},
				},
				Value: "\r\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name2,1888.5057142857145,prometheus\r\n,,2,2018-12-18T20:50:00Z,2018-12-18T20:55:00Z,metric_name3,3756.8571428571427,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 62,
						Line:   56,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "t_linearRegression = (table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: true, fromNow: 600.0)",
					Start: ast.Position{
						Column: 1,
						Line:   54,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 19,
							Line:   54,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "t_linearRegression",
						Start: ast.Position{
							Column: 1,
							Line:   54,
						},
					},
				},
				Name: "t_linearRegression",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 62,
							Line:   56,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: true, fromNow: 600.0)",
						Start: ast.Position{
							Column: 22,
							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: 41,
										Line:   54,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 36,
										Line:   54,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 70,
									Line:   55,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
								Start: ast.Position{
									Column: 36,
									Line:   54,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   55,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   55,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   55,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "start: 2018-12-18T20:50:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   55,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   55,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   55,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   55,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "2018-12-18T20:50:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   55,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:50:00Z"),
									},
								}, &ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   55,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "stop: 2018-12-18T20:55:00Z",
											Start: ast.Position{
												Column: 43,
												Line:   55,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 47,
													Line:   55,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "stop",
												Start: ast.Position{
													Column: 43,
													Line:   55,
												},
											},
										},
										Name: "stop",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 69,
													Line:   55,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "2018-12-18T20:55:00Z",
												Start: ast.Position{
													Column: 49,
													Line:   55,
												},
											},
										},
										Value: parser.MustParseTime("2018-12-18T20:55:00Z"),
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 70,
										Line:   55,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   55,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   55,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   55,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 62,
								Line:   56,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "table\n    |> range(start: 2018-12-18T20:50:00Z, stop: 2018-12-18T20:55:00Z)\n    |> promql.linearRegression(predict: true, fromNow: 600.0)",
							Start: ast.Position{
								Column: 36,
								Line:   54,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 61,
										Line:   56,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "predict: true, fromNow: 600.0",
									Start: ast.Position{
										Column: 32,
										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:   "linearRegression_predict_test.flux",
										Source: "predict: true",
										Start: ast.Position{
											Column: 32,
											Line:   56,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   56,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "predict",
											Start: ast.Position{
												Column: 32,
												Line:   56,
											},
										},
									},
									Name: "predict",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 45,
												Line:   56,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "true",
											Start: ast.Position{
												Column: 41,
												Line:   56,
											},
										},
									},
									Name: "true",
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 61,
											Line:   56,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "fromNow: 600.0",
										Start: ast.Position{
											Column: 47,
											Line:   56,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 54,
												Line:   56,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "fromNow",
											Start: ast.Position{
												Column: 47,
												Line:   56,
											},
										},
									},
									Name: "fromNow",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 61,
												Line:   56,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "600.0",
											Start: ast.Position{
												Column: 56,
												Line:   56,
											},
										},
									},
									Value: 600.0,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 62,
									Line:   56,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "promql.linearRegression(predict: true, fromNow: 600.0)",
								Start: ast.Position{
									Column: 8,
									Line:   56,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   56,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "promql.linearRegression",
									Start: ast.Position{
										Column: 8,
										Line:   56,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   56,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   56,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   56,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "linearRegression",
										Start: ast.Position{
											Column: 15,
											Line:   56,
										},
									},
								},
								Name: "linearRegression",
							},
							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: 31,
								Line:   54,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 23,
								Line:   54,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 28,
									Line:   54,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 23,
									Line:   54,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   54,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 29,
								Line:   54,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 136,
							Line:   58,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "_linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
						Start: ast.Position{
							Column: 6,
							Line:   58,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   58,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "_linearRegression",
							Start: ast.Position{
								Column: 6,
								Line:   58,
							},
						},
					},
					Name: "_linearRegression",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 136,
								Line:   58,
							},
							File:   "linearRegression_predict_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
							Start: ast.Position{
								Column: 26,
								Line:   58,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 136,
									Line:   58,
								},
								File:   "linearRegression_predict_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
								Start: ast.Position{
									Column: 32,
									Line:   58,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 135,
										Line:   58,
									},
									File:   "linearRegression_predict_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression}",
									Start: ast.Position{
										Column: 33,
										Line:   58,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 73,
											Line:   58,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 34,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 39,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 34,
												Line:   58,
											},
										},
									},
									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: 72,
													Line:   58,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 61,
													Line:   58,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 72,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 61,
														Line:   58,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   58,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 61,
															Line:   58,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 72,
															Line:   58,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 66,
															Line:   58,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 41,
												Line:   58,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 60,
													Line:   58,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 41,
													Line:   58,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 48,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 41,
														Line:   58,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 60,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 49,
														Line:   58,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 110,
											Line:   58,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 75,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 79,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 75,
												Line:   58,
											},
										},
									},
									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: 109,
													Line:   58,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 97,
													Line:   58,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 109,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 97,
														Line:   58,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 100,
															Line:   58,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 97,
															Line:   58,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 109,
															Line:   58,
														},
														File:   "linearRegression_predict_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 102,
															Line:   58,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 81,
												Line:   58,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 96,
													Line:   58,
												},
												File:   "linearRegression_predict_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 81,
													Line:   58,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 81,
														Line:   58,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 96,
														Line:   58,
													},
													File:   "linearRegression_predict_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 89,
														Line:   58,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 134,
											Line:   58,
										},
										File:   "linearRegression_predict_test.flux",
										Source: "fn: t_linearRegression",
										Start: ast.Position{
											Column: 112,
											Line:   58,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 114,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 112,
												Line:   58,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 134,
												Line:   58,
											},
											File:   "linearRegression_predict_test.flux",
											Source: "t_linearRegression",
											Start: ast.Position{
												Column: 116,
												Line:   58,
											},
										},
									},
									Name: "t_linearRegression",
								},
							}},
							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: 136,
						Line:   58,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "test _linearRegression = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_linearRegression})",
					Start: ast.Position{
						Column: 1,
						Line:   58,
					},
				},
			},
		}},
		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:   "linearRegression_predict_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:   "linearRegression_predict_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: 25,
						Line:   5,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}, &ast.ImportDeclaration{
			As: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   6,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "c",
						Start: ast.Position{
							Column: 8,
							Line:   6,
						},
					},
				},
				Name: "c",
			},
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 15,
						Line:   6,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "import c \"csv\"",
					Start: ast.Position{
						Column: 1,
						Line:   6,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   6,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "\"csv\"",
						Start: ast.Position{
							Column: 10,
							Line:   6,
						},
					},
				},
				Value: "csv",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "linearRegression_predict_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "linearRegression_predict_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "linearRegression_predict_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 128,
					Line:   39,
				},
				File:   "minute_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,57,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,58,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,59,prometheus\r\n\"\nt_promqlMinute = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)}))\n\ntest _promqlMinute = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute})",
				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:   "minute_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:   "minute_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:   "minute_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:   "minute_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:   "minute_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:   "minute_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,0,prometheus\r\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:   "minute_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:   "minute_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "minute_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,57,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,58,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,59,prometheus\r\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:   "minute_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:   32,
						},
						File:   "minute_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,57,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,58,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,59,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T00:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T00:01:00Z,metric_name,1,prometheus\r\n,,0,2018-03-05T00:02:00Z,metric_name,2,prometheus\r\n,,0,2018-10-06T00:57:00Z,metric_name,57,prometheus\r\n,,0,2018-11-07T00:58:00Z,metric_name,58,prometheus\r\n,,0,2018-12-08T00:59:00Z,metric_name,59,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 83,
						Line:   37,
					},
					File:   "minute_test.flux",
					Source: "t_promqlMinute = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 15,
							Line:   33,
						},
						File:   "minute_test.flux",
						Source: "t_promqlMinute",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlMinute",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 83,
							Line:   37,
						},
						File:   "minute_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 18,
							Line:   33,
						},
					},
				},
				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: 37,
												Line:   33,
											},
											File:   "minute_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 32,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "minute_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 32,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "minute_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "minute_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "minute_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "minute_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "minute_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "minute_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "minute_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 32,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "minute_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "minute_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "minute_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "minute_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "minute_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "minute_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "minute_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "minute_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "minute_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 32,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "minute_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "minute_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "minute_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "minute_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 83,
								Line:   37,
							},
							File:   "minute_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 32,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 82,
										Line:   37,
									},
									File:   "minute_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 82,
											Line:   37,
										},
										File:   "minute_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "minute_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									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:   37,
											},
											File:   "minute_test.flux",
											Source: "(r) => ({r with _value: promql.promqlMinute(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 82,
													Line:   37,
												},
												File:   "minute_test.flux",
												Source: "({r with _value: promql.promqlMinute(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 81,
														Line:   37,
													},
													File:   "minute_test.flux",
													Source: "{r with _value: promql.promqlMinute(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 80,
															Line:   37,
														},
														File:   "minute_test.flux",
														Source: "_value: promql.promqlMinute(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "minute_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 79,
																	Line:   37,
																},
																File:   "minute_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 60,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 79,
																		Line:   37,
																	},
																	File:   "minute_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 60,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 69,
																			Line:   37,
																		},
																		File:   "minute_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 60,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 79,
																			Line:   37,
																		},
																		File:   "minute_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 71,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 72,
																				Line:   37,
																			},
																			File:   "minute_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 71,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 79,
																				Line:   37,
																			},
																			File:   "minute_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 73,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 80,
																Line:   37,
															},
															File:   "minute_test.flux",
															Source: "promql.promqlMinute(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 59,
																	Line:   37,
																},
																File:   "minute_test.flux",
																Source: "promql.promqlMinute",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "minute_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 59,
																		Line:   37,
																	},
																	File:   "minute_test.flux",
																	Source: "promqlMinute",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlMinute",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "minute_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "minute_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "minute_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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:   37,
								},
								File:   "minute_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlMinute(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "minute_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 27,
								Line:   33,
							},
							File:   "minute_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 19,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 24,
									Line:   33,
								},
								File:   "minute_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 19,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 27,
								Line:   33,
							},
							File:   "minute_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 25,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 128,
							Line:   39,
						},
						File:   "minute_test.flux",
						Source: "_promqlMinute = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 19,
								Line:   39,
							},
							File:   "minute_test.flux",
							Source: "_promqlMinute",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlMinute",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 128,
								Line:   39,
							},
							File:   "minute_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute})",
							Start: ast.Position{
								Column: 22,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 128,
									Line:   39,
								},
								File:   "minute_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute})",
								Start: ast.Position{
									Column: 28,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 127,
										Line:   39,
									},
									File:   "minute_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute}",
									Start: ast.Position{
										Column: 29,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 69,
											Line:   39,
										},
										File:   "minute_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 30,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 35,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 30,
												Line:   39,
											},
										},
									},
									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: 68,
													Line:   39,
												},
												File:   "minute_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 57,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 68,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 57,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 60,
															Line:   39,
														},
														File:   "minute_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 57,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 68,
															Line:   39,
														},
														File:   "minute_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 62,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 69,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 37,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 56,
													Line:   39,
												},
												File:   "minute_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 37,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 44,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 37,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 56,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 45,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 106,
											Line:   39,
										},
										File:   "minute_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 71,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 75,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 71,
												Line:   39,
											},
										},
									},
									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: 105,
													Line:   39,
												},
												File:   "minute_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 93,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 105,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 93,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 96,
															Line:   39,
														},
														File:   "minute_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 93,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 105,
															Line:   39,
														},
														File:   "minute_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 98,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 77,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 92,
													Line:   39,
												},
												File:   "minute_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 77,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 84,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 77,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 92,
														Line:   39,
													},
													File:   "minute_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 85,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 126,
											Line:   39,
										},
										File:   "minute_test.flux",
										Source: "fn: t_promqlMinute",
										Start: ast.Position{
											Column: 108,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 110,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 108,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 126,
												Line:   39,
											},
											File:   "minute_test.flux",
											Source: "t_promqlMinute",
											Start: ast.Position{
												Column: 112,
												Line:   39,
											},
										},
									},
									Name: "t_promqlMinute",
								},
							}},
							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: 128,
						Line:   39,
					},
					File:   "minute_test.flux",
					Source: "test _promqlMinute = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMinute})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "minute_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:   "minute_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: 25,
						Line:   5,
					},
					File:   "minute_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "minute_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "minute_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "minute_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "minute_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 126,
					Line:   39,
				},
				File:   "month_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,10,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,11,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,12,prometheus\r\n\"\nt_promqlMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)}))\n\ntest _promqlMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth})",
				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:   "month_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:   "month_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:   "month_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:   "month_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:   "month_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:   "month_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\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:   "month_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:   "month_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "month_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,10,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,11,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,12,prometheus\r\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:   "month_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:   32,
						},
						File:   "month_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,10,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,11,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,12,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,1,prometheus\r\n,,0,2018-02-04T20:00:00Z,metric_name,2,prometheus\r\n,,0,2018-03-05T20:00:00Z,metric_name,3,prometheus\r\n,,0,2018-10-06T20:00:00Z,metric_name,10,prometheus\r\n,,0,2018-11-07T20:00:00Z,metric_name,11,prometheus\r\n,,0,2018-12-08T20:00:00Z,metric_name,12,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 82,
						Line:   37,
					},
					File:   "month_test.flux",
					Source: "t_promqlMonth = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 14,
							Line:   33,
						},
						File:   "month_test.flux",
						Source: "t_promqlMonth",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlMonth",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 82,
							Line:   37,
						},
						File:   "month_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 17,
							Line:   33,
						},
					},
				},
				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: 36,
												Line:   33,
											},
											File:   "month_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 31,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "month_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 31,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "month_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "month_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "month_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "month_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "month_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "month_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "month_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 31,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "month_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "month_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "month_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "month_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "month_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "month_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "month_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "month_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "month_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 31,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "month_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "month_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "month_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "month_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 82,
								Line:   37,
							},
							File:   "month_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 31,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 81,
										Line:   37,
									},
									File:   "month_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 81,
											Line:   37,
										},
										File:   "month_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "month_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 81,
												Line:   37,
											},
											File:   "month_test.flux",
											Source: "(r) => ({r with _value: promql.promqlMonth(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 81,
													Line:   37,
												},
												File:   "month_test.flux",
												Source: "({r with _value: promql.promqlMonth(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   37,
													},
													File:   "month_test.flux",
													Source: "{r with _value: promql.promqlMonth(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 79,
															Line:   37,
														},
														File:   "month_test.flux",
														Source: "_value: promql.promqlMonth(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "month_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 78,
																	Line:   37,
																},
																File:   "month_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 59,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 78,
																		Line:   37,
																	},
																	File:   "month_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 59,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 68,
																			Line:   37,
																		},
																		File:   "month_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 59,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 78,
																			Line:   37,
																		},
																		File:   "month_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 70,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 71,
																				Line:   37,
																			},
																			File:   "month_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 70,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 78,
																				Line:   37,
																			},
																			File:   "month_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 72,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 79,
																Line:   37,
															},
															File:   "month_test.flux",
															Source: "promql.promqlMonth(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 58,
																	Line:   37,
																},
																File:   "month_test.flux",
																Source: "promql.promqlMonth",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "month_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 58,
																		Line:   37,
																	},
																	File:   "month_test.flux",
																	Source: "promqlMonth",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlMonth",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "month_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "month_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "month_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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: 82,
									Line:   37,
								},
								File:   "month_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlMonth(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "month_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 26,
								Line:   33,
							},
							File:   "month_test.flux",
							Source: "table=<-",
							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:   "month_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 18,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 26,
								Line:   33,
							},
							File:   "month_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 24,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 126,
							Line:   39,
						},
						File:   "month_test.flux",
						Source: "_promqlMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 18,
								Line:   39,
							},
							File:   "month_test.flux",
							Source: "_promqlMonth",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlMonth",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 126,
								Line:   39,
							},
							File:   "month_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth})",
							Start: ast.Position{
								Column: 21,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 126,
									Line:   39,
								},
								File:   "month_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth})",
								Start: ast.Position{
									Column: 27,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 125,
										Line:   39,
									},
									File:   "month_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth}",
									Start: ast.Position{
										Column: 28,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 68,
											Line:   39,
										},
										File:   "month_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 29,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 34,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 29,
												Line:   39,
											},
										},
									},
									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: 67,
													Line:   39,
												},
												File:   "month_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 56,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 67,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 56,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 59,
															Line:   39,
														},
														File:   "month_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 56,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 67,
															Line:   39,
														},
														File:   "month_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 61,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 68,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 36,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 55,
													Line:   39,
												},
												File:   "month_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 36,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 43,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 36,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 55,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 44,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 105,
											Line:   39,
										},
										File:   "month_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 70,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 74,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 70,
												Line:   39,
											},
										},
									},
									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: 104,
													Line:   39,
												},
												File:   "month_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 92,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 104,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 92,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 95,
															Line:   39,
														},
														File:   "month_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 92,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 104,
															Line:   39,
														},
														File:   "month_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 97,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 105,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 76,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 91,
													Line:   39,
												},
												File:   "month_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 76,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 83,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 76,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 91,
														Line:   39,
													},
													File:   "month_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 84,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 124,
											Line:   39,
										},
										File:   "month_test.flux",
										Source: "fn: t_promqlMonth",
										Start: ast.Position{
											Column: 107,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 109,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 107,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 124,
												Line:   39,
											},
											File:   "month_test.flux",
											Source: "t_promqlMonth",
											Start: ast.Position{
												Column: 111,
												Line:   39,
											},
										},
									},
									Name: "t_promqlMonth",
								},
							}},
							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: 126,
						Line:   39,
					},
					File:   "month_test.flux",
					Source: "test _promqlMonth = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlMonth})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "month_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:   "month_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: 25,
						Line:   5,
					},
					File:   "month_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "month_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "month_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "month_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "month_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   41,
				},
				File:   "quantile_neg_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\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\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,-Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,-Inf\n\"\n\n// testing below range value\nt_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: -0.1)\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_neg_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_neg_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_neg_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_neg_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_neg_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:   26,
					},
					File:   "quantile_neg_test.flux",
					Source: "inData = \"\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\"",
					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_neg_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:   26,
						},
						File:   "quantile_neg_test.flux",
						Source: "\"\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\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\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",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   34,
					},
					File:   "quantile_neg_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,-Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,-Inf\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   27,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   27,
						},
						File:   "quantile_neg_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   27,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   34,
						},
						File:   "quantile_neg_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,-Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,-Inf\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   27,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,-Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,-Inf\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 32,
						Line:   39,
					},
					File:   "quantile_neg_test.flux",
					Source: "t_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: -0.1)",
					Start: ast.Position{
						Column: 1,
						Line:   37,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: []ast.Comment{ast.Comment{Text: "// testing below range value\n"}},
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   37,
						},
						File:   "quantile_neg_test.flux",
						Source: "t_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   37,
						},
					},
				},
				Name: "t_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 32,
							Line:   39,
						},
						File:   "quantile_neg_test.flux",
						Source: "(tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: -0.1)",
						Start: ast.Position{
							Column: 14,
							Line:   37,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 35,
										Line:   37,
									},
									File:   "quantile_neg_test.flux",
									Source: "tables",
									Start: ast.Position{
										Column: 29,
										Line:   37,
									},
								},
							},
							Name: "tables",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   38,
								},
								File:   "quantile_neg_test.flux",
								Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 29,
									Line:   37,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   38,
										},
										File:   "quantile_neg_test.flux",
										Source: "start: 2019-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   38,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   38,
											},
											File:   "quantile_neg_test.flux",
											Source: "start: 2019-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   38,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   38,
												},
												File:   "quantile_neg_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   38,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   38,
												},
												File:   "quantile_neg_test.flux",
												Source: "2019-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   38,
												},
											},
										},
										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: 42,
										Line:   38,
									},
									File:   "quantile_neg_test.flux",
									Source: "range(start: 2019-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   38,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   38,
										},
										File:   "quantile_neg_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   38,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 32,
								Line:   39,
							},
							File:   "quantile_neg_test.flux",
							Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: -0.1)",
							Start: ast.Position{
								Column: 29,
								Line:   37,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   39,
									},
									File:   "quantile_neg_test.flux",
									Source: "q: -0.1",
									Start: ast.Position{
										Column: 24,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   39,
										},
										File:   "quantile_neg_test.flux",
										Source: "q: -0.1",
										Start: ast.Position{
											Column: 24,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 25,
												Line:   39,
											},
											File:   "quantile_neg_test.flux",
											Source: "q",
											Start: ast.Position{
												Column: 24,
												Line:   39,
											},
										},
									},
									Name: "q",
								},
								Separator: nil,
								Value: &ast.UnaryExpression{
									Argument: &ast.FloatLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 31,
													Line:   39,
												},
												File:   "quantile_neg_test.flux",
												Source: "0.1",
												Start: ast.Position{
													Column: 28,
													Line:   39,
												},
											},
										},
										Value: 0.1,
									},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   39,
											},
											File:   "quantile_neg_test.flux",
											Source: "-0.1",
											Start: ast.Position{
												Column: 27,
												Line:   39,
											},
										},
									},
									Operator: 6,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   39,
								},
								File:   "quantile_neg_test.flux",
								Source: "promql.quantile(q: -0.1)",
								Start: ast.Position{
									Column: 8,
									Line:   39,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 23,
										Line:   39,
									},
									File:   "quantile_neg_test.flux",
									Source: "promql.quantile",
									Start: ast.Position{
										Column: 8,
										Line:   39,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   39,
										},
										File:   "quantile_neg_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   39,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 23,
											Line:   39,
										},
										File:   "quantile_neg_test.flux",
										Source: "quantile",
										Start: ast.Position{
											Column: 15,
											Line:   39,
										},
									},
								},
								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: 24,
								Line:   37,
							},
							File:   "quantile_neg_test.flux",
							Source: "tables=<-",
							Start: ast.Position{
								Column: 15,
								Line:   37,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   37,
								},
								File:   "quantile_neg_test.flux",
								Source: "tables",
								Start: ast.Position{
									Column: 15,
									Line:   37,
								},
							},
						},
						Name: "tables",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   37,
							},
							File:   "quantile_neg_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   37,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   41,
						},
						File:   "quantile_neg_test.flux",
						Source: "_quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
						Start: ast.Position{
							Column: 6,
							Line:   41,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   41,
							},
							File:   "quantile_neg_test.flux",
							Source: "_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   41,
							},
						},
					},
					Name: "_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   41,
							},
							File:   "quantile_neg_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
							Start: ast.Position{
								Column: 18,
								Line:   41,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   41,
								},
								File:   "quantile_neg_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
								Start: ast.Position{
									Column: 24,
									Line:   41,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   41,
									},
									File:   "quantile_neg_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile}",
									Start: ast.Position{
										Column: 25,
										Line:   41,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   41,
										},
										File:   "quantile_neg_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_neg_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   41,
														},
														File:   "quantile_neg_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   41,
														},
														File:   "quantile_neg_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   41,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   41,
												},
												File:   "quantile_neg_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_neg_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_neg_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   41,
														},
														File:   "quantile_neg_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   41,
														},
														File:   "quantile_neg_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   41,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   41,
												},
												File:   "quantile_neg_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   41,
													},
													File:   "quantile_neg_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_neg_test.flux",
										Source: "fn: t_quantile",
										Start: ast.Position{
											Column: 104,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   41,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   41,
											},
											File:   "quantile_neg_test.flux",
											Source: "t_quantile",
											Start: ast.Position{
												Column: 108,
												Line:   41,
											},
										},
									},
									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:   41,
					},
					File:   "quantile_neg_test.flux",
					Source: "test _quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
					Start: ast.Position{
						Column: 1,
						Line:   41,
					},
				},
			},
		}},
		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_neg_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_neg_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: 25,
						Line:   5,
					},
					File:   "quantile_neg_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "quantile_neg_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "quantile_neg_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "quantile_neg_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "quantile_neg_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   41,
				},
				File:   "quantile_pos_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\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\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,+Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,+Inf\n\"\n\n// testing above range value\nt_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 1.1)\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_pos_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_pos_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_pos_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_pos_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_pos_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:   26,
					},
					File:   "quantile_pos_test.flux",
					Source: "inData = \"\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\"",
					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_pos_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:   26,
						},
						File:   "quantile_pos_test.flux",
						Source: "\"\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\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\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",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   34,
					},
					File:   "quantile_pos_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,+Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,+Inf\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   27,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   27,
						},
						File:   "quantile_pos_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   27,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   34,
						},
						File:   "quantile_pos_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,+Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,+Inf\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   27,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,+Inf\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,+Inf\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 31,
						Line:   39,
					},
					File:   "quantile_pos_test.flux",
					Source: "t_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 1.1)",
					Start: ast.Position{
						Column: 1,
						Line:   37,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: []ast.Comment{ast.Comment{Text: "// testing above range value\n"}},
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   37,
						},
						File:   "quantile_pos_test.flux",
						Source: "t_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   37,
						},
					},
				},
				Name: "t_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 31,
							Line:   39,
						},
						File:   "quantile_pos_test.flux",
						Source: "(tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 1.1)",
						Start: ast.Position{
							Column: 14,
							Line:   37,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 35,
										Line:   37,
									},
									File:   "quantile_pos_test.flux",
									Source: "tables",
									Start: ast.Position{
										Column: 29,
										Line:   37,
									},
								},
							},
							Name: "tables",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   38,
								},
								File:   "quantile_pos_test.flux",
								Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 29,
									Line:   37,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   38,
										},
										File:   "quantile_pos_test.flux",
										Source: "start: 2019-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   38,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   38,
											},
											File:   "quantile_pos_test.flux",
											Source: "start: 2019-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   38,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   38,
												},
												File:   "quantile_pos_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   38,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   38,
												},
												File:   "quantile_pos_test.flux",
												Source: "2019-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   38,
												},
											},
										},
										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: 42,
										Line:   38,
									},
									File:   "quantile_pos_test.flux",
									Source: "range(start: 2019-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   38,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   38,
										},
										File:   "quantile_pos_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   38,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 31,
								Line:   39,
							},
							File:   "quantile_pos_test.flux",
							Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 1.1)",
							Start: ast.Position{
								Column: 29,
								Line:   37,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 30,
										Line:   39,
									},
									File:   "quantile_pos_test.flux",
									Source: "q: 1.1",
									Start: ast.Position{
										Column: 24,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 30,
											Line:   39,
										},
										File:   "quantile_pos_test.flux",
										Source: "q: 1.1",
										Start: ast.Position{
											Column: 24,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 25,
												Line:   39,
											},
											File:   "quantile_pos_test.flux",
											Source: "q",
											Start: ast.Position{
												Column: 24,
												Line:   39,
											},
										},
									},
									Name: "q",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 30,
												Line:   39,
											},
											File:   "quantile_pos_test.flux",
											Source: "1.1",
											Start: ast.Position{
												Column: 27,
												Line:   39,
											},
										},
									},
									Value: 1.1,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 31,
									Line:   39,
								},
								File:   "quantile_pos_test.flux",
								Source: "promql.quantile(q: 1.1)",
								Start: ast.Position{
									Column: 8,
									Line:   39,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 23,
										Line:   39,
									},
									File:   "quantile_pos_test.flux",
									Source: "promql.quantile",
									Start: ast.Position{
										Column: 8,
										Line:   39,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   39,
										},
										File:   "quantile_pos_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   39,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 23,
											Line:   39,
										},
										File:   "quantile_pos_test.flux",
										Source: "quantile",
										Start: ast.Position{
											Column: 15,
											Line:   39,
										},
									},
								},
								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: 24,
								Line:   37,
							},
							File:   "quantile_pos_test.flux",
							Source: "tables=<-",
							Start: ast.Position{
								Column: 15,
								Line:   37,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   37,
								},
								File:   "quantile_pos_test.flux",
								Source: "tables",
								Start: ast.Position{
									Column: 15,
									Line:   37,
								},
							},
						},
						Name: "tables",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   37,
							},
							File:   "quantile_pos_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   37,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   41,
						},
						File:   "quantile_pos_test.flux",
						Source: "_quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
						Start: ast.Position{
							Column: 6,
							Line:   41,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   41,
							},
							File:   "quantile_pos_test.flux",
							Source: "_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   41,
							},
						},
					},
					Name: "_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   41,
							},
							File:   "quantile_pos_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
							Start: ast.Position{
								Column: 18,
								Line:   41,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   41,
								},
								File:   "quantile_pos_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
								Start: ast.Position{
									Column: 24,
									Line:   41,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   41,
									},
									File:   "quantile_pos_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile}",
									Start: ast.Position{
										Column: 25,
										Line:   41,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   41,
										},
										File:   "quantile_pos_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_pos_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   41,
														},
														File:   "quantile_pos_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   41,
														},
														File:   "quantile_pos_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   41,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   41,
												},
												File:   "quantile_pos_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_pos_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_pos_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   41,
														},
														File:   "quantile_pos_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   41,
														},
														File:   "quantile_pos_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   41,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   41,
												},
												File:   "quantile_pos_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   41,
													},
													File:   "quantile_pos_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_pos_test.flux",
										Source: "fn: t_quantile",
										Start: ast.Position{
											Column: 104,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   41,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   41,
											},
											File:   "quantile_pos_test.flux",
											Source: "t_quantile",
											Start: ast.Position{
												Column: 108,
												Line:   41,
											},
										},
									},
									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:   41,
					},
					File:   "quantile_pos_test.flux",
					Source: "test _quantile = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
					Start: ast.Position{
						Column: 1,
						Line:   41,
					},
				},
			},
		}},
		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_pos_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_pos_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: 25,
						Line:   5,
					},
					File:   "quantile_pos_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "quantile_pos_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "quantile_pos_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "quantile_pos_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "quantile_pos_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 120,
					Line:   41,
				},
				File:   "quantile_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\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\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,47.57265196634445\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,26.162588942633263\n\"\n\n// testing normal range value\nt_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 0.75)\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:   26,
					},
					File:   "quantile_test.flux",
					Source: "inData = \"\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\"",
					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:   26,
						},
						File:   "quantile_test.flux",
						Source: "\"\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\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\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",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   34,
					},
					File:   "quantile_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,47.57265196634445\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,26.162588942633263\n\"",
					Start: ast.Position{
						Column: 1,
						Line:   27,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 8,
							Line:   27,
						},
						File:   "quantile_test.flux",
						Source: "outData",
						Start: ast.Position{
							Column: 1,
							Line:   27,
						},
					},
				},
				Name: "outData",
			},
			Init: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 2,
							Line:   34,
						},
						File:   "quantile_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,47.57265196634445\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,26.162588942633263\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   27,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,double\n#group,false,false,true,true,true,true,true,false\n#default,_result,,,,,,,\n,result,table,_start,_stop,_measurement,_field,t0,_value\n,,2,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,BnR,47.57265196634445\n,,3,2019-01-01T00:00:00Z,2030-01-01T00:00:00Z,Reiva,OAOJWe7,qCnJDC,26.162588942633263\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 32,
						Line:   39,
					},
					File:   "quantile_test.flux",
					Source: "t_quantile = (tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 0.75)",
					Start: ast.Position{
						Column: 1,
						Line:   37,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: []ast.Comment{ast.Comment{Text: "// testing normal range value\n"}},
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 11,
							Line:   37,
						},
						File:   "quantile_test.flux",
						Source: "t_quantile",
						Start: ast.Position{
							Column: 1,
							Line:   37,
						},
					},
				},
				Name: "t_quantile",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 32,
							Line:   39,
						},
						File:   "quantile_test.flux",
						Source: "(tables=<-) => tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 0.75)",
						Start: ast.Position{
							Column: 14,
							Line:   37,
						},
					},
				},
				Body: &ast.PipeExpression{
					Argument: &ast.PipeExpression{
						Argument: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 35,
										Line:   37,
									},
									File:   "quantile_test.flux",
									Source: "tables",
									Start: ast.Position{
										Column: 29,
										Line:   37,
									},
								},
							},
							Name: "tables",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   38,
								},
								File:   "quantile_test.flux",
								Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)",
								Start: ast.Position{
									Column: 29,
									Line:   37,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   38,
										},
										File:   "quantile_test.flux",
										Source: "start: 2019-01-01T00:00:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   38,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   38,
											},
											File:   "quantile_test.flux",
											Source: "start: 2019-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   38,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   38,
												},
												File:   "quantile_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   38,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   38,
												},
												File:   "quantile_test.flux",
												Source: "2019-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   38,
												},
											},
										},
										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: 42,
										Line:   38,
									},
									File:   "quantile_test.flux",
									Source: "range(start: 2019-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   38,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   38,
										},
										File:   "quantile_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   38,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 32,
								Line:   39,
							},
							File:   "quantile_test.flux",
							Source: "tables\n    |> range(start: 2019-01-01T00:00:00Z)\n    |> promql.quantile(q: 0.75)",
							Start: ast.Position{
								Column: 29,
								Line:   37,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 31,
										Line:   39,
									},
									File:   "quantile_test.flux",
									Source: "q: 0.75",
									Start: ast.Position{
										Column: 24,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 31,
											Line:   39,
										},
										File:   "quantile_test.flux",
										Source: "q: 0.75",
										Start: ast.Position{
											Column: 24,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 25,
												Line:   39,
											},
											File:   "quantile_test.flux",
											Source: "q",
											Start: ast.Position{
												Column: 24,
												Line:   39,
											},
										},
									},
									Name: "q",
								},
								Separator: nil,
								Value: &ast.FloatLiteral{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   39,
											},
											File:   "quantile_test.flux",
											Source: "0.75",
											Start: ast.Position{
												Column: 27,
												Line:   39,
											},
										},
									},
									Value: 0.75,
								},
							}},
							Rbrace: nil,
							With:   nil,
						}},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 32,
									Line:   39,
								},
								File:   "quantile_test.flux",
								Source: "promql.quantile(q: 0.75)",
								Start: ast.Position{
									Column: 8,
									Line:   39,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 23,
										Line:   39,
									},
									File:   "quantile_test.flux",
									Source: "promql.quantile",
									Start: ast.Position{
										Column: 8,
										Line:   39,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   39,
										},
										File:   "quantile_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   39,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 23,
											Line:   39,
										},
										File:   "quantile_test.flux",
										Source: "quantile",
										Start: ast.Position{
											Column: 15,
											Line:   39,
										},
									},
								},
								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: 24,
								Line:   37,
							},
							File:   "quantile_test.flux",
							Source: "tables=<-",
							Start: ast.Position{
								Column: 15,
								Line:   37,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   37,
								},
								File:   "quantile_test.flux",
								Source: "tables",
								Start: ast.Position{
									Column: 15,
									Line:   37,
								},
							},
						},
						Name: "tables",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   37,
							},
							File:   "quantile_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   37,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 120,
							Line:   41,
						},
						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:   41,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 15,
								Line:   41,
							},
							File:   "quantile_test.flux",
							Source: "_quantile",
							Start: ast.Position{
								Column: 6,
								Line:   41,
							},
						},
					},
					Name: "_quantile",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 120,
								Line:   41,
							},
							File:   "quantile_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
							Start: ast.Position{
								Column: 18,
								Line:   41,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 120,
									Line:   41,
								},
								File:   "quantile_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile})",
								Start: ast.Position{
									Column: 24,
									Line:   41,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 119,
										Line:   41,
									},
									File:   "quantile_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_quantile}",
									Start: ast.Position{
										Column: 25,
										Line:   41,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 65,
											Line:   41,
										},
										File:   "quantile_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 26,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 31,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 26,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 53,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 64,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 53,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 56,
															Line:   41,
														},
														File:   "quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 53,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 64,
															Line:   41,
														},
														File:   "quantile_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 58,
															Line:   41,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 65,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 33,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 52,
													Line:   41,
												},
												File:   "quantile_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 33,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 33,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 52,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 41,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 67,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 71,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 67,
												Line:   41,
											},
										},
									},
									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:   41,
												},
												File:   "quantile_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 89,
													Line:   41,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 101,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 89,
														Line:   41,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 92,
															Line:   41,
														},
														File:   "quantile_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 89,
															Line:   41,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 101,
															Line:   41,
														},
														File:   "quantile_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 94,
															Line:   41,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 102,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 73,
												Line:   41,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 88,
													Line:   41,
												},
												File:   "quantile_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 73,
													Line:   41,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 80,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 73,
														Line:   41,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 88,
														Line:   41,
													},
													File:   "quantile_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 81,
														Line:   41,
													},
												},
											},
											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:   41,
										},
										File:   "quantile_test.flux",
										Source: "fn: t_quantile",
										Start: ast.Position{
											Column: 104,
											Line:   41,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 106,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 104,
												Line:   41,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 118,
												Line:   41,
											},
											File:   "quantile_test.flux",
											Source: "t_quantile",
											Start: ast.Position{
												Column: 108,
												Line:   41,
											},
										},
									},
									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:   41,
					},
					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:   41,
					},
				},
			},
		}},
		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: 25,
						Line:   5,
					},
					File:   "quantile_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "quantile_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		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: 20,
						Line:   1,
					},
					File:   "quantile_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "quantile_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 116,
					Line:   46,
				},
				File:   "resets_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,1,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,2,prometheus\r\n\"\nt_resets = (table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.resets()\n\ntest _resets = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets})",
				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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,1,prometheus\r\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:   "resets_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:   "resets_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,1,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-18T20:52:33Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:43Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:52:53Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:03Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:13Z,metric_name1,1,prometheus\r\n,,0,2018-12-18T20:53:23Z,metric_name1,1,prometheus\r\n,,1,2018-12-18T20:52:33Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:43Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:52:53Z,metric_name2,1,prometheus\r\n,,1,2018-12-18T20:53:03Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:13Z,metric_name2,2,prometheus\r\n,,1,2018-12-18T20:53:23Z,metric_name2,2,prometheus\r\n,,2,2018-12-18T20:52:33Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:52:43Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:52:53Z,metric_name3,3,prometheus\r\n,,2,2018-12-18T20:53:03Z,metric_name3,1,prometheus\r\n,,2,2018-12-18T20:53:13Z,metric_name3,2,prometheus\r\n,,2,2018-12-18T20:53:23Z,metric_name3,1,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   41,
					},
					File:   "resets_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,2,prometheus\r\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:   "resets_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:   "resets_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,2,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   33,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,double,string\r\n#group,false,false,true,true,true,false,true\r\n#default,outData,,,,,,\r\n,result,table,_start,_stop,_field,_value,_measurement\r\n,,0,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name1,0,prometheus\r\n,,1,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name2,0,prometheus\r\n,,2,2018-12-01T00:00:00Z,2030-01-01T00:00:00Z,metric_name3,2,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 23,
						Line:   44,
					},
					File:   "resets_test.flux",
					Source: "t_resets = (table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.resets()",
					Start: ast.Position{
						Column: 1,
						Line:   42,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 9,
							Line:   42,
						},
						File:   "resets_test.flux",
						Source: "t_resets",
						Start: ast.Position{
							Column: 1,
							Line:   42,
						},
					},
				},
				Name: "t_resets",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 23,
							Line:   44,
						},
						File:   "resets_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.resets()",
						Start: ast.Position{
							Column: 12,
							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: 31,
										Line:   42,
									},
									File:   "resets_test.flux",
									Source: "table",
									Start: ast.Position{
										Column: 26,
										Line:   42,
									},
								},
							},
							Name: "table",
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   43,
								},
								File:   "resets_test.flux",
								Source: "table\n    |> range(start: 2018-12-01T00:00:00Z)",
								Start: ast.Position{
									Column: 26,
									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:   43,
										},
										File:   "resets_test.flux",
										Source: "start: 2018-12-01T00:00:00Z",
										Start: ast.Position{
											Column: 14,
											Line:   43,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   43,
											},
											File:   "resets_test.flux",
											Source: "start: 2018-12-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   43,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 19,
													Line:   43,
												},
												File:   "resets_test.flux",
												Source: "start",
												Start: ast.Position{
													Column: 14,
													Line:   43,
												},
											},
										},
										Name: "start",
									},
									Separator: nil,
									Value: &ast.DateTimeLiteral{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   43,
												},
												File:   "resets_test.flux",
												Source: "2018-12-01T00:00:00Z",
												Start: ast.Position{
													Column: 21,
													Line:   43,
												},
											},
										},
										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: 42,
										Line:   43,
									},
									File:   "resets_test.flux",
									Source: "range(start: 2018-12-01T00:00:00Z)",
									Start: ast.Position{
										Column: 8,
										Line:   43,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 13,
											Line:   43,
										},
										File:   "resets_test.flux",
										Source: "range",
										Start: ast.Position{
											Column: 8,
											Line:   43,
										},
									},
								},
								Name: "range",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 23,
								Line:   44,
							},
							File:   "resets_test.flux",
							Source: "table\n    |> range(start: 2018-12-01T00:00:00Z)\n    |> promql.resets()",
							Start: ast.Position{
								Column: 26,
								Line:   42,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 23,
									Line:   44,
								},
								File:   "resets_test.flux",
								Source: "promql.resets()",
								Start: ast.Position{
									Column: 8,
									Line:   44,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 21,
										Line:   44,
									},
									File:   "resets_test.flux",
									Source: "promql.resets",
									Start: ast.Position{
										Column: 8,
										Line:   44,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   44,
										},
										File:   "resets_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   44,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 21,
											Line:   44,
										},
										File:   "resets_test.flux",
										Source: "resets",
										Start: ast.Position{
											Column: 15,
											Line:   44,
										},
									},
								},
								Name: "resets",
							},
							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:   42,
							},
							File:   "resets_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 13,
								Line:   42,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 18,
									Line:   42,
								},
								File:   "resets_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 13,
									Line:   42,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 21,
								Line:   42,
							},
							File:   "resets_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 19,
								Line:   42,
							},
						},
					}},
				}},
				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:   "resets_test.flux",
						Source: "_resets = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets})",
						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:   "resets_test.flux",
							Source: "_resets",
							Start: ast.Position{
								Column: 6,
								Line:   46,
							},
						},
					},
					Name: "_resets",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 116,
								Line:   46,
							},
							File:   "resets_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets})",
							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:   "resets_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets})",
								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:   "resets_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets}",
									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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_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:   "resets_test.flux",
										Source: "fn: t_resets",
										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:   "resets_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:   "resets_test.flux",
											Source: "t_resets",
											Start: ast.Position{
												Column: 106,
												Line:   46,
											},
										},
									},
									Name: "t_resets",
								},
							}},
							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:   "resets_test.flux",
					Source: "test _resets = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_resets})",
					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:   "resets_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:   "resets_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: 25,
						Line:   5,
					},
					File:   "resets_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "resets_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "resets_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "resets_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "resets_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 122,
					Line:   38,
				},
				File:   "timestamp_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,1543694410.123,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,1543780820.123,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,1543867230.123,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,1546113640.123,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,1546200050.123,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,1546286460.123,prometheus\r\n\"\nt_timestamp = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n\ntest _timestamp = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp})",
				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:   "timestamp_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:   "timestamp_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:   "timestamp_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:   "timestamp_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:   "timestamp_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:   "timestamp_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,0,prometheus\r\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:   "timestamp_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:   "timestamp_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,0,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,0,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,0,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,0,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,0,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "timestamp_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,1543694410.123,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,1543780820.123,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,1543867230.123,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,1546113640.123,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,1546200050.123,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,1546286460.123,prometheus\r\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:   "timestamp_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:   32,
						},
						File:   "timestamp_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,1543694410.123,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,1543780820.123,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,1543867230.123,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,1546113640.123,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,1546200050.123,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,1546286460.123,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-12-01T20:00:10.123Z,metric_name,1543694410.123,prometheus\r\n,,0,2018-12-02T20:00:20.123Z,metric_name,1543780820.123,prometheus\r\n,,0,2018-12-03T20:00:30.123Z,metric_name,1543867230.123,prometheus\r\n,,0,2018-12-29T20:00:40.123Z,metric_name,1546113640.123,prometheus\r\n,,0,2018-12-30T20:00:50.123Z,metric_name,1546200050.123,prometheus\r\n,,0,2018-12-31T20:01:00.123Z,metric_name,1546286460.123,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 26,
						Line:   36,
					},
					File:   "timestamp_test.flux",
					Source: "t_timestamp = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 12,
							Line:   33,
						},
						File:   "timestamp_test.flux",
						Source: "t_timestamp",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_timestamp",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 26,
							Line:   36,
						},
						File:   "timestamp_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
						Start: ast.Position{
							Column: 15,
							Line:   33,
						},
					},
				},
				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: 34,
											Line:   33,
										},
										File:   "timestamp_test.flux",
										Source: "table",
										Start: ast.Position{
											Column: 29,
											Line:   33,
										},
									},
								},
								Name: "table",
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   34,
									},
									File:   "timestamp_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
									Start: ast.Position{
										Column: 29,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   34,
											},
											File:   "timestamp_test.flux",
											Source: "start: 1980-01-01T00:00:00Z",
											Start: ast.Position{
												Column: 14,
												Line:   34,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "timestamp_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 19,
														Line:   34,
													},
													File:   "timestamp_test.flux",
													Source: "start",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Name: "start",
										},
										Separator: nil,
										Value: &ast.DateTimeLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "timestamp_test.flux",
													Source: "1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 21,
														Line:   34,
													},
												},
											},
											Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "timestamp_test.flux",
										Source: "range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 8,
											Line:   34,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 13,
												Line:   34,
											},
											File:   "timestamp_test.flux",
											Source: "range",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Name: "range",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 42,
									Line:   35,
								},
								File:   "timestamp_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
								Start: ast.Position{
									Column: 29,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: []ast.Expression{&ast.ObjectExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 41,
											Line:   35,
										},
										File:   "timestamp_test.flux",
										Source: "columns: [\"_start\", \"_stop\"]",
										Start: ast.Position{
											Column: 13,
											Line:   35,
										},
									},
								},
								Lbrace: nil,
								Properties: []*ast.Property{&ast.Property{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "timestamp_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Comma: nil,
									Key: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 20,
													Line:   35,
												},
												File:   "timestamp_test.flux",
												Source: "columns",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Name: "columns",
									},
									Separator: nil,
									Value: &ast.ArrayExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "timestamp_test.flux",
												Source: "[\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 22,
													Line:   35,
												},
											},
										},
										Elements: []ast.Expression{&ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 31,
														Line:   35,
													},
													File:   "timestamp_test.flux",
													Source: "\"_start\"",
													Start: ast.Position{
														Column: 23,
														Line:   35,
													},
												},
											},
											Value: "_start",
										}, &ast.StringLiteral{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 40,
														Line:   35,
													},
													File:   "timestamp_test.flux",
													Source: "\"_stop\"",
													Start: ast.Position{
														Column: 33,
														Line:   35,
													},
												},
											},
											Value: "_stop",
										}},
										Lbrack: nil,
										Rbrack: nil,
									},
								}},
								Rbrace: nil,
								With:   nil,
							}},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "timestamp_test.flux",
									Source: "drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 8,
										Line:   35,
									},
								},
							},
							Callee: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 12,
											Line:   35,
										},
										File:   "timestamp_test.flux",
										Source: "drop",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Name: "drop",
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 26,
								Line:   36,
							},
							File:   "timestamp_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
							Start: ast.Position{
								Column: 29,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: nil,
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "timestamp_test.flux",
								Source: "promql.timestamp()",
								Start: ast.Position{
									Column: 8,
									Line:   36,
								},
							},
						},
						Callee: &ast.MemberExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 24,
										Line:   36,
									},
									File:   "timestamp_test.flux",
									Source: "promql.timestamp",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Lbrack: nil,
							Object: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 14,
											Line:   36,
										},
										File:   "timestamp_test.flux",
										Source: "promql",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Name: "promql",
							},
							Property: &ast.Identifier{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "timestamp_test.flux",
										Source: "timestamp",
										Start: ast.Position{
											Column: 15,
											Line:   36,
										},
									},
								},
								Name: "timestamp",
							},
							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:   33,
							},
							File:   "timestamp_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 16,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 21,
									Line:   33,
								},
								File:   "timestamp_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 16,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 24,
								Line:   33,
							},
							File:   "timestamp_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 22,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 122,
							Line:   38,
						},
						File:   "timestamp_test.flux",
						Source: "_timestamp = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp})",
						Start: ast.Position{
							Column: 6,
							Line:   38,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 16,
								Line:   38,
							},
							File:   "timestamp_test.flux",
							Source: "_timestamp",
							Start: ast.Position{
								Column: 6,
								Line:   38,
							},
						},
					},
					Name: "_timestamp",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 122,
								Line:   38,
							},
							File:   "timestamp_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp})",
							Start: ast.Position{
								Column: 19,
								Line:   38,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 122,
									Line:   38,
								},
								File:   "timestamp_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp})",
								Start: ast.Position{
									Column: 25,
									Line:   38,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 121,
										Line:   38,
									},
									File:   "timestamp_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp}",
									Start: ast.Position{
										Column: 26,
										Line:   38,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 66,
											Line:   38,
										},
										File:   "timestamp_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 27,
											Line:   38,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 32,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 27,
												Line:   38,
											},
										},
									},
									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: 65,
													Line:   38,
												},
												File:   "timestamp_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 54,
													Line:   38,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 65,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 54,
														Line:   38,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 57,
															Line:   38,
														},
														File:   "timestamp_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 54,
															Line:   38,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 65,
															Line:   38,
														},
														File:   "timestamp_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 59,
															Line:   38,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 66,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 34,
												Line:   38,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 53,
													Line:   38,
												},
												File:   "timestamp_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 34,
													Line:   38,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 34,
														Line:   38,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 53,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 42,
														Line:   38,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 103,
											Line:   38,
										},
										File:   "timestamp_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 68,
											Line:   38,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 72,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 68,
												Line:   38,
											},
										},
									},
									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: 102,
													Line:   38,
												},
												File:   "timestamp_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 90,
													Line:   38,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 102,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 90,
														Line:   38,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 93,
															Line:   38,
														},
														File:   "timestamp_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 90,
															Line:   38,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 102,
															Line:   38,
														},
														File:   "timestamp_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 95,
															Line:   38,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 103,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 74,
												Line:   38,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 89,
													Line:   38,
												},
												File:   "timestamp_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 74,
													Line:   38,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 81,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 74,
														Line:   38,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 89,
														Line:   38,
													},
													File:   "timestamp_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 82,
														Line:   38,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 120,
											Line:   38,
										},
										File:   "timestamp_test.flux",
										Source: "fn: t_timestamp",
										Start: ast.Position{
											Column: 105,
											Line:   38,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 107,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 105,
												Line:   38,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 120,
												Line:   38,
											},
											File:   "timestamp_test.flux",
											Source: "t_timestamp",
											Start: ast.Position{
												Column: 109,
												Line:   38,
											},
										},
									},
									Name: "t_timestamp",
								},
							}},
							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: 122,
						Line:   38,
					},
					File:   "timestamp_test.flux",
					Source: "test _timestamp = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_timestamp})",
					Start: ast.Position{
						Column: 1,
						Line:   38,
					},
				},
			},
		}},
		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:   "timestamp_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:   "timestamp_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: 25,
						Line:   5,
					},
					File:   "timestamp_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "timestamp_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "timestamp_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "timestamp_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "timestamp_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}, &ast.File{
		BaseNode: ast.BaseNode{
			Comments: nil,
			Errors:   nil,
			Loc: &ast.SourceLocation{
				End: ast.Position{
					Column: 124,
					Line:   39,
				},
				File:   "year_test.flux",
				Source: "package promql_test\n\n\nimport \"testing\"\nimport \"internal/promql\"\n\noption now = () => 2030-01-01T00:00:00Z\n\ninData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"\noutData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,2018,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,2019,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,2020,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,2021,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,2022,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,2023,prometheus\r\n\"\nt_promqlYear = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)}))\n\ntest _promqlYear = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear})",
				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:   "year_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:   "year_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:   "year_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:   "year_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:   "year_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:   "year_test.flux",
					Source: "inData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,0,prometheus\r\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:   "year_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:   "year_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,0,prometheus\r\n\"",
						Start: ast.Position{
							Column: 10,
							Line:   9,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,inData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,0,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,0,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,0,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,0,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,0,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,0,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 2,
						Line:   32,
					},
					File:   "year_test.flux",
					Source: "outData = \"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,2018,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,2019,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,2020,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,2021,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,2022,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,2023,prometheus\r\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:   "year_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:   32,
						},
						File:   "year_test.flux",
						Source: "\"\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,2018,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,2019,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,2020,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,2021,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,2022,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,2023,prometheus\r\n\"",
						Start: ast.Position{
							Column: 11,
							Line:   21,
						},
					},
				},
				Value: "\n#datatype,string,long,dateTime:RFC3339,string,double,string\r\n#group,false,false,false,true,false,true\r\n#default,outData,,,,,\r\n,result,table,_time,_field,_value,_measurement\r\n,,0,2018-01-03T20:00:00Z,metric_name,2018,prometheus\r\n,,0,2019-02-04T20:00:00Z,metric_name,2019,prometheus\r\n,,0,2020-03-05T20:00:00Z,metric_name,2020,prometheus\r\n,,0,2021-10-06T20:00:00Z,metric_name,2021,prometheus\r\n,,0,2022-11-07T20:00:00Z,metric_name,2022,prometheus\r\n,,0,2023-12-08T20:00:00Z,metric_name,2023,prometheus\r\n",
			},
		}, &ast.VariableAssignment{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 81,
						Line:   37,
					},
					File:   "year_test.flux",
					Source: "t_promqlYear = (table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)}))",
					Start: ast.Position{
						Column: 1,
						Line:   33,
					},
				},
			},
			ID: &ast.Identifier{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 13,
							Line:   33,
						},
						File:   "year_test.flux",
						Source: "t_promqlYear",
						Start: ast.Position{
							Column: 1,
							Line:   33,
						},
					},
				},
				Name: "t_promqlYear",
			},
			Init: &ast.FunctionExpression{
				Arrow: nil,
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 81,
							Line:   37,
						},
						File:   "year_test.flux",
						Source: "(table=<-) => table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)}))",
						Start: ast.Position{
							Column: 16,
							Line:   33,
						},
					},
				},
				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: 35,
												Line:   33,
											},
											File:   "year_test.flux",
											Source: "table",
											Start: ast.Position{
												Column: 30,
												Line:   33,
											},
										},
									},
									Name: "table",
								},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   34,
										},
										File:   "year_test.flux",
										Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)",
										Start: ast.Position{
											Column: 30,
											Line:   33,
										},
									},
								},
								Call: &ast.CallExpression{
									Arguments: []ast.Expression{&ast.ObjectExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   34,
												},
												File:   "year_test.flux",
												Source: "start: 1980-01-01T00:00:00Z",
												Start: ast.Position{
													Column: 14,
													Line:   34,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   34,
													},
													File:   "year_test.flux",
													Source: "start: 1980-01-01T00:00:00Z",
													Start: ast.Position{
														Column: 14,
														Line:   34,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 19,
															Line:   34,
														},
														File:   "year_test.flux",
														Source: "start",
														Start: ast.Position{
															Column: 14,
															Line:   34,
														},
													},
												},
												Name: "start",
											},
											Separator: nil,
											Value: &ast.DateTimeLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 41,
															Line:   34,
														},
														File:   "year_test.flux",
														Source: "1980-01-01T00:00:00Z",
														Start: ast.Position{
															Column: 21,
															Line:   34,
														},
													},
												},
												Value: parser.MustParseTime("1980-01-01T00:00:00Z"),
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 42,
												Line:   34,
											},
											File:   "year_test.flux",
											Source: "range(start: 1980-01-01T00:00:00Z)",
											Start: ast.Position{
												Column: 8,
												Line:   34,
											},
										},
									},
									Callee: &ast.Identifier{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 13,
													Line:   34,
												},
												File:   "year_test.flux",
												Source: "range",
												Start: ast.Position{
													Column: 8,
													Line:   34,
												},
											},
										},
										Name: "range",
									},
									Lparen: nil,
									Rparen: nil,
								},
							},
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 42,
										Line:   35,
									},
									File:   "year_test.flux",
									Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])",
									Start: ast.Position{
										Column: 30,
										Line:   33,
									},
								},
							},
							Call: &ast.CallExpression{
								Arguments: []ast.Expression{&ast.ObjectExpression{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 41,
												Line:   35,
											},
											File:   "year_test.flux",
											Source: "columns: [\"_start\", \"_stop\"]",
											Start: ast.Position{
												Column: 13,
												Line:   35,
											},
										},
									},
									Lbrace: nil,
									Properties: []*ast.Property{&ast.Property{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 41,
													Line:   35,
												},
												File:   "year_test.flux",
												Source: "columns: [\"_start\", \"_stop\"]",
												Start: ast.Position{
													Column: 13,
													Line:   35,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 20,
														Line:   35,
													},
													File:   "year_test.flux",
													Source: "columns",
													Start: ast.Position{
														Column: 13,
														Line:   35,
													},
												},
											},
											Name: "columns",
										},
										Separator: nil,
										Value: &ast.ArrayExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 41,
														Line:   35,
													},
													File:   "year_test.flux",
													Source: "[\"_start\", \"_stop\"]",
													Start: ast.Position{
														Column: 22,
														Line:   35,
													},
												},
											},
											Elements: []ast.Expression{&ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 31,
															Line:   35,
														},
														File:   "year_test.flux",
														Source: "\"_start\"",
														Start: ast.Position{
															Column: 23,
															Line:   35,
														},
													},
												},
												Value: "_start",
											}, &ast.StringLiteral{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 40,
															Line:   35,
														},
														File:   "year_test.flux",
														Source: "\"_stop\"",
														Start: ast.Position{
															Column: 33,
															Line:   35,
														},
													},
												},
												Value: "_stop",
											}},
											Lbrack: nil,
											Rbrack: nil,
										},
									}},
									Rbrace: nil,
									With:   nil,
								}},
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 42,
											Line:   35,
										},
										File:   "year_test.flux",
										Source: "drop(columns: [\"_start\", \"_stop\"])",
										Start: ast.Position{
											Column: 8,
											Line:   35,
										},
									},
								},
								Callee: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 12,
												Line:   35,
											},
											File:   "year_test.flux",
											Source: "drop",
											Start: ast.Position{
												Column: 8,
												Line:   35,
											},
										},
									},
									Name: "drop",
								},
								Lparen: nil,
								Rparen: nil,
							},
						},
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 26,
									Line:   36,
								},
								File:   "year_test.flux",
								Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()",
								Start: ast.Position{
									Column: 30,
									Line:   33,
								},
							},
						},
						Call: &ast.CallExpression{
							Arguments: nil,
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 26,
										Line:   36,
									},
									File:   "year_test.flux",
									Source: "promql.timestamp()",
									Start: ast.Position{
										Column: 8,
										Line:   36,
									},
								},
							},
							Callee: &ast.MemberExpression{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 24,
											Line:   36,
										},
										File:   "year_test.flux",
										Source: "promql.timestamp",
										Start: ast.Position{
											Column: 8,
											Line:   36,
										},
									},
								},
								Lbrack: nil,
								Object: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 14,
												Line:   36,
											},
											File:   "year_test.flux",
											Source: "promql",
											Start: ast.Position{
												Column: 8,
												Line:   36,
											},
										},
									},
									Name: "promql",
								},
								Property: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 24,
												Line:   36,
											},
											File:   "year_test.flux",
											Source: "timestamp",
											Start: ast.Position{
												Column: 15,
												Line:   36,
											},
										},
									},
									Name: "timestamp",
								},
								Rbrack: nil,
							},
							Lparen: nil,
							Rparen: nil,
						},
					},
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 81,
								Line:   37,
							},
							File:   "year_test.flux",
							Source: "table\n    |> range(start: 1980-01-01T00:00:00Z)\n    |> drop(columns: [\"_start\", \"_stop\"])\n    |> promql.timestamp()\n    |> map(fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)}))",
							Start: ast.Position{
								Column: 30,
								Line:   33,
							},
						},
					},
					Call: &ast.CallExpression{
						Arguments: []ast.Expression{&ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 80,
										Line:   37,
									},
									File:   "year_test.flux",
									Source: "fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)})",
									Start: ast.Position{
										Column: 12,
										Line:   37,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 80,
											Line:   37,
										},
										File:   "year_test.flux",
										Source: "fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)})",
										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: 14,
												Line:   37,
											},
											File:   "year_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 12,
												Line:   37,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.FunctionExpression{
									Arrow: nil,
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 80,
												Line:   37,
											},
											File:   "year_test.flux",
											Source: "(r) => ({r with _value: promql.promqlYear(timestamp: r._value)})",
											Start: ast.Position{
												Column: 16,
												Line:   37,
											},
										},
									},
									Body: &ast.ParenExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 80,
													Line:   37,
												},
												File:   "year_test.flux",
												Source: "({r with _value: promql.promqlYear(timestamp: r._value)})",
												Start: ast.Position{
													Column: 23,
													Line:   37,
												},
											},
										},
										Expression: &ast.ObjectExpression{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 79,
														Line:   37,
													},
													File:   "year_test.flux",
													Source: "{r with _value: promql.promqlYear(timestamp: r._value)}",
													Start: ast.Position{
														Column: 24,
														Line:   37,
													},
												},
											},
											Lbrace: nil,
											Properties: []*ast.Property{&ast.Property{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 78,
															Line:   37,
														},
														File:   "year_test.flux",
														Source: "_value: promql.promqlYear(timestamp: r._value)",
														Start: ast.Position{
															Column: 32,
															Line:   37,
														},
													},
												},
												Comma: nil,
												Key: &ast.Identifier{
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 38,
																Line:   37,
															},
															File:   "year_test.flux",
															Source: "_value",
															Start: ast.Position{
																Column: 32,
																Line:   37,
															},
														},
													},
													Name: "_value",
												},
												Separator: nil,
												Value: &ast.CallExpression{
													Arguments: []ast.Expression{&ast.ObjectExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 77,
																	Line:   37,
																},
																File:   "year_test.flux",
																Source: "timestamp: r._value",
																Start: ast.Position{
																	Column: 58,
																	Line:   37,
																},
															},
														},
														Lbrace: nil,
														Properties: []*ast.Property{&ast.Property{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 77,
																		Line:   37,
																	},
																	File:   "year_test.flux",
																	Source: "timestamp: r._value",
																	Start: ast.Position{
																		Column: 58,
																		Line:   37,
																	},
																},
															},
															Comma: nil,
															Key: &ast.Identifier{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 67,
																			Line:   37,
																		},
																		File:   "year_test.flux",
																		Source: "timestamp",
																		Start: ast.Position{
																			Column: 58,
																			Line:   37,
																		},
																	},
																},
																Name: "timestamp",
															},
															Separator: nil,
															Value: &ast.MemberExpression{
																BaseNode: ast.BaseNode{
																	Comments: nil,
																	Errors:   nil,
																	Loc: &ast.SourceLocation{
																		End: ast.Position{
																			Column: 77,
																			Line:   37,
																		},
																		File:   "year_test.flux",
																		Source: "r._value",
																		Start: ast.Position{
																			Column: 69,
																			Line:   37,
																		},
																	},
																},
																Lbrack: nil,
																Object: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 70,
																				Line:   37,
																			},
																			File:   "year_test.flux",
																			Source: "r",
																			Start: ast.Position{
																				Column: 69,
																				Line:   37,
																			},
																		},
																	},
																	Name: "r",
																},
																Property: &ast.Identifier{
																	BaseNode: ast.BaseNode{
																		Comments: nil,
																		Errors:   nil,
																		Loc: &ast.SourceLocation{
																			End: ast.Position{
																				Column: 77,
																				Line:   37,
																			},
																			File:   "year_test.flux",
																			Source: "_value",
																			Start: ast.Position{
																				Column: 71,
																				Line:   37,
																			},
																		},
																	},
																	Name: "_value",
																},
																Rbrack: nil,
															},
														}},
														Rbrace: nil,
														With:   nil,
													}},
													BaseNode: ast.BaseNode{
														Comments: nil,
														Errors:   nil,
														Loc: &ast.SourceLocation{
															End: ast.Position{
																Column: 78,
																Line:   37,
															},
															File:   "year_test.flux",
															Source: "promql.promqlYear(timestamp: r._value)",
															Start: ast.Position{
																Column: 40,
																Line:   37,
															},
														},
													},
													Callee: &ast.MemberExpression{
														BaseNode: ast.BaseNode{
															Comments: nil,
															Errors:   nil,
															Loc: &ast.SourceLocation{
																End: ast.Position{
																	Column: 57,
																	Line:   37,
																},
																File:   "year_test.flux",
																Source: "promql.promqlYear",
																Start: ast.Position{
																	Column: 40,
																	Line:   37,
																},
															},
														},
														Lbrack: nil,
														Object: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 46,
																		Line:   37,
																	},
																	File:   "year_test.flux",
																	Source: "promql",
																	Start: ast.Position{
																		Column: 40,
																		Line:   37,
																	},
																},
															},
															Name: "promql",
														},
														Property: &ast.Identifier{
															BaseNode: ast.BaseNode{
																Comments: nil,
																Errors:   nil,
																Loc: &ast.SourceLocation{
																	End: ast.Position{
																		Column: 57,
																		Line:   37,
																	},
																	File:   "year_test.flux",
																	Source: "promqlYear",
																	Start: ast.Position{
																		Column: 47,
																		Line:   37,
																	},
																},
															},
															Name: "promqlYear",
														},
														Rbrack: nil,
													},
													Lparen: nil,
													Rparen: nil,
												},
											}},
											Rbrace: nil,
											With: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 26,
															Line:   37,
														},
														File:   "year_test.flux",
														Source: "r",
														Start: ast.Position{
															Column: 25,
															Line:   37,
														},
													},
												},
												Name: "r",
											},
										},
										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:   37,
												},
												File:   "year_test.flux",
												Source: "r",
												Start: ast.Position{
													Column: 17,
													Line:   37,
												},
											},
										},
										Comma: nil,
										Key: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 18,
														Line:   37,
													},
													File:   "year_test.flux",
													Source: "r",
													Start: ast.Position{
														Column: 17,
														Line:   37,
													},
												},
											},
											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: 81,
									Line:   37,
								},
								File:   "year_test.flux",
								Source: "map(fn: (r) => ({r with _value: promql.promqlYear(timestamp: r._value)}))",
								Start: ast.Position{
									Column: 8,
									Line:   37,
								},
							},
						},
						Callee: &ast.Identifier{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 11,
										Line:   37,
									},
									File:   "year_test.flux",
									Source: "map",
									Start: ast.Position{
										Column: 8,
										Line:   37,
									},
								},
							},
							Name: "map",
						},
						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: 25,
								Line:   33,
							},
							File:   "year_test.flux",
							Source: "table=<-",
							Start: ast.Position{
								Column: 17,
								Line:   33,
							},
						},
					},
					Comma: nil,
					Key: &ast.Identifier{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 22,
									Line:   33,
								},
								File:   "year_test.flux",
								Source: "table",
								Start: ast.Position{
									Column: 17,
									Line:   33,
								},
							},
						},
						Name: "table",
					},
					Separator: nil,
					Value: &ast.PipeLiteral{BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 25,
								Line:   33,
							},
							File:   "year_test.flux",
							Source: "<-",
							Start: ast.Position{
								Column: 23,
								Line:   33,
							},
						},
					}},
				}},
				Rparan: nil,
			},
		}, &ast.TestStatement{
			Assignment: &ast.VariableAssignment{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 124,
							Line:   39,
						},
						File:   "year_test.flux",
						Source: "_promqlYear = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear})",
						Start: ast.Position{
							Column: 6,
							Line:   39,
						},
					},
				},
				ID: &ast.Identifier{
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 17,
								Line:   39,
							},
							File:   "year_test.flux",
							Source: "_promqlYear",
							Start: ast.Position{
								Column: 6,
								Line:   39,
							},
						},
					},
					Name: "_promqlYear",
				},
				Init: &ast.FunctionExpression{
					Arrow: nil,
					BaseNode: ast.BaseNode{
						Comments: nil,
						Errors:   nil,
						Loc: &ast.SourceLocation{
							End: ast.Position{
								Column: 124,
								Line:   39,
							},
							File:   "year_test.flux",
							Source: "() => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear})",
							Start: ast.Position{
								Column: 20,
								Line:   39,
							},
						},
					},
					Body: &ast.ParenExpression{
						BaseNode: ast.BaseNode{
							Comments: nil,
							Errors:   nil,
							Loc: &ast.SourceLocation{
								End: ast.Position{
									Column: 124,
									Line:   39,
								},
								File:   "year_test.flux",
								Source: "({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear})",
								Start: ast.Position{
									Column: 26,
									Line:   39,
								},
							},
						},
						Expression: &ast.ObjectExpression{
							BaseNode: ast.BaseNode{
								Comments: nil,
								Errors:   nil,
								Loc: &ast.SourceLocation{
									End: ast.Position{
										Column: 123,
										Line:   39,
									},
									File:   "year_test.flux",
									Source: "{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear}",
									Start: ast.Position{
										Column: 27,
										Line:   39,
									},
								},
							},
							Lbrace: nil,
							Properties: []*ast.Property{&ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 67,
											Line:   39,
										},
										File:   "year_test.flux",
										Source: "input: testing.loadStorage(csv: inData)",
										Start: ast.Position{
											Column: 28,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 33,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "input",
											Start: ast.Position{
												Column: 28,
												Line:   39,
											},
										},
									},
									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: 66,
													Line:   39,
												},
												File:   "year_test.flux",
												Source: "csv: inData",
												Start: ast.Position{
													Column: 55,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 66,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "csv: inData",
													Start: ast.Position{
														Column: 55,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 58,
															Line:   39,
														},
														File:   "year_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 55,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 66,
															Line:   39,
														},
														File:   "year_test.flux",
														Source: "inData",
														Start: ast.Position{
															Column: 60,
															Line:   39,
														},
													},
												},
												Name: "inData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 67,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "testing.loadStorage(csv: inData)",
											Start: ast.Position{
												Column: 35,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 54,
													Line:   39,
												},
												File:   "year_test.flux",
												Source: "testing.loadStorage",
												Start: ast.Position{
													Column: 35,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 42,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 35,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 54,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "loadStorage",
													Start: ast.Position{
														Column: 43,
														Line:   39,
													},
												},
											},
											Name: "loadStorage",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 104,
											Line:   39,
										},
										File:   "year_test.flux",
										Source: "want: testing.loadMem(csv: outData)",
										Start: ast.Position{
											Column: 69,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 73,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "want",
											Start: ast.Position{
												Column: 69,
												Line:   39,
											},
										},
									},
									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: 103,
													Line:   39,
												},
												File:   "year_test.flux",
												Source: "csv: outData",
												Start: ast.Position{
													Column: 91,
													Line:   39,
												},
											},
										},
										Lbrace: nil,
										Properties: []*ast.Property{&ast.Property{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 103,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "csv: outData",
													Start: ast.Position{
														Column: 91,
														Line:   39,
													},
												},
											},
											Comma: nil,
											Key: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 94,
															Line:   39,
														},
														File:   "year_test.flux",
														Source: "csv",
														Start: ast.Position{
															Column: 91,
															Line:   39,
														},
													},
												},
												Name: "csv",
											},
											Separator: nil,
											Value: &ast.Identifier{
												BaseNode: ast.BaseNode{
													Comments: nil,
													Errors:   nil,
													Loc: &ast.SourceLocation{
														End: ast.Position{
															Column: 103,
															Line:   39,
														},
														File:   "year_test.flux",
														Source: "outData",
														Start: ast.Position{
															Column: 96,
															Line:   39,
														},
													},
												},
												Name: "outData",
											},
										}},
										Rbrace: nil,
										With:   nil,
									}},
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 104,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "testing.loadMem(csv: outData)",
											Start: ast.Position{
												Column: 75,
												Line:   39,
											},
										},
									},
									Callee: &ast.MemberExpression{
										BaseNode: ast.BaseNode{
											Comments: nil,
											Errors:   nil,
											Loc: &ast.SourceLocation{
												End: ast.Position{
													Column: 90,
													Line:   39,
												},
												File:   "year_test.flux",
												Source: "testing.loadMem",
												Start: ast.Position{
													Column: 75,
													Line:   39,
												},
											},
										},
										Lbrack: nil,
										Object: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 82,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "testing",
													Start: ast.Position{
														Column: 75,
														Line:   39,
													},
												},
											},
											Name: "testing",
										},
										Property: &ast.Identifier{
											BaseNode: ast.BaseNode{
												Comments: nil,
												Errors:   nil,
												Loc: &ast.SourceLocation{
													End: ast.Position{
														Column: 90,
														Line:   39,
													},
													File:   "year_test.flux",
													Source: "loadMem",
													Start: ast.Position{
														Column: 83,
														Line:   39,
													},
												},
											},
											Name: "loadMem",
										},
										Rbrack: nil,
									},
									Lparen: nil,
									Rparen: nil,
								},
							}, &ast.Property{
								BaseNode: ast.BaseNode{
									Comments: nil,
									Errors:   nil,
									Loc: &ast.SourceLocation{
										End: ast.Position{
											Column: 122,
											Line:   39,
										},
										File:   "year_test.flux",
										Source: "fn: t_promqlYear",
										Start: ast.Position{
											Column: 106,
											Line:   39,
										},
									},
								},
								Comma: nil,
								Key: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 108,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "fn",
											Start: ast.Position{
												Column: 106,
												Line:   39,
											},
										},
									},
									Name: "fn",
								},
								Separator: nil,
								Value: &ast.Identifier{
									BaseNode: ast.BaseNode{
										Comments: nil,
										Errors:   nil,
										Loc: &ast.SourceLocation{
											End: ast.Position{
												Column: 122,
												Line:   39,
											},
											File:   "year_test.flux",
											Source: "t_promqlYear",
											Start: ast.Position{
												Column: 110,
												Line:   39,
											},
										},
									},
									Name: "t_promqlYear",
								},
							}},
							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: 124,
						Line:   39,
					},
					File:   "year_test.flux",
					Source: "test _promqlYear = () => ({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_promqlYear})",
					Start: ast.Position{
						Column: 1,
						Line:   39,
					},
				},
			},
		}},
		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:   "year_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:   "year_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: 25,
						Line:   5,
					},
					File:   "year_test.flux",
					Source: "import \"internal/promql\"",
					Start: ast.Position{
						Column: 1,
						Line:   5,
					},
				},
			},
			Path: &ast.StringLiteral{
				BaseNode: ast.BaseNode{
					Comments: nil,
					Errors:   nil,
					Loc: &ast.SourceLocation{
						End: ast.Position{
							Column: 25,
							Line:   5,
						},
						File:   "year_test.flux",
						Source: "\"internal/promql\"",
						Start: ast.Position{
							Column: 8,
							Line:   5,
						},
					},
				},
				Value: "internal/promql",
			},
		}},
		Metadata: "parser-type=rust",
		Name:     "year_test.flux",
		Package: &ast.PackageClause{
			BaseNode: ast.BaseNode{
				Comments: nil,
				Errors:   nil,
				Loc: &ast.SourceLocation{
					End: ast.Position{
						Column: 20,
						Line:   1,
					},
					File:   "year_test.flux",
					Source: "package promql_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: 20,
							Line:   1,
						},
						File:   "year_test.flux",
						Source: "promql_test",
						Start: ast.Position{
							Column: 9,
							Line:   1,
						},
					},
				},
				Name: "promql_test",
			},
		},
	}},
	Package: "promql_test",
	Path:    "testing/promql",
}}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

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