func TestGoldenFrameJSON(t *testing.T) {
	f := goldenDF()
	a, err := f.MarshalArrow()
	require.NoError(t, err)
	b, err := data.FrameToJSON(f, data.IncludeAll)  
	require.NoError(t, err)
	strF := string(b)
	b, err = data.ArrowBufferToJSON(a, data.IncludeAll)
	require.NoError(t, err)
	strA := string(b)
	fmt.Println(`{ "arrow": `)
	fmt.Println(strA)
	fmt.Println(`, "slice": `)
	fmt.Println(strF)
	fmt.Println(`}`)
	assert.JSONEq(t, strF, strA, "arrow and frames should produce the same json")
	goldenFile := filepath.Join("testdata", "all_types.golden.json")
	if _, err := os.Stat(goldenFile); os.IsNotExist(err) {
		_ = ioutil.WriteFile(goldenFile, b, 0600)
		assert.FailNow(t, "wrote golden file")
	}
	b, err = ioutil.ReadFile(goldenFile)
	require.NoError(t, err)
	strG := string(b)
	assert.JSONEq(t, strF, strG, "saved json must match produced json")
	out := &data.Frame{}
	err = json.Unmarshal(b, out)
	require.NoError(t, err)
	if diff := cmp.Diff(f, out, data.FrameTestCompareOptions()...); diff != "" {
		t.Errorf("Result mismatch (-want +got):\n%s", diff)
	}
}
TestGoldenFrameJSON makes sure that the JSON produced from arrow and dataframes match
package data_test
import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"sync"
	"testing"
	"text/template"
	jsoniter "github.com/json-iterator/go"
	"github.com/google/go-cmp/cmp"
	"github.com/grafana/grafana-plugin-sdk-go/data"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)