本文整理汇总了Golang中github.com/janelia-flyem/dvid/datastore.NewTestRepo函数的典型用法代码示例。如果您正苦于以下问题:Golang NewTestRepo函数的具体用法?Golang NewTestRepo怎么用?Golang NewTestRepo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewTestRepo函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: 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])
}
}
示例2: initTestRepo
// Sets package-level testRepo and TestVersionID
func initTestRepo() (dvid.UUID, dvid.VersionID) {
if dtype == nil {
var err error
dtype, err = datastore.TypeServiceByName(TypeName)
if err != nil {
log.Fatalf("Can't get labelgraph type: %v\n", err)
}
}
return datastore.NewTestRepo()
}
示例3: TestLog
func TestLog(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
// Post a log
payload := bytes.NewBufferString(`{"log": ["line1", "line2", "some more stuff in a line"]}`)
apiStr := fmt.Sprintf("%snode/%s/log", WebAPIPath, uuid)
TestHTTP(t, "POST", apiStr, payload)
// Verify it was saved.
r := TestHTTP(t, "GET", apiStr, nil)
jsonResp := make(map[string][]string)
if err := json.Unmarshal(r, &jsonResp); err != nil {
t.Fatalf("Unable to unmarshal log response: %s\n", string(r))
}
if len(jsonResp) != 1 {
t.Errorf("Bad log return: %s\n", string(r))
}
data, ok := jsonResp["log"]
if !ok {
t.Fatalf("No 'log' data returned: %s\n", string(r))
}
if len(data) != 3 {
t.Fatalf("Got wrong # of lines in log: %v\n", data)
}
testLog(t, data[0], "line1")
testLog(t, data[1], "line2")
testLog(t, data[2], "some more stuff in a line")
// Add some more to log
payload = bytes.NewBufferString(`{"log": ["line4", "line5"]}`)
apiStr = fmt.Sprintf("%snode/%s/log", WebAPIPath, uuid)
TestHTTP(t, "POST", apiStr, payload)
// Verify it was appended.
r = TestHTTP(t, "GET", apiStr, nil)
jsonResp = make(map[string][]string)
if err := json.Unmarshal(r, &jsonResp); err != nil {
t.Fatalf("Unable to unmarshal log response: %s\n", string(r))
}
if len(jsonResp) != 1 {
t.Errorf("Bad log return: %s\n", string(r))
}
data, ok = jsonResp["log"]
if !ok {
t.Fatalf("No 'log' data returned: %s\n", string(r))
}
if len(data) != 5 {
t.Errorf("Got wrong # of lines in log: %v\n", data)
}
testLog(t, data[3], "line4")
testLog(t, data[4], "line5")
}
示例4: initTestRepo
// Sets package-level testRepo and TestVersionID
func initTestRepo() (dvid.UUID, dvid.VersionID) {
testMu.Lock()
defer testMu.Unlock()
if roitype == nil {
var err error
roitype, err = datastore.TypeServiceByName(TypeName)
if err != nil {
log.Fatalf("Can't get ROI type: %v\n", err)
}
}
return datastore.NewTestRepo()
}
示例5: initTestRepo
// Sets package-level testRepo and TestVersionID
func initTestRepo() (dvid.UUID, dvid.VersionID) {
testMu.Lock()
defer testMu.Unlock()
if labelsT == nil {
var err error
labelsT, err = datastore.TypeServiceByName("labelblk")
if err != nil {
log.Fatalf("Can't get labelblk type: %s\n", err)
}
}
return datastore.NewTestRepo()
}
示例6: 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")
}
}
示例7: initTestRepo
// Sets package-level testRepo and TestVersionID
func initTestRepo() (dvid.UUID, dvid.VersionID) {
testMu.Lock()
defer testMu.Unlock()
if mstype == nil {
var err error
mstype, err = datastore.TypeServiceByName(TypeName)
if err != nil {
log.Fatalf("Can't get imagetile type: %s\n", err)
}
grayscaleT, err = datastore.TypeServiceByName("uint8blk")
if err != nil {
log.Fatalf("Can't get grayscale type: %s\n", err)
}
}
return datastore.NewTestRepo()
}
示例8: initTestRepo
// Sets package-level testRepo and TestVersionID
func initTestRepo() (dvid.UUID, dvid.VersionID) {
testMu.Lock()
defer testMu.Unlock()
if grayscaleT == nil {
var err error
grayscaleT, err = datastore.TypeServiceByName("uint8blk")
if err != nil {
log.Fatalf("Can't get uint8blk type: %s\n", err)
}
rgbaT, err = datastore.TypeServiceByName("rgba8blk")
if err != nil {
log.Fatalf("Can't get rgba8blk type: %s\n", err)
}
roiT, err = datastore.TypeServiceByName("roi")
if err != nil {
log.Fatalf("Can't get ROI type: %s\n", err)
}
}
return datastore.NewTestRepo()
}
示例9: TestCommitBranchMergeDelete
func TestCommitBranchMergeDelete(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
// Shouldn't be able to create branch on open node.
branchReq := fmt.Sprintf("%snode/%s/branch", WebAPIPath, uuid)
TestBadHTTP(t, "POST", branchReq, nil)
// Check commit status
checkReq := fmt.Sprintf("%snode/%s/commit", WebAPIPath, uuid)
retVal := TestHTTP(t, "GET", checkReq, nil)
if string(retVal) != `{"Locked":false}` {
t.Errorf("Expected unlocked commit status, got: %s\n", string(retVal))
}
// 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", WebAPIPath, uuid)
TestHTTP(t, "POST", apiStr, payload)
// Check commit status
checkReq = fmt.Sprintf("%snode/%s/commit", WebAPIPath, uuid)
retVal = TestHTTP(t, "GET", checkReq, nil)
if string(retVal) != `{"Locked":true}` {
t.Errorf("Expected locked commit status, got: %s\n", string(retVal))
}
// Make sure committed nodes can only be read.
// We shouldn't be able to write to log.
payload = bytes.NewBufferString(`{"log": ["line1", "line2", "some more stuff in a line"]}`)
apiStr = fmt.Sprintf("%snode/%s/log", WebAPIPath, uuid)
TestBadHTTP(t, "POST", apiStr, payload)
// Should be able to create branch now that we've committed parent.
respData := TestHTTP(t, "POST", branchReq, nil)
resp := struct {
Child string `json:"child"`
}{}
if err := json.Unmarshal(respData, &resp); err != nil {
t.Errorf("Expected 'child' JSON response. Got %s\n", string(respData))
}
parent1 := dvid.UUID(resp.Child)
// Create a sibling.
respData = TestHTTP(t, "POST", branchReq, nil)
if err := json.Unmarshal(respData, &resp); err != nil {
t.Errorf("Expected 'child' JSON response. Got %s\n", string(respData))
}
parent2 := dvid.UUID(resp.Child)
// Commit both parents
payload = bytes.NewBufferString(`{"note": "This is first parent"}`)
apiStr = fmt.Sprintf("%snode/%s/commit", WebAPIPath, parent1)
TestHTTP(t, "POST", apiStr, payload)
payload = bytes.NewBufferString(`{"note": "This is second parent"}`)
apiStr = fmt.Sprintf("%snode/%s/commit", WebAPIPath, parent2)
TestHTTP(t, "POST", apiStr, payload)
// Merge the two disjoint branches.
mergeJSON := fmt.Sprintf(`{"mergeType": "conflict-free", "note": "This is my merged node", "parents": [%q, %q]}`, parent1[:7], parent2)
payload = bytes.NewBufferString(mergeJSON)
apiStr = fmt.Sprintf("%srepo/%s/merge", WebAPIPath, parent1)
TestHTTP(t, "POST", apiStr, payload)
}
示例10: TestLabels
func TestLabels(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
if len(uuid) < 5 {
t.Fatalf("Bad root UUID for new repo: %s\n", uuid)
}
// Create a labelblk instance
server.CreateTestInstance(t, uuid, "labelblk", "labels", dvid.Config{})
vol := labelVol{
startLabel: 2,
size: dvid.Point3d{5, 5, 5}, // in blocks
blockSize: dvid.Point3d{32, 32, 32},
offset: dvid.Point3d{32, 64, 96},
name: "labels",
}
vol.postLabelVolume(t, uuid, "", "", 0)
// Test the blocks API
vol.testBlocks(t, uuid, "", "")
vol.testBlocks(t, uuid, "uncompressed", "")
// Test the "label" endpoint.
apiStr := fmt.Sprintf("%snode/%s/%s/label/100_64_96", server.WebAPIPath, uuid, "labels")
jsonResp := server.TestHTTP(t, "GET", apiStr, nil)
var r labelResp
if err := json.Unmarshal(jsonResp, &r); err != nil {
t.Errorf("Unable to parse 'label' endpoint response: %s\n", jsonResp)
}
if r.Label != 69 {
t.Errorf("Expected label %d @ (100, 64, 96) got label %d\n", vol.label(100, 64, 96), r.Label)
}
apiStr = fmt.Sprintf("%snode/%s/%s/label/10000_64000_9600121", server.WebAPIPath, uuid, "labels")
jsonResp = server.TestHTTP(t, "GET", apiStr, nil)
if err := json.Unmarshal(jsonResp, &r); err != nil {
t.Errorf("Unable to parse 'label' endpoint response: %s\n", jsonResp)
}
if r.Label != 0 {
t.Errorf("Expected label 0 at random huge point, got label %d\n", r.Label)
}
// Test the "labels" endpoint.
apiStr = fmt.Sprintf("%snode/%s/%s/labels", server.WebAPIPath, uuid, "labels")
payload := `[[100,64,96],[78,93,156],[104,65,97]]`
jsonResp = server.TestHTTP(t, "GET", apiStr, bytes.NewBufferString(payload))
var labels [3]uint64
if err := json.Unmarshal(jsonResp, &labels); err != nil {
t.Errorf("Unable to parse 'labels' endpoint response: %s\n", jsonResp)
}
if labels[0] != vol.label(100, 64, 96) {
t.Errorf("Expected label %d @ (100, 64, 96) got label %d\n", vol.label(100, 64, 96), labels[0])
}
if labels[1] != vol.label(78, 93, 156) {
t.Errorf("Expected label %d @ (78, 93, 156) got label %d\n", vol.label(78, 93, 156), labels[1])
}
if labels[2] != vol.label(104, 65, 97) {
t.Errorf("Expected label %d @ (104, 65, 97) got label %d\n", vol.label(104, 65, 97), labels[2])
}
// Repost the label volume 3 more times with increasing starting values.
vol.postLabelVolume(t, uuid, "", "", 2100)
vol.postLabelVolume(t, uuid, "", "", 8176)
vol.postLabelVolume(t, uuid, "", "", 16623)
vol.testSlices(t, uuid)
// Try to post last volume concurrently 3x and then check result.
wg := new(sync.WaitGroup)
wg.Add(3)
go func() {
vol.postLabelVolume(t, uuid, "", "", 16623)
wg.Done()
}()
go func() {
vol.postLabelVolume(t, uuid, "", "", 16623)
wg.Done()
}()
go func() {
vol.postLabelVolume(t, uuid, "", "", 16623)
wg.Done()
}()
wg.Wait()
vol.testGetLabelVolume(t, uuid, "", "")
// Try concurrent write of disjoint subvolumes.
vol2 := labelVol{
size: dvid.Point3d{5, 5, 5}, // in blocks
blockSize: dvid.Point3d{32, 32, 32},
offset: dvid.Point3d{192, 64, 96},
name: "labels",
}
vol3 := labelVol{
size: dvid.Point3d{5, 5, 5}, // in blocks
blockSize: dvid.Point3d{32, 32, 32},
offset: dvid.Point3d{192, 224, 96},
name: "labels",
//.........这里部分代码省略.........
示例11: TestSyncs
func TestSyncs(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
uuid, _ := datastore.NewTestRepo()
var config dvid.Config
server.CreateTestInstance(t, uuid, "labelblk", "labels", config)
server.CreateTestInstance(t, uuid, "labelvol", "bodies", config)
server.CreateTestInstance(t, uuid, "annotation", "synapses", config)
server.CreateTestSync(t, uuid, "synapses", "labels,bodies")
labels, err := labelblk.GetByUUIDName(uuid, "labels")
if err != nil {
t.Fatalf("Can't obtain data instance via GetByUUIDName: %v\n", err)
}
bodies, err := labelvol.GetByUUIDName(uuid, "bodies")
if err != nil {
t.Fatalf("Can't obtain data instance via GetByUUIDName: %v\n", err)
}
synapses, err := annotation.GetByUUIDName(uuid, "synapses")
if err != nil {
t.Fatalf("Couldn't get synapses data instance: %v\n", err)
}
syncs := synapses.SyncedData()
if len(syncs) != 2 {
t.Errorf("Expected 2 syncs, got %d syncs instead.\n", len(syncs))
}
_, found := syncs[labels.DataUUID()]
if !found {
t.Errorf("Expected labels UUID (%d) got: %v\n", labels.DataUUID(), syncs)
}
_, found = syncs[bodies.DataUUID()]
if !found {
t.Errorf("Expected bodies UUID (%d) got: %v\n", bodies.DataUUID(), syncs)
}
server.CreateTestInstance(t, uuid, "labelvol", "bodies2", config)
bodies2, err := labelvol.GetByUUIDName(uuid, "bodies2")
if err != nil {
t.Fatalf("Can't obtain data instance via GetByUUIDName: %v\n", err)
}
server.CreateTestSync(t, uuid, "synapses", "bodies2")
syncs = synapses.SyncedData()
if len(syncs) != 3 {
t.Errorf("Expected 3 syncs, got %d syncs instead.\n", len(syncs))
}
_, found = syncs[labels.DataUUID()]
if !found {
t.Errorf("Expected labels UUID (%d) got: %v\n", labels.DataUUID(), syncs)
}
_, found = syncs[bodies.DataUUID()]
if !found {
t.Errorf("Expected bodies UUID (%d) got: %v\n", bodies.DataUUID(), syncs)
}
_, found = syncs[bodies2.DataUUID()]
if !found {
t.Errorf("Expected bodies2 UUID (%d) got: %v\n", bodies2.DataUUID(), syncs)
}
server.CreateTestInstance(t, uuid, "labelvol", "bodies3", config)
server.CreateTestReplaceSync(t, uuid, "synapses", "bodies3")
syncs = synapses.SyncedData()
if len(syncs) != 1 {
t.Errorf("Expected 1 sync, got %d syncs instead.\n", len(syncs))
}
bodies3, err := labelvol.GetByUUIDName(uuid, "bodies3")
if err != nil {
t.Fatalf("Can't obtain data instance via GetByUUIDName: %v\n", err)
}
_, found = syncs[bodies3.DataUUID()]
if !found {
t.Errorf("Expected bodies3 UUID (%d) got: %v\n", bodies3.DataUUID(), syncs)
}
server.CreateTestReplaceSync(t, uuid, "synapses", "")
syncs = synapses.SyncedData()
if len(syncs) != 0 {
t.Errorf("Expected 0 sync, got instead %v\n", syncs)
}
}
示例12: TestLabels
func TestLabels(t *testing.T) {
datastore.OpenTest()
defer datastore.CloseTest()
// Create testbed volume and data instances
uuid, _ := datastore.NewTestRepo()
var config dvid.Config
server.CreateTestInstance(t, uuid, "labelblk", "labels", config)
server.CreateTestInstance(t, uuid, "labelvol", "bodies", config)
// Establish syncs
server.CreateTestSync(t, uuid, "labels", "bodies")
server.CreateTestSync(t, uuid, "bodies", "labels")
// Populate the labels, which should automatically populate the labelvol
_ = createLabelTestVolume(t, uuid, "labels")
if err := datastore.BlockOnUpdating(uuid, "labels"); err != nil {
t.Fatalf("Error blocking on sync of labels: %v\n", err)
}
// Add annotations syncing with "labels" instance.
server.CreateTestInstance(t, uuid, "annotation", "mysynapses", config)
server.CreateTestSync(t, uuid, "mysynapses", "labels,bodies")
// Create a ROI that will be used for our labelsz.
server.CreateTestInstance(t, uuid, "roi", "myroi", config)
roiRequest := fmt.Sprintf("%snode/%s/myroi/roi", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", roiRequest, getROIReader())
// Create labelsz instances synced to the above annotations.
server.CreateTestInstance(t, uuid, "labelsz", "noroi", config)
server.CreateTestSync(t, uuid, "noroi", "mysynapses")
config.Set("ROI", fmt.Sprintf("myroi,%s", uuid))
server.CreateTestInstance(t, uuid, "labelsz", "withroi", config)
server.CreateTestSync(t, uuid, "withroi", "mysynapses")
// PUT first batch of synapses.
var synapses annotation.Elements
var x, y, z int32
// This should put 31x31x31 (29,791) PostSyn in volume with fewer in label 200 than 300.
// There will be 15 along each dimension from 0 -> 63, then 16 from 64 -> 127.
// Label 100 will have 15 x 31 x 31 = 14415
// Label 200 will have 16 x 31 x 15 = 7440
// Label 300 will have 16 x 31 x 16 = 7936
for z = 4; z < 128; z += 4 {
for y = 4; y < 128; y += 4 {
for x = 4; x < 128; x += 4 {
e := annotation.Element{
annotation.ElementNR{
Pos: dvid.Point3d{x, y, z},
Kind: annotation.PostSyn,
},
[]annotation.Relationship{},
}
synapses = append(synapses, e)
}
}
}
// This should put 32x32x32 (32,768) PreSyn in volume split 1/2, 1/4, 1/4
for z = 2; z < 128; z += 4 {
for y = 2; y < 128; y += 4 {
for x = 2; x < 128; x += 4 {
e := annotation.Element{
annotation.ElementNR{
Pos: dvid.Point3d{x, y, z},
Kind: annotation.PreSyn,
},
[]annotation.Relationship{},
}
synapses = append(synapses, e)
}
}
}
testJSON, err := json.Marshal(synapses)
if err != nil {
t.Fatal(err)
}
url := fmt.Sprintf("%snode/%s/mysynapses/elements", server.WebAPIPath, uuid)
server.TestHTTP(t, "POST", url, strings.NewReader(string(testJSON)))
// Check if we have correct sequencing for no ROI labelsz.
if err := datastore.BlockOnUpdating(uuid, "noroi"); err != nil {
t.Fatalf("Error blocking on sync of noroi labelsz: %v\n", err)
}
url = fmt.Sprintf("%snode/%s/noroi/top/3/PreSyn", server.WebAPIPath, uuid)
data := server.TestHTTP(t, "GET", url, nil)
if string(data) != `[{"Label":100,"Size":16384},{"Label":200,"Size":8192},{"Label":300,"Size":8192}]` {
t.Errorf("Got back incorrect PreSyn noroi ranking:\n%v\n", string(data))
}
url = fmt.Sprintf("%snode/%s/noroi/count/100/PreSyn", server.WebAPIPath, uuid)
data = server.TestHTTP(t, "GET", url, nil)
if string(data) != `{"Label":100,"PreSyn":16384}` {
t.Errorf("Got back incorrect PreSyn noroi count for label 100:\n%v\n", string(data))
}
url = fmt.Sprintf("%snode/%s/noroi/count/200/PreSyn", server.WebAPIPath, uuid)
data = server.TestHTTP(t, "GET", url, nil)
//.........这里部分代码省略.........