本文整理汇总了Golang中github.com/janelia-flyem/dvid/server.TestHTTP函数的典型用法代码示例。如果您正苦于以下问题:Golang TestHTTP函数的具体用法?Golang TestHTTP怎么用?Golang TestHTTP使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了TestHTTP函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestRequests
func TestRequests(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := initTestRepo()
config := dvid.NewConfig()
dataservice, err := datastore.NewData(uuid, syntype, "mysynapses", config)
if err != nil {
t.Fatalf("Error creating new data instance: %v\n", err)
}
data, ok := dataservice.(*Data)
if !ok {
t.Fatalf("Returned new data instance is not synapse.Data\n")
}
// PUT first batch of synapses
testJSON, err := json.Marshal(testData)
if err != nil {
t.Fatal(err)
}
url1 := fmt.Sprintf("%snode/%s/%s/elements", server.WebAPIPath, uuid, data.DataName())
server.TestHTTP(t, "POST", url1, strings.NewReader(string(testJSON)))
// GET synapses back within superset bounding box and make sure all data is there.
testResponse(t, testData, "%snode/%s/%s/elements/1000_1000_1000/0_0_0", server.WebAPIPath, uuid, data.DataName())
// Test subset GET
testResponse(t, expected3, "%snode/%s/%s/elements/5_5_5/126_60_97", server.WebAPIPath, uuid, data.DataName())
// Test Tag 1
tag := Tag("Synapse2")
synapse2 := getTag(tag, testData)
testResponse(t, synapse2, "%snode/%s/%s/tag/%s?relationships=true", server.WebAPIPath, uuid, data.DataName(), tag)
// Test Tag 2
tag2 := Tag("Zlt90")
zlt90 := getTag(tag2, testData)
testResponse(t, zlt90, "%snode/%s/%s/tag/%s?relationships=true", server.WebAPIPath, uuid, data.DataName(), tag2)
// Test move
url5 := fmt.Sprintf("%snode/%s/%s/move/127_63_99/127_64_100", server.WebAPIPath, uuid, data.DataName())
server.TestHTTP(t, "POST", url5, nil)
testResponse(t, afterMove, "%snode/%s/%s/elements/1000_1000_1000/0_0_0", server.WebAPIPath, uuid, data.DataName())
// --- check tag
synapse2 = getTag(tag, afterMove)
testResponse(t, synapse2, "%snode/%s/%s/tag/%s?relationships=true", server.WebAPIPath, uuid, data.DataName(), tag)
// Test delete
url6 := fmt.Sprintf("%snode/%s/%s/element/127_64_100", server.WebAPIPath, uuid, data.DataName())
server.TestHTTP(t, "DELETE", url6, nil)
testResponse(t, afterDelete, "%snode/%s/%s/elements/1000_1000_1000/0_0_0", server.WebAPIPath, uuid, data.DataName())
// --- check tag
synapse2 = getTag(tag, afterDelete)
testResponse(t, synapse2, "%snode/%s/%s/tag/%s?relationships=true", server.WebAPIPath, uuid, data.DataName(), tag)
}
开发者ID:tartavull,项目名称:dvid,代码行数:58,代码来源:annotation_test.go
示例2: TestFloatInstanceCreation
func TestFloatInstanceCreation(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
// Create new voxels instance with optional parameters
name := "weights"
metadata := fmt.Sprintf(`{
"typename": "float32blk",
"dataname": %q,
"blocksize": "64,43,28",
"VoxelSize": "13.1, 14.2, 15.3",
"VoxelUnits": "picometers,nanometers,microns"
}`, name)
apiStr := fmt.Sprintf("%srepo/%s/instance", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", apiStr, bytes.NewBufferString(metadata))
// Get metadata and make sure optional settings have been set.
apiStr = fmt.Sprintf("%snode/%s/%s/info", server.WebAPIPath, uuid, name)
result := server.TestHTTP(t, "GET", apiStr, nil)
var parsed = struct {
Base struct {
TypeName, Name string
}
Extended struct {
BlockSize dvid.Point3d
VoxelSize dvid.NdFloat32
VoxelUnits dvid.NdString
}
}{}
if err := json.Unmarshal(result, &parsed); err != nil {
t.Fatalf("Error parsing JSON response of new instance metadata: %v\n", err)
}
if parsed.Base.Name != name {
t.Errorf("Parsed new instance has unexpected name: %s != %s (expected)\n",
parsed.Base.Name, name)
}
if parsed.Base.TypeName != "float32blk" {
t.Errorf("Parsed new instance has unexpected type name: %s != uint8blk (expected)\n",
parsed.Base.TypeName)
}
if !parsed.Extended.BlockSize.Equals(dvid.Point3d{64, 43, 28}) {
t.Errorf("Bad block size in new uint8blk instance: %s\n", parsed.Extended.BlockSize)
}
if !parsed.Extended.VoxelSize.Equals(dvid.NdFloat32{13.1, 14.2, 15.3}) {
t.Errorf("Bad voxel size in new uint8blk instance: %s\n", parsed.Extended.VoxelSize)
}
if parsed.Extended.VoxelUnits[0] != "picometers" {
t.Errorf("Got %q for X voxel units, not picometers\n", parsed.Extended.VoxelUnits[0])
}
if parsed.Extended.VoxelUnits[1] != "nanometers" {
t.Errorf("Got %q for X voxel units, not picometers\n", parsed.Extended.VoxelUnits[0])
}
if parsed.Extended.VoxelUnits[2] != "microns" {
t.Errorf("Got %q for X voxel units, not picometers\n", parsed.Extended.VoxelUnits[0])
}
}
开发者ID:janelia-flyem,项目名称:dvid,代码行数:58,代码来源:float32_test.go
示例3: TestDiamondGetOnMerge
// Test added after error in getting two paths to the same ancestor k/v after merge.
func TestDiamondGetOnMerge(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := initTestRepo()
config := dvid.NewConfig()
dataservice, err := datastore.NewData(uuid, kvtype, "mergetest", config)
if err != nil {
t.Fatalf("Error creating new keyvalue instance: %v\n", err)
}
data, ok := dataservice.(*Data)
if !ok {
t.Fatalf("Returned new data instance is not roi.Data\n")
}
// PUT a value
key1 := "mykey"
value1 := "some stuff"
key1req := fmt.Sprintf("%snode/%s/%s/key/%s", server.WebAPIPath, uuid, data.DataName(), key1)
server.TestHTTP(t, "POST", key1req, strings.NewReader(value1))
if err = datastore.Commit(uuid, "my commit msg", []string{"stuff one", "stuff two"}); err != nil {
t.Errorf("Unable to lock root node %s: %v\n", uuid, err)
}
uuid2, err := datastore.NewVersion(uuid, "first child", nil)
if err != nil {
t.Fatalf("Unable to create 1st child off root %s: %v\n", uuid, err)
}
if err = datastore.Commit(uuid2, "first child", nil); err != nil {
t.Errorf("Unable to commit node %s: %v\n", uuid2, err)
}
uuid3, err := datastore.NewVersion(uuid, "second child", nil)
if err != nil {
t.Fatalf("Unable to create 2nd child off root %s: %v\n", uuid, err)
}
if err = datastore.Commit(uuid3, "second child", nil); err != nil {
t.Errorf("Unable to commit node %s: %v\n", uuid3, err)
}
child, err := datastore.Merge([]dvid.UUID{uuid2, uuid3}, "merging stuff", datastore.MergeConflictFree)
if err != nil {
t.Errorf("Error doing merge: %v\n", err)
}
// We should be able to see just the original uuid value of the k/v
childreq := fmt.Sprintf("%snode/%s/%s/key/%s", server.WebAPIPath, child, data.DataName(), key1)
returnValue := server.TestHTTP(t, "GET", childreq, nil)
if string(returnValue) != value1 {
t.Errorf("Error on merged child, key %q: expected %q, got %q\n", key1, value1, string(returnValue))
}
}
开发者ID:jmptrader,项目名称:dvid,代码行数:53,代码来源:keyvalue_test.go
示例4: TestCommitAndBranch
func TestCommitAndBranch(t *testing.T) {
tests.UseStore()
defer tests.CloseStore()
apiStr := fmt.Sprintf("%srepos", server.WebAPIPath)
r := server.TestHTTP(t, "POST", apiStr, nil)
var jsonResp map[string]interface{}
if err := json.Unmarshal(r, &jsonResp); err != nil {
t.Fatalf("Unable to unmarshal repo creation response: %s\n", string(r))
}
v, ok := jsonResp["root"]
if !ok {
t.Fatalf("No 'root' metadata returned: %s\n", string(r))
}
uuidStr, ok := v.(string)
if !ok {
t.Fatalf("Couldn't cast returned 'root' data (%v) into string.\n", v)
}
uuid := dvid.UUID(uuidStr)
// Shouldn't be able to create branch on open node.
branchReq := fmt.Sprintf("%snode/%s/branch", server.WebAPIPath, uuid)
server.TestBadHTTP(t, "POST", branchReq, nil)
// Add a keyvalue instance.
server.CreateTestInstance(t, uuid, "keyvalue", "mykv", dvid.Config{})
// Commit it.
payload := bytes.NewBufferString(`{"note": "This is my test commit", "log": ["line1", "line2", "some more stuff in a line"]}`)
apiStr = fmt.Sprintf("%snode/%s/commit", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", apiStr, payload)
// Make sure committed nodes can only be read.
// We shouldn't be able to write to keyvalue..
keyReq := fmt.Sprintf("%snode/%s/mykv/key/foo", server.WebAPIPath, uuid)
server.TestBadHTTP(t, "POST", keyReq, bytes.NewBufferString("some data"))
// Should be able to create branch now that we've committed parent.
respData := server.TestHTTP(t, "POST", branchReq, nil)
resp := struct {
Child dvid.UUID `json:"child"`
}{}
if err := json.Unmarshal(respData, &resp); err != nil {
t.Errorf("Expected 'child' JSON response. Got %s\n", string(respData))
}
// We should be able to write to that keyvalue now in the child.
keyReq = fmt.Sprintf("%snode/%s/mykv/key/foo", server.WebAPIPath, resp.Child)
server.TestHTTP(t, "POST", keyReq, bytes.NewBufferString("some data"))
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:51,代码来源:api_test.go
示例5: TestBlockAPI
func TestBlockAPI(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := initTestRepo()
grayscale := makeGrayscale(uuid, t, "grayscale")
// construct random blocks of data.
numBlockBytes := int32(grayscale.BlockSize().Prod())
testBlocks := 1001
var blockData []byte
for i := 0; i < testBlocks; i++ {
blockData = append(blockData, dvid.RandomBytes(numBlockBytes)...)
}
// set start of span
x := rand.Int31()
y := rand.Int31()
z := rand.Int31()
// Test uncompressed roundtrip
// send the blocks
blockReq := fmt.Sprintf("%snode/%s/grayscale/blocks/%d_%d_%d/%d", server.WebAPIPath, uuid, x, y, z, testBlocks)
server.TestHTTP(t, "POST", blockReq, bytes.NewBuffer(blockData))
// read same span of blocks
returnedData := server.TestHTTP(t, "GET", blockReq, nil)
// make sure blocks are same
totBytes := testBlocks * int(numBlockBytes)
if len(returnedData) != totBytes {
t.Errorf("Returned %d bytes, expected %d bytes", len(returnedData), totBytes)
}
if !reflect.DeepEqual(returnedData, blockData) {
t.Errorf("Returned block data != original block data\n")
}
// We should get blank blocks at different z
z += 1
blockReq = fmt.Sprintf("%snode/%s/grayscale/blocks/%d_%d_%d/%d", server.WebAPIPath, uuid, x, y, z, testBlocks)
returnedData = server.TestHTTP(t, "GET", blockReq, nil)
if len(returnedData) != totBytes {
t.Errorf("Returned %d bytes, expected %d bytes", len(returnedData), totBytes)
}
for i, b := range returnedData {
if b != 0 {
t.Fatalf("Expected 0 at returned byte %d, got %d instead.\n", i, b)
}
}
}
开发者ID:jmptrader,项目名称:dvid,代码行数:51,代码来源:uint8_test.go
示例6: postLabelVolume
// Each voxel in volume has sequential labels in X, Y, then Z order.
// volSize = size of volume in blocks
// blockSize = size of a block in voxels
func (vol labelVol) postLabelVolume(t *testing.T, labelsName string, uuid dvid.UUID) {
server.CreateTestInstance(t, uuid, "labelblk", labelsName, dvid.Config{})
offset := vol.offset
nx := vol.size[0] * vol.blockSize[0]
ny := vol.size[1] * vol.blockSize[1]
nz := vol.size[2] * vol.blockSize[2]
buf := make([]byte, nx*ny*nz*8)
var label uint64
var x, y, z, v int32
for z = 0; z < nz; z++ {
for y = 0; y < ny; y++ {
for x = 0; x < nx; x++ {
label++
binary.LittleEndian.PutUint64(buf[v:v+8], label)
v += 8
}
}
}
apiStr := fmt.Sprintf("%snode/%s/%s/raw/0_1_2/%d_%d_%d/%d_%d_%d", server.WebAPIPath,
uuid, labelsName, nx, ny, nz, offset[0], offset[1], offset[2])
server.TestHTTP(t, "POST", apiStr, bytes.NewBuffer(buf))
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:28,代码来源:api_test.go
示例7: TestDeleteInstance
func TestDeleteInstance(t *testing.T) {
tests.UseStore()
defer tests.CloseStore()
apiStr := fmt.Sprintf("%srepos", server.WebAPIPath)
r := server.TestHTTP(t, "POST", apiStr, nil)
var jsonResp map[string]interface{}
if err := json.Unmarshal(r, &jsonResp); err != nil {
t.Fatalf("Unable to unmarshal repo creation response: %s\n", string(r))
}
v, ok := jsonResp["root"]
if !ok {
t.Fatalf("No 'root' metadata returned: %s\n", string(r))
}
uuidStr, ok := v.(string)
if !ok {
t.Fatalf("Couldn't cast returned 'root' data (%v) into string.\n", v)
}
uuid := dvid.UUID(uuidStr)
// Add a data instance.
var config dvid.Config
server.CreateTestInstance(t, uuid, "keyvalue", "foo", config)
// Make sure it exists.
_, err := datastore.GetDataByUUID(uuid, "foo")
if err != nil {
t.Errorf("Couldn't create data instance 'foo'\n")
}
// Shouldn't be able to delete instance without "imsure"
delReq := fmt.Sprintf("%srepo/%s/%s", server.WebAPIPath, uuid, "foo")
server.TestBadHTTP(t, "DELETE", delReq, nil)
delReq = fmt.Sprintf("%srepo/%s/%s?imsure=true", server.WebAPIPath, uuid, "foo")
server.TestHTTP(t, "DELETE", delReq, nil)
// Make sure it no longer exists.
_, err = datastore.GetDataByUUID(uuid, "foo")
if err == nil {
t.Errorf("Shouldn't be able to access a deleted data instance 'foo'\n")
}
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:43,代码来源:api_test.go
示例8: TestLabelgraphPostAndDelete
// check subgraph endpoint
func TestLabelgraphPostAndDelete(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
// Create the ROI dataservice.
uuid, _ := initTestRepo()
config := dvid.NewConfig()
dataservice, err := datastore.NewData(uuid, dtype, "lg", config)
if err != nil {
t.Errorf("Error creating new labelgraph instance: %v\n", err)
}
data, ok := dataservice.(*Data)
if !ok {
t.Errorf("Returned new data instance is not labelgraph.Data\n")
}
// PUT a labelraph
subgraphRequest := fmt.Sprintf("%snode/%s/%s/subgraph", server.WebAPIPath, uuid, data.DataName())
server.TestHTTP(t, "POST", subgraphRequest, getGraphJSON())
// Get back the labelgraph
returnedData := server.TestHTTP(t, "GET", subgraphRequest, nil)
retgraph, err := loadGraphJSON(returnedData)
if err != nil {
t.Errorf("Error on getting back JSON from roi GET: %v\n", err)
}
// Make sure the two are the same.
if !reflect.DeepEqual(retgraph, getTestGraph()) {
t.Errorf("Bad PUT/GET ROI roundtrip\nOriginal:\n%s\nReturned:\n%s\n", getTestGraph(), retgraph)
}
// Delete the labelgraph
_ = server.TestHTTP(t, "DELETE", subgraphRequest, nil)
// Subgraph should now be empty
returnedData = server.TestHTTP(t, "GET", subgraphRequest, nil)
expectedResp := "{\"Transactions\":[],\"Vertices\":[],\"Edges\":[]}"
if string(returnedData) != expectedResp {
t.Errorf("Bad ROI after ROI delete. Should be %s got: %s\n", expectedResp, string(returnedData))
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:44,代码来源:labelgraph_test.go
示例9: TestROIPostAndDelete
func TestROIPostAndDelete(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
// Create the ROI dataservice.
uuid, _ := initTestRepo()
config := dvid.NewConfig()
dataservice, err := datastore.NewData(uuid, roitype, "roi", config)
if err != nil {
t.Errorf("Error creating new roi instance: %v\n", err)
}
data, ok := dataservice.(*Data)
if !ok {
t.Errorf("Returned new data instance is not roi.Data\n")
}
// PUT an ROI
roiRequest := fmt.Sprintf("%snode/%s/%s/roi", server.WebAPIPath, uuid, data.DataName())
server.TestHTTP(t, "POST", roiRequest, getSpansJSON(testSpans))
// Get back the ROI
returnedData := server.TestHTTP(t, "GET", roiRequest, nil)
spans, err := putSpansJSON(returnedData)
if err != nil {
t.Errorf("Error on getting back JSON from roi GET: %v\n", err)
}
// Make sure the two are the same.
if !reflect.DeepEqual(spans, testSpans) {
t.Errorf("Bad PUT/GET ROI roundtrip\nOriginal:\n%s\nReturned:\n%s\n", testSpans, spans)
}
// Delete the ROI
_ = server.TestHTTP(t, "DELETE", roiRequest, nil)
// ROI should now be empty
returnedData = server.TestHTTP(t, "GET", roiRequest, nil)
if string(returnedData) != "[]" {
t.Errorf("Bad ROI after ROI delete. Should be [ ] got: %s\n", string(returnedData))
}
}
开发者ID:jmptrader,项目名称:dvid,代码行数:42,代码来源:roi_test.go
示例10: TestSetMetadata
func TestSetMetadata(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := initTestRepo()
server.CreateTestInstance(t, uuid, "imagetile", "tiles", dvid.Config{})
// Store Metadata
url := fmt.Sprintf("%snode/%s/tiles/metadata", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", url, bytes.NewBufferString(testMetadata))
// Check instance really has it set.
var metadata metadataJSON
respStr := server.TestHTTP(t, "GET", url, nil)
if err := json.Unmarshal(respStr, &metadata); err != nil {
t.Fatalf("Couldn't parse JSON response to metadata request (%v):\n%s\n", err, respStr)
}
expectMin := dvid.Point3d{0, 0, 0}
expectMax := dvid.Point3d{5, 5, 4}
if !expectMin.Equals(metadata.MinTileCoord) {
t.Errorf("Expected min tile coord %s, got %s\n", expectMin, metadata.MinTileCoord)
}
if !expectMax.Equals(metadata.MaxTileCoord) {
t.Errorf("Expected max tile coord %s, got %s\n", expectMax, metadata.MaxTileCoord)
}
tileSpec, err := parseTileSpec(metadata.Levels)
if err != nil {
t.Errorf("Error parsing returned tile level spec:\n%v\n", metadata.Levels)
}
if len(tileSpec) != 4 {
t.Errorf("Bad tile spec load: only %d elements != 4\n", len(tileSpec))
}
if tileSpec[2].Resolution.GetMax() != 40.0 {
t.Errorf("Bad tile spec at level 2: %v\n", tileSpec[2])
}
if tileSpec[3].TileSize.Value(2) != 512 {
t.Errorf("Bad tile spec at level 3: %v\n", tileSpec[3])
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:39,代码来源:imagetile_test.go
示例11: TestReloadMetadata
func TestReloadMetadata(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
// Add data instances
var config dvid.Config
server.CreateTestInstance(t, uuid, "keyvalue", "foo", config)
server.CreateTestInstance(t, uuid, "labelblk", "labels", config)
server.CreateTestInstance(t, uuid, "roi", "someroi", config)
// Reload the metadata
apiStr := fmt.Sprintf("%sserver/reload-metadata", server.WebAPIPath)
server.TestHTTP(t, "POST", apiStr, nil)
// Make sure repo UUID still there
jsonStr, err := datastore.MarshalJSON()
if err != nil {
t.Fatalf("can't get repos JSON: %v\n", err)
}
var jsonResp map[string](map[string]interface{})
if err := json.Unmarshal(jsonStr, &jsonResp); err != nil {
t.Fatalf("Unable to unmarshal repos info response: %s\n", jsonStr)
}
if len(jsonResp) != 1 {
t.Errorf("reloaded repos had more than one repo: %v\n", jsonResp)
}
for k := range jsonResp {
if dvid.UUID(k) != uuid {
t.Fatalf("Expected uuid %s, got %s. Full JSON:\n%v\n", uuid, k, jsonResp)
}
}
// Make sure the data instances are still there.
_, err = datastore.GetDataByUUIDName(uuid, "foo")
if err != nil {
t.Errorf("Couldn't get keyvalue data instance after reload\n")
}
_, err = datastore.GetDataByUUIDName(uuid, "labels")
if err != nil {
t.Errorf("Couldn't get labelblk data instance after reload\n")
}
_, err = datastore.GetDataByUUIDName(uuid, "someroi")
if err != nil {
t.Errorf("Couldn't get roi data instance after reload\n")
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:49,代码来源:api_test.go
示例12: testBlocks
func (vol *labelVol) testBlocks(t *testing.T, uuid dvid.UUID, compression, roi string) {
span := 5
apiStr := fmt.Sprintf("%snode/%s/%s/blocks/%d_%d_%d/%d_%d_%d", server.WebAPIPath,
uuid, vol.name, 160, 32, 32, vol.offset[0], vol.offset[1], vol.offset[2])
if compression == "uncompressed" {
apiStr += "?compression=uncompressed"
}
data := server.TestHTTP(t, "GET", apiStr, nil)
fmt.Printf("Got %d bytes of data\n", len(data))
blockBytes := 32 * 32 * 32 * 8
// Check if values are what we expect
bx := vol.offset[0] / 32
by := vol.offset[1] / 32
bz := vol.offset[2] / 32
b := 0
for i := 0; i < span; i++ {
// Get block coord + block size
if b+16 > len(data) {
t.Fatalf("Only got %d bytes back from block API call, yet next coord in span would put index @ %d\n", len(data), b+16)
}
x := int32(binary.LittleEndian.Uint32(data[b : b+4]))
b += 4
y := int32(binary.LittleEndian.Uint32(data[b : b+4]))
b += 4
z := int32(binary.LittleEndian.Uint32(data[b : b+4]))
b += 4
n := int(binary.LittleEndian.Uint32(data[b : b+4]))
b += 4
if x != bx || y != by || z != bz {
t.Errorf("Bad block coordinate: expected (%d,%d,%d), got (%d,%d,%d)\n", bx, by, bz, x, y, z)
}
// Read in the block data as assumed LZ4 and check it.
var uncompressed []byte
if compression != "uncompressed" {
uncompressed = make([]byte, blockBytes)
if err := lz4.Uncompress(data[b:b+n], uncompressed); err != nil {
t.Fatalf("Unable to uncompress LZ4 data (%s), %d bytes: %v\n", apiStr, n, err)
}
} else {
uncompressed = data[b : b+n]
}
vol.testBlock(t, x, y, z, uncompressed)
b += n
bx++
}
}
开发者ID:janelia-flyem,项目名称:dvid,代码行数:49,代码来源:labelblk_test.go
示例13: getLabelVolume
func (vol labelVol) getLabelVolume(t *testing.T, uuid dvid.UUID, compression, roi string) []byte {
apiStr := fmt.Sprintf("%snode/%s/%s/raw/0_1_2/%d_%d_%d/%d_%d_%d", server.WebAPIPath,
uuid, vol.name, vol.nx, vol.ny, vol.nz, vol.offset[0], vol.offset[1], vol.offset[2])
query := true
switch compression {
case "lz4":
apiStr += "?compression=lz4"
case "gzip":
apiStr += "?compression=gzip"
default:
query = false
}
if roi != "" {
if query {
apiStr += "&roi=" + roi
} else {
apiStr += "?roi=" + roi
}
}
data := server.TestHTTP(t, "GET", apiStr, nil)
switch compression {
case "lz4":
uncompressed := make([]byte, vol.numBytes())
if err := lz4.Uncompress(data, uncompressed); err != nil {
t.Fatalf("Unable to uncompress LZ4 data (%s), %d bytes: %v\n", apiStr, len(data), err)
}
data = uncompressed
case "gzip":
buf := bytes.NewBuffer(data)
gr, err := gzip.NewReader(buf)
if err != nil {
t.Fatalf("Error on gzip new reader: %v\n", err)
}
uncompressed, err := ioutil.ReadAll(gr)
if err != nil {
t.Fatalf("Error on reading gzip: %v\n", err)
}
if err = gr.Close(); err != nil {
t.Fatalf("Error on closing gzip: %v\n", err)
}
data = uncompressed
default:
}
if len(data) != int(vol.numBytes()) {
t.Errorf("Expected %d uncompressed bytes from 3d labelblk GET. Got %d instead.", vol.numBytes(), len(data))
}
return data
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:48,代码来源:labelblk_test.go
示例14: testResponseLabel
func testResponseLabel(t *testing.T, expected interface{}, template string, args ...interface{}) {
var useRels bool
if strings.HasSuffix(template, "?relationships=true") {
useRels = true
}
url := fmt.Sprintf(template, args...)
returnValue := server.TestHTTP(t, "GET", url, nil)
if useRels {
var elems Elements
if expected == nil {
elems = Elements{}
} else {
var ok bool
elems, ok = expected.(Elements)
if !ok {
t.Fatalf("testResponseLabel with template %q didn't get passed Elements for expected: %v\n", template, expected)
}
}
got := Elements{}
if err := json.Unmarshal(returnValue, &got); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(elems.Normalize(), got.Normalize()) {
t.Fatalf("Expected for %s:\n%v\nGot:\n%v\n", url, elems.Normalize(), got.Normalize())
}
} else {
var elems ElementsNR
if expected == nil {
elems = ElementsNR{}
} else {
var ok bool
elems, ok = expected.(ElementsNR)
if !ok {
t.Fatalf("testResponseLabel with template %q didn't get passed ElementsNR for expected: %v\n", template, expected)
}
}
got := ElementsNR{}
if err := json.Unmarshal(returnValue, &got); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(elems.Normalize(), got.Normalize()) {
t.Fatalf("Expected for %s:\n%v\nGot:\n%v\n", url, elems.Normalize(), got.Normalize())
}
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:46,代码来源:annotation_test.go
示例15: TestTileKey
func TestTileKey(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := initTestRepo()
server.CreateTestInstance(t, uuid, "imagetile", "tiles", dvid.Config{})
keyURL := fmt.Sprintf("%snode/%s/tiles/tilekey/xy/0/1_2_3", server.WebAPIPath, uuid)
respStr := server.TestHTTP(t, "GET", keyURL, nil)
keyResp := struct {
Key string `json:"key"`
}{}
if err := json.Unmarshal(respStr, &keyResp); err != nil {
t.Fatalf("Couldn't parse JSON response to tilekey request (%v):\n%s\n", err, keyResp)
}
kb := make([]byte, hex.DecodedLen(len(keyResp.Key)))
_, err := hex.Decode(kb, []byte(keyResp.Key))
if err != nil {
t.Fatalf("Couldn't parse return hex key: %s", keyResp.Key)
}
// Decipher TKey portion to make sure it's correct.
key := storage.Key(kb)
tk, err := storage.TKeyFromKey(key)
if err != nil {
t.Fatalf("Couldn't get TKey from returned key (%v): %x", err, kb)
}
tile, plane, scale, err := DecodeTKey(tk)
if err != nil {
t.Fatalf("Bad decode of TKey (%v): %x", err, tk)
}
expectTile := dvid.ChunkPoint3d{1, 2, 3}
if tile != expectTile {
t.Errorf("Expected tile %v, got %v\n", expectTile, tile)
}
if !plane.Equals(dvid.XY) {
t.Errorf("Expected plane to be XY, got %v\n", plane)
}
if scale != 0 {
t.Errorf("Expected scale to be 0, got %d\n", scale)
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:42,代码来源:imagetile_test.go
示例16: postLabelVolume
// Create a new label volume and post it to the test datastore.
// Each voxel in volume has sequential labels in X, Y, then Z order.
func (vol *labelVol) postLabelVolume(t *testing.T, uuid dvid.UUID, compression, roi string, startLabel uint64) {
vol.makeLabelVolume(t, uuid, startLabel)
apiStr := fmt.Sprintf("%snode/%s/%s/raw/0_1_2/%d_%d_%d/%d_%d_%d", server.WebAPIPath,
uuid, vol.name, vol.nx, vol.ny, vol.nz, vol.offset[0], vol.offset[1], vol.offset[2])
query := true
var data []byte
var err error
switch compression {
case "lz4":
apiStr += "?compression=lz4"
compressed := make([]byte, lz4.CompressBound(vol.data))
var outSize int
if outSize, err = lz4.Compress(vol.data, compressed); err != nil {
t.Fatal(err)
}
data = compressed[:outSize]
case "gzip":
apiStr += "?compression=gzip"
var buf bytes.Buffer
gw := gzip.NewWriter(&buf)
if _, err = gw.Write(vol.data); err != nil {
t.Fatal(err)
}
data = buf.Bytes()
if err = gw.Close(); err != nil {
t.Fatal(err)
}
default:
data = vol.data
query = false
}
if roi != "" {
if query {
apiStr += "&roi=" + roi
} else {
apiStr += "?roi=" + roi
}
}
server.TestHTTP(t, "POST", apiStr, bytes.NewBuffer(data))
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:44,代码来源:labelblk_test.go
示例17: testResponse
func testResponse(t *testing.T, expected Elements, template string, args ...interface{}) {
url := fmt.Sprintf(template, args...)
returnValue := server.TestHTTP(t, "GET", url, nil)
got := Elements{}
if err := json.Unmarshal(returnValue, &got); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(expected.Normalize(), got.Normalize()) {
var expectedStr, gotStr string
if jsonBytes, err := json.Marshal(expected.Normalize()); err != nil {
t.Fatalf("error converting expected to JSON: %v\n", err)
} else {
expectedStr = string(jsonBytes)
}
if jsonBytes, err := json.Marshal(got.Normalize()); err != nil {
t.Fatalf("error converting got to JSON: %v\n", err)
} else {
gotStr = string(jsonBytes)
}
t.Fatalf("Expected for %s:\n%s\nGot:\n%s\n", url, expectedStr, gotStr)
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:22,代码来源:annotation_test.go
示例18: testSlices
func (vol labelVol) testSlices(t *testing.T, uuid dvid.UUID) {
// Verify XY slice.
sliceOffset := vol.offset
sliceOffset[0] += 51
sliceOffset[1] += 11
sliceOffset[2] += 23
slice := sliceTester{"xy", 67, 83, sliceOffset}
apiStr := slice.apiStr(uuid, vol.name)
xy := server.TestHTTP(t, "GET", apiStr, nil)
img, format, err := dvid.ImageFromBytes(xy, EncodeFormat(), false)
if err != nil {
t.Fatalf("Error on XY labels GET: %v\n", err)
}
if format != "png" {
t.Errorf("Expected XY labels GET to return %q image, got %q instead.\n", "png", format)
}
if img.NumBytes() != 67*83*8 {
t.Errorf("Expected %d bytes from XY labelblk GET. Got %d instead.", 160*160*8, img.NumBytes())
}
slice.testLabel(t, vol, img)
// Verify XZ slice returns what we expect.
sliceOffset = vol.offset
sliceOffset[0] += 11
sliceOffset[1] += 4
sliceOffset[2] += 3
slice = sliceTester{"xz", 67, 83, sliceOffset}
apiStr = slice.apiStr(uuid, vol.name)
xz := server.TestHTTP(t, "GET", apiStr, nil)
img, format, err = dvid.ImageFromBytes(xz, EncodeFormat(), false)
if err != nil {
t.Fatalf("Error on XZ labels GET: %v\n", err)
}
if format != "png" {
t.Errorf("Expected XZ labels GET to return %q image, got %q instead.\n", "png", format)
}
if img.NumBytes() != 67*83*8 {
t.Errorf("Expected %d bytes from XZ labelblk GET. Got %d instead.", 67*83*8, img.NumBytes())
}
slice.testLabel(t, vol, img)
// Verify YZ slice returns what we expect.
sliceOffset = vol.offset
sliceOffset[0] += 7
sliceOffset[1] += 33
sliceOffset[2] += 33
slice = sliceTester{"yz", 67, 83, sliceOffset}
apiStr = slice.apiStr(uuid, vol.name)
yz := server.TestHTTP(t, "GET", apiStr, nil)
img, format, err = dvid.ImageFromBytes(yz, EncodeFormat(), false)
if err != nil {
t.Fatalf("Error on YZ labels GET: %v\n", err)
}
if format != "png" {
t.Errorf("Expected YZ labels GET to return %q image, got %q instead.\n", "png", format)
}
if img.NumBytes() != 67*83*8 {
t.Errorf("Expected %d bytes from YZ labelblk GET. Got %d instead.", 67*83*8, img.NumBytes())
}
slice.testLabel(t, vol, img)
}
开发者ID:hanslovsky,项目名称:dvid,代码行数:62,代码来源:labelblk_test.go
示例19: put
// Put label data into given data instance.
func (v *testVolume) put(t *testing.T, uuid dvid.UUID, name string) {
apiStr := fmt.Sprintf("%snode/%s/%s/raw/0_1_2/%d_%d_%d/%d_%d_%d?mutate=true", server.WebAPIPath,
uuid, name, v.size[0], v.size[1], v.size[2], v.offset[0], v.offset[1], v.offset[2])
server.TestHTTP(t, "POST", apiStr, bytes.NewBuffer(v.data))
}
开发者ID:janelia-flyem,项目名称:dvid,代码行数:6,代码来源:float32_test.go
示例20: TestTileCheck
func TestTileCheck(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
// Make source
uuid, _ := initTestRepo()
makeGrayscale(uuid, t, "grayscale")
// Make imagetile and set various properties
config := dvid.NewConfig()
config.Set("Placeholder", "true")
config.Set("Format", "jpg")
config.Set("Source", "grayscale")
tileservice, err := datastore.NewData(uuid, mstype, "myimagetile", config)
if err != nil {
t.Errorf("Unable to create imagetile instance: %v\n", err)
}
msdata, ok := tileservice.(*Data)
if !ok {
t.Fatalf("Can't cast imagetile data service into imagetile.Data\n")
}
// Store Metadata
url := fmt.Sprintf("%snode/%s/myimagetile/metadata", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", url, bytes.NewBufferString(testMetadata2))
// Create the ROI
_, err = datastore.NewData(uuid, roitype, "myroi", dvid.NewConfig())
if err != nil {
t.Errorf("Error creating new roi instance: %v\n", err)
}
// PUT an ROI
roiRequest := fmt.Sprintf("%snode/%s/myroi/roi", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", roiRequest, getSpansJSON(testSpans))
// Create fake filter
spec := fmt.Sprintf("roi:myroi,%s", uuid)
f, err := msdata.NewFilter(storage.FilterSpec(spec))
if err != nil {
t.Errorf("Couldn't make filter: %v\n", err)
}
if f == nil {
t.Fatalf("Couldn't detect myroi data instance\n")
}
// Check various key values for proper spatial checks.
var tx, ty int32
tx = (205 * 32) / 512
ty = (101 * 32) / 512
tile := dvid.ChunkPoint3d{tx, ty, 101 * 32}
scale := Scaling(0)
tkv := &storage.TKeyValue{K: NewTKey(tile, dvid.XY, scale)}
skip, err := f.Check(tkv)
if err != nil {
t.Errorf("Error on Check of key %q: %v\n", tkv.K, err)
}
if skip {
t.Errorf("Expected false skip, got %v for tile %s\n", skip, tile)
}
tile = dvid.ChunkPoint3d{tx, ty, 106 * 32}
tkv = &storage.TKeyValue{K: NewTKey(tile, dvid.XY, scale)}
skip, err = f.Check(tkv)
if err != nil {
t.Errorf("Error on Check of key %q: %v\n", tkv.K, err)
}
if !skip {
t.Errorf("Expected true skip, got %v for tile %s\n", skip, tile)
}
tx = (205 * 32) / 512
ty = (121 * 32) / 512
tile = dvid.ChunkPoint3d{tx, ty, 101 * 32}
tkv = &storage.TKeyValue{K: NewTKey(tile, dvid.XY, scale)}
skip, err = f.Check(tkv)
if err != nil {
t.Errorf("Error on Check of key %q: %v\n", tkv.K, err)
}
if !skip {
t.Errorf("Expected true skip, got %v for tile %s\n", skip, tile)
}
tx = (225 * 32) / 512
ty = (101 * 32) / 512
tile = dvid.ChunkPoint3d{tx, ty, 101 * 32}
tkv = &storage.TKeyValue{K: NewTKey(tile, dvid.XY, scale)}
skip, err = f.Check(tkv)
if err != nil {
t.Errorf("Error on Check of key %q: %v\n", tkv.K, err)
}
if !skip {
t.Errorf("Expected true skip, got %v for tile %s\n", skip, tile)
}
}
开发者ID:tartavull,项目名称:dvid,代码行数:96,代码来源:imagetile_test.go
注:本文中的github.com/janelia-flyem/dvid/server.TestHTTP函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论