Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_child_section():
m = Morphology()
section = m.append_root_section(PointLevel([[1, 2, 3]], [2], [20]),
SectionType.axon)
ok_(section.is_root)
section.append_section(PointLevel([[1, 2, 3], [4, 5, 6]],
[2, 3],
[20, 30]))
children = m.root_sections[0].children
assert_equal(len(children),
1)
assert_array_equal(children[0].points,
[[1, 2, 3], [4, 5, 6]])
assert_array_equal(children[0].diameters,
[2, 3])
assert_array_equal(children[0].perimeters,
[20, 30])
children[0].points = [[7, 8, 9], [10, 11, 12]]
def test_single_neurite():
m = Morphology()
m.append_root_section(PointLevel([[1, 2, 3]], [2], [20]),
SectionType.axon)
assert_array_equal(m.root_sections[0].points,
[[1, 2, 3]])
assert_equal(m.root_sections[0].diameters,
[2])
assert_equal(m.root_sections[0].perimeters,
[20])
m.root_sections[0].points = [[10, 20, 30]]
assert_array_equal(m.root_sections[0].points,
[[10, 20, 30]],
'Points array should have been mutated')
m.root_sections[0].diameters = [7]
def test_child_section():
m = Morphology()
section = m.append_root_section(PointLevel([[1, 2, 3]], [2], [20]),
SectionType.axon)
ok_(section.is_root)
section.append_section(PointLevel([[1, 2, 3], [4, 5, 6]],
[2, 3],
[20, 30]))
children = m.root_sections[0].children
assert_equal(len(children),
1)
assert_array_equal(children[0].points,
[[1, 2, 3], [4, 5, 6]])
assert_array_equal(children[0].diameters,
def test_duplicate_different_diameter():
'''Test that starting a child section with a different diamete
work as expected'''
morpho = Morphology()
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
morpho.soma.diameters = [1, 1]
section = morpho.append_root_section(PointLevel([[2, 2, 2], [3, 3, 3]],
[4, 4]),
SectionType.axon,)
section.append_section(PointLevel([[3, 3, 3], [4, 4, 4]], [10, 12]))
section.append_section(PointLevel([[3, 3, 3], [5, 5, 5]], [11, 12]))
with setup_tempdir('test_write_duplicate_different_diameter', no_cleanup=True) as tmp_folder:
for ext in ['asc', 'h5', 'swc']:
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
outfile = os.path.join(tmp_folder, 'tmp.' + ext)
morpho.write(outfile)
read = Morphology(outfile)
assert_equal(len(read.root_sections[0].children), 2)
child1, child2 = read.root_sections[0].children
assert_array_equal(child1.points, [[3, 3, 3], [4, 4, 4]])
assert_array_equal(child2.points, [[3, 3, 3], [5, 5, 5]])
assert_array_equal(child1.diameters, [10, 12])
def test_duplicate_different_diameter():
'''Test that starting a child section with a different diamete
work as expected'''
morpho = Morphology()
morpho.soma.points = [[0, 0, 0], [1, 1, 1]]
morpho.soma.diameters = [1, 1]
section = morpho.append_root_section(PointLevel([[2, 2, 2], [3, 3, 3]],
[4, 4]),
SectionType.axon,)
section.append_section(PointLevel([[3, 3, 3], [4, 4, 4]], [10, 12]))
section.append_section(PointLevel([[3, 3, 3], [5, 5, 5]], [11, 12]))
with setup_tempdir('test_write_duplicate_different_diameter', no_cleanup=True) as tmp_folder:
for ext in ['asc', 'h5', 'swc']:
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
outfile = os.path.join(tmp_folder, 'tmp.' + ext)
morpho.write(outfile)
read = Morphology(outfile)
def test_point_level():
a = PointLevel([[1, 2, 3]], [2], [])
assert_equal(a.points, [[1, 2, 3]])
assert_equal(a.diameters, [2])
with assert_raises(SectionBuilderError) as obj:
a = PointLevel([[1, 2, 3],
[1, 2, 3]],
[2],
[])
assert_substring("Point vector have size: 2 while Diameter vector has size: 1",
str(obj.exception))
with assert_raises(SectionBuilderError) as obj:
a = PointLevel([[1, 2, 3],
[1, 2, 3]],
[2, 3],
[4])
assert_substring("Point vector have size: 2 while Perimeter vector has size: 1",
str(obj.exception))
def test_empty_neurite():
m = Morphology()
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
root = m.append_root_section(PointLevel(), SectionType.axon)
assert_equal(err.getvalue().strip(),
'Warning: appending empty section with id: 0')
assert_equal(len(m.root_sections), 1)
assert_equal(m.root_sections[0].type,
SectionType.axon)
with captured_output() as (_, err):
with ostream_redirect(stdout=True, stderr=True):
root.append_section(PointLevel(), SectionType.axon)
assert_equal(err.getvalue().strip(),
'Warning: appending empty section with id: 1')
dendrite = morpho.append_root_section(
PointLevel([[0, 0, 0],
[0, 5, 0]],
[2, 2],
[5, 6]),
SectionType.basal_dendrite)
dendrite.append_section(
PointLevel([[0, 5, 0],
[-5, 5, 0]],
[2, 3],
[6, 7]))
dendrite.append_section(
PointLevel([[0, 5, 0],
[6, 5, 0]],
[2, 3],
[6, 8]))
with setup_tempdir('test_write_perimeter') as tmp_folder:
morpho.write(os.path.join(tmp_folder, "test_write.h5"))
assert_array_equal(ImmutMorphology(os.path.join(tmp_folder, "test_write.h5")).perimeters,
[5., 6., 6., 7., 6., 8.])
def test_write_basic():
morpho = Morphology()
morpho.soma.points = [[0, 0, 0]]
morpho.soma.diameters = [2]
dendrite = morpho.append_root_section(PointLevel([[0, 0, 0], [0, 5, 0]], [2, 2]),
SectionType.basal_dendrite)
dendrite.append_section(PointLevel([[0, 5, 0], [-5, 5, 0]], [2, 3]))
dendrite.append_section(PointLevel([[0, 5, 0], [6, 5, 0]], [2, 3]))
axon = morpho.append_root_section(
PointLevel([[0, 0, 0],
[0, -4, 0]],
[2, 2]),
SectionType.axon)
axon.append_section(PointLevel([[0, -4, 0],
[6, -4, 0]],
[2, 4]))
axon = axon.append_section(PointLevel([[0, -4, 0],
[-5, -4, 0]],
[2, 4]))
with setup_tempdir('test_write_basic') as tmp_folder: