added auto_sync feature

This commit is contained in:
Benoît Sierro
2023-12-11 10:45:24 +01:00
parent 91545d39bb
commit e5c37f3155
3 changed files with 74 additions and 2 deletions

View File

@@ -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