added auto_sync feature
This commit is contained in:
@@ -342,3 +342,39 @@ def test_filter():
|
||||
|
||||
mat = np.random.rand(70, 12, 11)
|
||||
assert f(mat.reshape(len(conf), 11), squeeze=False).shape == (12, 1, 1, 3, 11)
|
||||
|
||||
|
||||
def test_auto_sync():
|
||||
@vdataclass
|
||||
class Conf:
|
||||
x: Variable = vfield()
|
||||
y: Variable = vfield(default=[7, 8, 9])
|
||||
z: Variable = vfield(default=7.5e-9, auto_sync=True)
|
||||
w: Variable = vfield(default=7568.4e6, auto_sync=True)
|
||||
|
||||
conf = Conf([1, 2, 3])
|
||||
assert len(conf) == 9
|
||||
|
||||
@vdataclass
|
||||
class Conf:
|
||||
x: Variable = vfield()
|
||||
y: Variable = vfield(default=[7, 8, 9])
|
||||
z: Variable = vfield(default=7.5e-9, auto_sync=True)
|
||||
|
||||
conf = Conf(1, z=[1, 2, 3])
|
||||
assert len(conf) == 3
|
||||
|
||||
conf.z = [0, 5]
|
||||
assert len(conf) == 6
|
||||
assert conf.y(0) == 7
|
||||
assert conf.y(1) == 7
|
||||
assert conf.y(2) == 8
|
||||
assert conf.y(3) == 8
|
||||
assert conf.y(4) == 9
|
||||
assert conf.y(5) == 9
|
||||
assert conf.z(0) == 0
|
||||
assert conf.z(1) == 5
|
||||
assert conf.z(2) == 0
|
||||
assert conf.z(3) == 5
|
||||
assert conf.z(4) == 0
|
||||
assert conf.z(5) == 5
|
||||
|
||||
Reference in New Issue
Block a user