def pos_and_ids(stir_data_root): data = np.load(stir_data_root / 'position2detectorids.npz') return { 'input': List([PositionEvent(Point(r)) for r in data['position']]), 'expect': List([DetectorIdEvent(r[0], r[1] // 10, r[1]) for r in data['ids']]) }
def parameters(self): models = List() if isinstance(self.init_op, Model): models.append(self.init_op) models += List(self.paths).filter(lambda m: isinstance(m, Model)) if isinstance(self.merge, Model): models.append(self.merge) return concat(models.fmap(lambda m: m.parameters))
def proj3to2(n: Vector) -> Matrix: es = List([ Vector([1.0, 0.0, 0.0]), Vector([0.0, 1.0, 0.0]), Vector([0.0, 0.0, 1.0]) ]) vs = es.fmap(lambda v: proj(v, n)) return transpose(Matrix([vs[0].unbox(), vs[1].unbox(), vs[2].unbox()]))
def incept_path(ipath, filters): result = List([]) result.append(as_model(tf.nn.elu)) result.append(Conv2D(f'conv_in_{ipath}', filters, 1)) for i in range(ipath): result.append(as_model(tf.nn.elu)) result.append(Conv2D(f"conv_{ipath}_{i}", filters, 3)) return Stack(result)
def _(xs, axis=0): if xs is not None: if all(map(lambda a: isinstance(a, tf.Tensor), xs)): return tf.concat(xs.unbox(), axis=axis) if all(map(lambda a: isinstance(a, np.ndarray), xs)): return np.concatenate(xs.unbox(), axis=axis) else: res = List() for item in xs: res = res.extend(item) return res
def generate_data_and_header(config, target): with open(config, 'r') as fin: c = json.load(fin) scanner = get_scanner(c['scanner']['petscanner']) path_data = Path(target) gen_sino_script(c['scanner']['petscanner'], (path_data.abs + 'sinogram')) path_file = c['input']['listmode']['path_file'] data = load_h5(path_file) lor = List( LoR(PositionEvent(data['fst'][i, ]), PositionEvent(data['snd'][i, ]), weight=data['weight'][i]) for i in range(0, data['weight'].size)) lm2sino(scanner, lor, (path_data.abs + '/sinogram.s'))
class TestAxisToAxis: @pytest.mark.parametrize('src,tar', List( itertools.product(RANDOM_VECTORS, AXIS_VECTORS))) def test_random_axis(self, src, tar): # data = np.concatenate([RANDOM_VECTORS, AXIS_VECTORS]) # axis = [Axis(np.array(data[i, :])) # for i in range(data.shape[0])] # for src in axis: # for tar in axis: # v_tar = tar.normal # v_src = src.normal # print(type(v_src)) # print(type(v_tar)) m = axis_to_axis(src, tar) det = np.linalg.det(m.unbox()) assert abs(det) == pytest.approx(1.0) assert all_close(m @ src, tar)
def test_getitem_int(): assert List([1, 2])[0] == 1
def test_add_type(): assert isinstance(List([1]) + List([2]), List)
def test_add_value(): assert List([1]) + List([2]) == [1, 2]
def parameters(ms): return concat(List([m.parameters for m in ms if isinstance(m, Model)]))
def ndarray2listmode_positional(data: np.ndarray) -> List[LoR]: return List([parse_positional_event(r) for r in data])
def test_filter(): assert List([1, 2, 3, 4, 5, 6]).filter(lambda x: x < 4) == [1, 2, 3]
def test_getitem_slice_class(): assert isinstance(List([1, 2, 3])[:2], List)
def __init__(self, sources: List[Sequence[T]]): self.sources = List(sources)
from dxl.shape.data import Axis, AXIS3_X, AXIS3_Y, AXIS3_Z from doufo.tensor import Vector from doufo.tensor import all_close from doufo import List import itertools #from dxl.shape.utils.vector import Vector3 #from dxl.shape.utils.axes import Axis3, AXIS3_X, AXIS3_Z import pytest import math import numpy as np RANDOM_VECTORS = List([[0.40980446, 0.56395448, -0.71694885], [-0.89215861, -0.28282346, 0.35222706], [0.97295371, 0.16958264, -0.15685284], [-0.79043812, -0.48951234, 0.36821901], [-0.79298153, -0.55981545, 0.24038919], [0.88280373, 0.38964822, -0.26235821], [-0.65851061, 0.1799812, 0.73073288], [0.3341779, -0.69191882, -0.63997928], [-0.34021323, -0.75627046, -0.55884698], [-0.0612565, -0.29257462, -0.95427865]]).fmap(Vector) AXIS_VECTORS = List([[0., 0., 1.], [1., 0., 0.], [0., 1., 0.], [-1., 0., 0.], [0., -1., 0.], [0., 0., -1.]]).fmap(Vector) POINT_VECTORS = List([[1.0, 2.0, 0.0], [-2.0, 1.0, 0.0], [1.0, 0.0, 2.0], [0.0, 2.0, -1.0]]).fmap(Vector) class TestRotate: def test_rotate2(self): rot = rotate2(math.pi / 3)
def _(t) -> List[int]: return List(t.shape.as_list())
def _(t) -> List[int]: return List(t.shape)
def extend(self, x: 'Monoid[T]'): return CompositeSequence(List(self.sources).extend([x]))
def embed2to3(n: Vector) -> Matrix: es = List([Vector([1.0, 0.0]), Vector([0.0, 1.0])]) vs = es.fmap(lambda v: embed(v, n)).fmap(lambda v: v.unbox()) return transpose(Matrix(vs))
def test_eq(): assert List([1, 2]) == [1, 2]
def test_getitem_slice_value(): assert List([1, 2, 3])[:2] == [1, 2]
def moves(steps): xs, ys, zs = steps return List([Vector([x, y, z]) for x in xs for y in ys for z in zs])
def test_head(): assert head(List([1, 2])) == 1
import unittest from unittest.mock import MagicMock from jfs.api import Path from doufo import List import pytest import itertools INPUTS1 = List(['/','/tmp', '%2Ftmp', '%252Ftmp', './tmp', '/tmp/a/..']) OUTPUTS1 = List(['/', '/tmp', '/tmp', '/tmp', 'tmp', '/tmp']) INPUTS2 = ['/', 'tmp', '/tmp','/tmp/'] OUTPUTS2 = ['/', (Path('.')+'tmp').abs, '/tmp','/tmp'] OUTPUTS22 = ['', 'tmp', 'tmp', 'tmp'] OUTPUTS222 = [True,False,False,False] OUTPUTS2222 = [True,False,True,True] INPUTS3 = ['/', 'a', '/a/b', '/a/b/'] OUTPUTS3 = ['', 'a', 'b', 'b'] INPUTS4 = ['a/b', '/a/b', '/a/b/', 'a/b/'] OUTPUTS4 = [(Path('.')+'a').abs, '/a', '/a', (Path('.')+'a').abs] INPUTS5 = ['a', 'a.txt', '/a/b.pdf', './b.zip'] OUTPUTS5 = ['','.txt','.pdf','.zip'] INPUTS6 = ['a', 'a.txt', '/a/b.tar.gz'] OUTPUTS6 = [[],['.txt'],['.tar','.gz']] INPUTS7 = ['a', 'a/b', '/a/b', './a', '/a/b/c/..'] OUTPUTS7 = ['a', 'a/b', '/a/b', './a', '/a/b'] class TestPath: @pytest.mark.parametrize('input, output',list(zip(INPUTS1,OUTPUTS1))) def test_route(self,input,output): assert Path(input).route ==output
def test_eq_List(): assert List([1, 2]) == List([1, 2])
def test_wrap_construct(): a = List([1, 2]) assert List(a) == [1, 2]
def test_wrap_construct_List(): a = List(List([1, 2])) assert a == [1, 2]
def id_sinogram_matlab(stir_data_root): data = np.load(stir_data_root / 'sinogramids.npz') return {k: List((v - 1).tolist()) for k, v in data.items()}