コード例 #1
0
def test4DAppend(bidsArchive4D, validBidsI, imageMetadata):
    incrementAcquisitionValues(validBidsI)
    bidsArchive4D.appendIncremental(validBidsI)

    assert archiveHasMetadata(bidsArchive4D, imageMetadata)
    assert appendDataMatches(bidsArchive4D, validBidsI, startIndex=2)
    assert isValidBidsArchive(bidsArchive4D.rootPath)
コード例 #2
0
def testDiskOutput(validBidsI, tmpdir):
    # Write the archive
    datasetRoot = os.path.join(tmpdir, "bids-pytest-dataset")
    validBidsI.writeToDisk(datasetRoot)

    # Validate the output can be opened by BidsArchive and verified against the
    # source BIDS-Incremental
    archive = BidsArchive(datasetRoot)
    archiveImage = archive.getImages()[0]

    # Remove pseudo entities to avoid conflict with the validBidsI
    metadata = archive.getSidecarMetadata(archiveImage, includeEntities=True)
    for entity in PYBIDS_PSEUDO_ENTITIES:
        metadata.pop(entity)

    incrementalFromArchive = BidsIncremental(archiveImage, metadata)
    assert incrementalFromArchive == validBidsI

    assert isValidBidsArchive(archive.rootPath)

    # Try only writing data
    datasetRoot = os.path.join(tmpdir, "bids-pytest-dataset-2")
    validBidsI.writeToDisk(datasetRoot, onlyData=True)
    assert not os.path.exists(os.path.join(datasetRoot, "README"))
    assert not os.path.exists(
        os.path.join(datasetRoot, "dataset_description.json"))
コード例 #3
0
def testAppendNewSubject(bidsArchive4D, validBidsI):
    preSubjects = bidsArchive4D.getSubjects()

    validBidsI.setMetadataField("subject", "02")
    bidsArchive4D.appendIncremental(validBidsI)

    assert len(bidsArchive4D.getSubjects()) == len(preSubjects) + 1

    assert appendDataMatches(bidsArchive4D, validBidsI)
    assert isValidBidsArchive(bidsArchive4D.rootPath)
コード例 #4
0
def testEmptyArchiveAppend(validBidsI, imageMetadata, tmpdir):
    # Create in root with no BIDS-I, then append to make non-empty archive
    datasetRoot = Path(tmpdir, testEmptyArchiveAppend.__name__)
    archive = BidsArchive(datasetRoot)
    archive.appendIncremental(validBidsI)

    assert not archive.isEmpty()
    assert archiveHasMetadata(archive, imageMetadata)
    assert appendDataMatches(archive, validBidsI)
    assert isValidBidsArchive(datasetRoot)
コード例 #5
0
def testSequenceAppend(bidsArchive4D, validBidsI, imageMetadata):
    NUM_APPENDS = 2
    BIDSI_LENGTH = 2

    for i in range(NUM_APPENDS):
        incrementAcquisitionValues(validBidsI)
        bidsArchive4D.appendIncremental(validBidsI)

    image = bidsArchive4D.getImages(
        matchExact=False, **filterEntities(imageMetadata))[0].get_image()

    shape = image.header.get_data_shape()
    assert len(shape) == 4 and shape[3] == (BIDSI_LENGTH * (1 + NUM_APPENDS))

    assert archiveHasMetadata(bidsArchive4D, imageMetadata)
    assert appendDataMatches(bidsArchive4D, validBidsI,
                             startIndex=2, endIndex=4)
    assert isValidBidsArchive(bidsArchive4D.rootPath)
コード例 #6
0
ファイル: test_fixtures.py プロジェクト: spolcyn/rt-cloud
def testBidsArchiveMultipleRun(bidsArchiveMultipleRuns):
    assert isValidBidsArchive(bidsArchiveMultipleRuns.rootPath), \
        "BIDS Archive Multiple Runs fixture is not a valid BIDS Archive " \
        "(path: " + bidsArchiveMultipleRuns.rootPath + " )"
コード例 #7
0
ファイル: test_fixtures.py プロジェクト: spolcyn/rt-cloud
def testBidsArchive4D(bidsArchive4D):
    assert isValidBidsArchive(bidsArchive4D.rootPath), \
        "BIDS Archive 4D fixture is not a valid BIDS Archive"