sftest/cases.go (189 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package sftest import structform "github.com/elastic/go-structform" var Samples = concatSamples( SamplesPrimitives, SamplesArr, SamplesObj, SamplesCombinations, ) var SamplesPrimitives = []Recording{ // simple primitives {NilRec{}}, // "null" {BoolRec{true}}, // "true" {BoolRec{false}}, // "false" {StringRec{"test"}}, {StringRec{`test with " being special`}}, {StringRec{""}}, // int types {IntRec{8}}, {IntRec{42}}, {IntRec{100}}, {IntRec{-90}}, {IntRec{12345678}}, {IntRec{-12345678}}, {Int8Rec{8}}, {Int8Rec{42}}, {Int8Rec{100}}, {Int8Rec{-90}}, {Int16Rec{8}}, {Int16Rec{42}}, {Int16Rec{100}}, {Int16Rec{-90}}, {Int16Rec{500}}, {Int16Rec{-500}}, {Int32Rec{8}}, {Int32Rec{42}}, {Int32Rec{100}}, {Int32Rec{-90}}, {Int32Rec{500}}, {Int32Rec{-500}}, {Int32Rec{12345678}}, {Int32Rec{-12345678}}, {Int64Rec{8}}, {Int64Rec{42}}, {Int64Rec{100}}, {Int64Rec{-90}}, {Int64Rec{500}}, {Int64Rec{-500}}, {Int64Rec{123456781234}}, {Int64Rec{-123456781234}}, // uint types {UintRec{8}}, {UintRec{42}}, {UintRec{100}}, {UintRec{12345678}}, {Uint8Rec{8}}, {Uint8Rec{42}}, {Uint8Rec{100}}, {ByteRec{8}}, {ByteRec{42}}, {ByteRec{100}}, {Uint16Rec{8}}, {Uint16Rec{42}}, {Uint16Rec{100}}, {Uint16Rec{500}}, {Uint32Rec{8}}, {Uint32Rec{42}}, {Uint32Rec{100}}, {Uint32Rec{500}}, {Uint32Rec{12345678}}, {Uint64Rec{8}}, {Uint64Rec{42}}, {Uint64Rec{100}}, {Uint64Rec{500}}, {Uint64Rec{123456781234}}, // float types {Float32Rec{3.14}}, {Float32Rec{-3.14}}, {Float64Rec{3.14}}, {Float64Rec{-3.14}}, } var SamplesArr = []Recording{ // empty arrays `[]` Arr(0, structform.AnyType), Arr(-1, structform.AnyType), // nested empty array `[[]]` Arr(1, structform.AnyType, Arr(0, structform.AnyType), ), Arr(-1, structform.AnyType, Arr(0, structform.AnyType), ), Arr(-1, structform.AnyType, Arr(-1, structform.AnyType), ), // array with arbitrary values Arr(-1, structform.AnyType, NilRec{}, BoolRec{true}, BoolRec{false}, IntRec{1}, Int64Rec{12345678910}, Float32Rec{3.14}, Float64Rec{7e+09}, StringRec{"test"}, ), Arr(2, structform.AnyType, Int8Rec{1}, BoolRec{true}, ), { Int8ArrRec{[]int8{1, 2, 3}}, }, { StringArrRec{[]string{"a", "b", "c"}}, }, } var SamplesObj = []Recording{ // empty object '{}' Obj(-1, structform.AnyType), Obj(0, structform.AnyType), Obj(-1, structform.AnyType, "a", NilRec{}, ), // objects Obj(-1, structform.AnyType, "a", StringRec{"test"}), Obj(1, structform.StringType, "a", StringRec{"test"}), Obj(-1, structform.AnyType, "a", BoolRec{true}, "b", BoolRec{false}, ), Obj(2, structform.AnyType, "a", BoolRec{true}, "b", BoolRec{false}, ), Obj(-1, structform.BoolType, "a", BoolRec{true}, "b", BoolRec{false}, ), Obj(2, structform.BoolType, "a", BoolRec{true}, "b", BoolRec{false}, ), Obj(-1, structform.AnyType, "a", UintRec{1}, "b", Float64Rec{3.14}, "c", StringRec{"test"}, "d", BoolRec{true}, ), // typed objects { StringObjRec{map[string]string{ "a": "test1", "b": "test2", "c": "test3", }}, }, { UintObjRec{map[string]uint{ "a": 1, "b": 2, "c": 3, }}, }, } var SamplesCombinations = []Recording{ // objects in array Arr(-1, structform.AnyType, Obj(-1, structform.AnyType)), Arr(1, structform.AnyType, Obj(0, structform.AnyType)), Arr(-1, structform.AnyType, Obj(-1, structform.AnyType, "a", IntRec{-1}, ), Obj(1, structform.UintType, "a", UintRec{1}, ), ), Arr(2, structform.AnyType, Obj(-1, structform.AnyType, "a", IntRec{-1}, ), Obj(1, structform.UintType, "a", UintRec{1}, ), ), // array in object Obj(-1, structform.AnyType, "a", Arr(3, structform.IntType, IntRec{1}, IntRec{2}, IntRec{3}), ), Obj(1, structform.AnyType, "a", Arr(3, structform.IntType, IntRec{1}, IntRec{2}, IntRec{3}), ), Obj(1, structform.AnyType, "a", Int8ArrRec{[]int8{1, 2, 3}}, ), }