File: test_surface_area.py

package info (click to toggle)
neuron 8.2.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,760 kB
  • sloc: cpp: 149,571; python: 58,465; ansic: 50,329; sh: 3,510; xml: 213; pascal: 51; makefile: 35; sed: 5
file content (29 lines) | stat: -rw-r--r-- 709 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy


def test_surface_area(neuron_instance):
    """Test that surface node all have surface area"""

    h, rxd, data, save_path = neuron_instance

    soma = h.Section(name="soma")
    soma.L = 1
    soma.diam = 1
    soma.nseg = 1

    rxd.set_solve_type(dimension=3)
    allsecs = soma.wholetree()
    r = rxd.Region(allsecs, dx=0.1)
    ca = rxd.Species(r)
    h.finitialize(-65)

    # true surface area
    sa = 1.5 * numpy.pi

    areas = numpy.array(ca.nodes.surface_area)

    # check surface area is 0.9 to 1.1 of the true value
    assert abs(1 - sum(areas) / sa) <= 0.1

    # check all surface nodes have non-zero surface area
    assert not any(areas[r._surface_nodes_by_seg[0]] == 0)