Skip to content

Commit caea422

Browse files
committed
wip
1 parent f10c7b0 commit caea422

4 files changed

Lines changed: 125 additions & 139 deletions

File tree

autotest/dfns/test_dfns_schema.py

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from modflow_devtools.dfns.schema import (
99
Array,
1010
Block,
11-
DimDef,
11+
Dim,
1212
Double,
1313
FieldBase,
1414
Integer,
@@ -323,9 +323,9 @@ def test_local_dims():
323323
name="gwf-dis",
324324
blocks={"dimensions": block},
325325
dims={
326-
"nlay": DimDef(field="nlay", scope="model"),
327-
"nrow": DimDef(field="nrow", scope="model"),
328-
"ncol": DimDef(field="ncol", scope="model"),
326+
"nlay": Dim(field="nlay", scope="model"),
327+
"nrow": Dim(field="nrow", scope="model"),
328+
"ncol": Dim(field="ncol", scope="model"),
329329
},
330330
)
331331
spec = Dfns(components={"gwf-dis": pkg})
@@ -340,7 +340,7 @@ def test_local_dims():
340340
pkg3 = Package(
341341
name="test",
342342
blocks=None,
343-
dims={"nodes": DimDef(expr="42", scope="component")},
343+
dims={"nodes": Dim(expr="42", scope="component")},
344344
)
345345
spec3 = Dfns(components={"test": pkg3})
346346
assert spec3.local_dims("test") == {"nodes"}
@@ -429,10 +429,10 @@ def test_resolve_derived_dims():
429429
name="test",
430430
blocks={"dimensions": block},
431431
dims={
432-
"nlay": DimDef(field="nlay", scope="component"),
433-
"nrow": DimDef(field="nrow", scope="component"),
434-
"ncol": DimDef(field="ncol", scope="component"),
435-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="component"),
432+
"nlay": Dim(field="nlay", scope="component"),
433+
"nrow": Dim(field="nrow", scope="component"),
434+
"ncol": Dim(field="ncol", scope="component"),
435+
"nodes": Dim(expr="nlay * nrow * ncol", scope="component"),
436436
},
437437
)
438438
order = _resolve_derived_dims(pkg, {"nlay", "nrow", "ncol"})
@@ -442,11 +442,11 @@ def test_resolve_derived_dims():
442442
name="test",
443443
blocks={"dimensions": block},
444444
dims={
445-
"nlay": DimDef(field="nlay", scope="component"),
446-
"nrow": DimDef(field="nrow", scope="component"),
447-
"ncol": DimDef(field="ncol", scope="component"),
448-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="component"),
449-
"nodouble": DimDef(expr="nodes * 2", scope="component"),
445+
"nlay": Dim(field="nlay", scope="component"),
446+
"nrow": Dim(field="nrow", scope="component"),
447+
"ncol": Dim(field="ncol", scope="component"),
448+
"nodes": Dim(expr="nlay * nrow * ncol", scope="component"),
449+
"nodouble": Dim(expr="nodes * 2", scope="component"),
450450
},
451451
)
452452
order = _resolve_derived_dims(pkg, {"nlay", "nrow", "ncol"})
@@ -455,7 +455,7 @@ def test_resolve_derived_dims():
455455
pkg = Package(
456456
name="test",
457457
blocks=None,
458-
dims={"derived": DimDef(expr="nodes + 1", scope="component")},
458+
dims={"derived": Dim(expr="nodes + 1", scope="component")},
459459
)
460460
order = _resolve_derived_dims(pkg, {"nodes"})
461461
assert order == ["derived"]
@@ -466,7 +466,7 @@ def test_resolve_derived_dims_sum_operand_allowed():
466466
pkg = Package(
467467
name="test",
468468
blocks=pkg.blocks,
469-
dims={"total_conn": DimDef(expr="sum(packagedata.nlakeconn)", scope="component")},
469+
dims={"total_conn": Dim(expr="sum(packagedata.nlakeconn)", scope="component")},
470470
)
471471
order = _resolve_derived_dims(pkg, set())
472472
assert order == ["total_conn"]
@@ -482,8 +482,8 @@ def test_resolve_derived_dims_cycle_error():
482482
name="test",
483483
blocks=None,
484484
dims={
485-
"a": DimDef(expr="b + 1", scope="component"),
486-
"b": DimDef(expr="a + 1", scope="component"),
485+
"a": Dim(expr="b + 1", scope="component"),
486+
"b": Dim(expr="a + 1", scope="component"),
487487
},
488488
)
489489
with pytest.raises(ValueError, match="Cycle in"):
@@ -494,7 +494,7 @@ def test_resolve_derived_dims_unknown_operand_error():
494494
pkg = Package(
495495
name="test",
496496
blocks=None,
497-
dims={"nodes": DimDef(expr="mystery_dim * 2", scope="component")},
497+
dims={"nodes": Dim(expr="mystery_dim * 2", scope="component")},
498498
)
499499
with pytest.raises(ValueError, match="not a known dimension"):
500500
_resolve_derived_dims(pkg, set())
@@ -504,7 +504,7 @@ def test_resolve_derived_dims_invalid_expression_error():
504504
pkg = Package(
505505
name="test",
506506
blocks=None,
507-
dims={"nodes": DimDef(expr="nlay * (", scope="component")},
507+
dims={"nodes": Dim(expr="nlay * (", scope="component")},
508508
)
509509
with pytest.raises(ValueError, match="Invalid"):
510510
_resolve_derived_dims(pkg, set())
@@ -516,10 +516,10 @@ def test_dfnspec_construction_validates_dims():
516516
name="gwf-dis",
517517
blocks={"dimensions": block},
518518
dims={
519-
"nlay": DimDef(field="nlay", scope="model"),
520-
"nrow": DimDef(field="nrow", scope="model"),
521-
"ncol": DimDef(field="ncol", scope="model"),
522-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
519+
"nlay": Dim(field="nlay", scope="model"),
520+
"nrow": Dim(field="nrow", scope="model"),
521+
"ncol": Dim(field="ncol", scope="model"),
522+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
523523
},
524524
)
525525
spec = Dfns(components={"gwf-dis": pkg})
@@ -531,8 +531,8 @@ def test_dfnspec_construction_cycle_raises():
531531
name="bad",
532532
blocks=None,
533533
dims={
534-
"a": DimDef(expr="b + 1", scope="component"),
535-
"b": DimDef(expr="a + 1", scope="component"),
534+
"a": Dim(expr="b + 1", scope="component"),
535+
"b": Dim(expr="a + 1", scope="component"),
536536
},
537537
)
538538
with pytest.raises(ValueError, match="Cycle in"):
@@ -543,7 +543,7 @@ def test_dfnspec_construction_unknown_operand_raises():
543543
pkg = Package(
544544
name="bad",
545545
blocks=None,
546-
dims={"nodes": DimDef(expr="ghost_dim * 2", scope="component")},
546+
dims={"nodes": Dim(expr="ghost_dim * 2", scope="component")},
547547
)
548548
with pytest.raises(ValueError, match="not a known dimension"):
549549
Dfns(components={"bad": pkg})
@@ -566,9 +566,9 @@ def test_dfnspec_local_dims():
566566
name="gwf-dis",
567567
blocks={"dimensions": block},
568568
dims={
569-
"nlay": DimDef(field="nlay", scope="model"),
570-
"nrow": DimDef(field="nrow", scope="model"),
571-
"ncol": DimDef(field="ncol", scope="model"),
569+
"nlay": Dim(field="nlay", scope="model"),
570+
"nrow": Dim(field="nrow", scope="model"),
571+
"ncol": Dim(field="ncol", scope="model"),
572572
},
573573
)
574574
spec = Dfns(components={"gwf-dis": pkg})
@@ -588,10 +588,10 @@ def test_dfnspec_inherited_dims_includes_dis_dims():
588588
parent="gwf-nam",
589589
blocks={"dimensions": dis_block},
590590
dims={
591-
"nlay": DimDef(field="nlay", scope="model"),
592-
"nrow": DimDef(field="nrow", scope="model"),
593-
"ncol": DimDef(field="ncol", scope="model"),
594-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
591+
"nlay": Dim(field="nlay", scope="model"),
592+
"nrow": Dim(field="nrow", scope="model"),
593+
"ncol": Dim(field="ncol", scope="model"),
594+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
595595
},
596596
)
597597
chd = _pkg("gwf-chd", parent="gwf-nam", blocks=None)
@@ -612,8 +612,8 @@ def test_dfnspec_inherited_dims_disv():
612612
parent="gwf-nam",
613613
blocks={"dimensions": disv_block},
614614
dims={
615-
"nlay": DimDef(field="nlay", scope="model"),
616-
"ncpl": DimDef(field="ncpl", scope="model"),
615+
"nlay": Dim(field="nlay", scope="model"),
616+
"ncpl": Dim(field="ncpl", scope="model"),
617617
},
618618
)
619619
chd = _pkg("gwf-chd", parent="gwf-nam", blocks=None)
@@ -632,8 +632,8 @@ def test_dfnspec_inherited_dims_disu():
632632
parent="gwf-nam",
633633
blocks={"dimensions": disu_block},
634634
dims={
635-
"nodes": DimDef(field="nodes", scope="model"),
636-
"nja": DimDef(field="nja", scope="model"),
635+
"nodes": Dim(field="nodes", scope="model"),
636+
"nja": Dim(field="nja", scope="model"),
637637
},
638638
)
639639
chd = _pkg("gwf-chd", parent="gwf-nam", blocks=None)
@@ -653,16 +653,16 @@ def test_dfnspec_inherited_dims_excludes_own():
653653
parent="gwf-nam",
654654
blocks={"dimensions": dis_block},
655655
dims={
656-
"nlay": DimDef(field="nlay", scope="model"),
657-
"nrow": DimDef(field="nrow", scope="model"),
658-
"ncol": DimDef(field="ncol", scope="model"),
656+
"nlay": Dim(field="nlay", scope="model"),
657+
"nrow": Dim(field="nrow", scope="model"),
658+
"ncol": Dim(field="ncol", scope="model"),
659659
},
660660
)
661661
chd = Package(
662662
name="gwf-chd",
663663
parent="gwf-nam",
664664
blocks={"dimensions": _dim_block("secret_dim")},
665-
dims={"secret_dim": DimDef(field="secret_dim", scope="model")},
665+
dims={"secret_dim": Dim(field="secret_dim", scope="model")},
666666
)
667667
gwf = Model(name="gwf-nam", blocks=None)
668668
spec = Dfns(components={"gwf-nam": gwf, "gwf-dis": dis, "gwf-chd": chd})
@@ -754,10 +754,10 @@ def _dis_spec() -> Dfns:
754754
parent="gwf-nam",
755755
blocks={"dimensions": dis_block},
756756
dims={
757-
"nlay": DimDef(field="nlay", scope="model"),
758-
"nrow": DimDef(field="nrow", scope="model"),
759-
"ncol": DimDef(field="ncol", scope="model"),
760-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
757+
"nlay": Dim(field="nlay", scope="model"),
758+
"nrow": Dim(field="nrow", scope="model"),
759+
"ncol": Dim(field="ncol", scope="model"),
760+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
761761
},
762762
)
763763
return Dfns(components={"gwf-nam": gwf, "gwf-dis": dis})
@@ -798,10 +798,10 @@ def test_dims_includes_derived():
798798
parent="gwf-nam",
799799
blocks={"dimensions": dis_block},
800800
dims={
801-
"nlay": DimDef(field="nlay", scope="model"),
802-
"nrow": DimDef(field="nrow", scope="model"),
803-
"ncol": DimDef(field="ncol", scope="model"),
804-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
801+
"nlay": Dim(field="nlay", scope="model"),
802+
"nrow": Dim(field="nrow", scope="model"),
803+
"ncol": Dim(field="ncol", scope="model"),
804+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
805805
},
806806
)
807807
spec = Dfns(components={"gwf-nam": gwf, "gwf-dis": dis})
@@ -826,9 +826,9 @@ def test_dims_includes_model_scoped():
826826

827827
def _make_ctx(dim_names: set[str], derived: dict | None = None):
828828
"""Return (array, component, known_dims) for shape element tests."""
829-
dims: dict[str, DimDef] = {n: DimDef(field=n, scope="component") for n in dim_names}
829+
dims: dict[str, Dim] = {n: Dim(field=n, scope="component") for n in dim_names}
830830
if derived:
831-
dims.update({n: DimDef(expr=e, scope="component") for n, e in derived.items()})
831+
dims.update({n: Dim(expr=e, scope="component") for n, e in derived.items()})
832832
blocks = {"dimensions": _dim_block(*dim_names)} if dim_names else None
833833
pkg = Package(name="test", blocks=blocks, dims=dims or None)
834834
gwf = Model(name="gwf-nam", blocks=None)
@@ -849,7 +849,7 @@ def test_shape_element_valid_inherited_dim():
849849
name="gwf-dis",
850850
parent="gwf-nam",
851851
blocks=None,
852-
dims={"nodes": DimDef(expr="42", scope="model")},
852+
dims={"nodes": Dim(expr="42", scope="model")},
853853
)
854854
test_pkg = Package(name="gwf-test", parent="gwf-nam", blocks=None)
855855
gwf = Model(name="gwf-nam", blocks=None)
@@ -1010,9 +1010,9 @@ def test_dfnspec_valid_top_level_array_shape():
10101010
parent="gwf-nam",
10111011
blocks={"dimensions": dis_block, "griddata": grid_block},
10121012
dims={
1013-
"nlay": DimDef(field="nlay", scope="model"),
1014-
"nrow": DimDef(field="nrow", scope="model"),
1015-
"ncol": DimDef(field="ncol", scope="model"),
1013+
"nlay": Dim(field="nlay", scope="model"),
1014+
"nrow": Dim(field="nrow", scope="model"),
1015+
"ncol": Dim(field="ncol", scope="model"),
10161016
},
10171017
)
10181018
gwf = Model(name="gwf-nam", blocks=None)
@@ -1030,9 +1030,9 @@ def test_dfnspec_valid_array_in_record():
10301030
parent="gwf-nam",
10311031
blocks={"dimensions": dis_block, "options": opt_block},
10321032
dims={
1033-
"nlay": DimDef(field="nlay", scope="model"),
1034-
"nrow": DimDef(field="nrow", scope="model"),
1035-
"ncol": DimDef(field="ncol", scope="model"),
1033+
"nlay": Dim(field="nlay", scope="model"),
1034+
"nrow": Dim(field="nrow", scope="model"),
1035+
"ncol": Dim(field="ncol", scope="model"),
10361036
},
10371037
)
10381038
gwf = Model(name="gwf-nam", blocks=None)
@@ -1070,9 +1070,9 @@ def test_dfnspec_invalid_array_shape_raises():
10701070
parent="gwf-nam",
10711071
blocks={"dimensions": dis_block, "griddata": grid_block},
10721072
dims={
1073-
"nlay": DimDef(field="nlay", scope="model"),
1074-
"nrow": DimDef(field="nrow", scope="model"),
1075-
"ncol": DimDef(field="ncol", scope="model"),
1073+
"nlay": Dim(field="nlay", scope="model"),
1074+
"nrow": Dim(field="nrow", scope="model"),
1075+
"ncol": Dim(field="ncol", scope="model"),
10761076
},
10771077
)
10781078
gwf = Model(name="gwf-nam", blocks=None)
@@ -1089,10 +1089,10 @@ def test_dfnspec_array_shape_resolves_via_derived_dim():
10891089
parent="gwf-nam",
10901090
blocks={"dimensions": dis_block, "griddata": grid_block},
10911091
dims={
1092-
"nlay": DimDef(field="nlay", scope="model"),
1093-
"nrow": DimDef(field="nrow", scope="model"),
1094-
"ncol": DimDef(field="ncol", scope="model"),
1095-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
1092+
"nlay": Dim(field="nlay", scope="model"),
1093+
"nrow": Dim(field="nrow", scope="model"),
1094+
"ncol": Dim(field="ncol", scope="model"),
1095+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
10961096
},
10971097
)
10981098
gwf = Model(name="gwf-nam", blocks=None)
@@ -1107,10 +1107,10 @@ def test_dfnspec_array_shape_resolves_via_sibling_dis():
11071107
parent="gwf-nam",
11081108
blocks={"dimensions": dis_block},
11091109
dims={
1110-
"nlay": DimDef(field="nlay", scope="model"),
1111-
"nrow": DimDef(field="nrow", scope="model"),
1112-
"ncol": DimDef(field="ncol", scope="model"),
1113-
"nodes": DimDef(expr="nlay * nrow * ncol", scope="model"),
1110+
"nlay": Dim(field="nlay", scope="model"),
1111+
"nrow": Dim(field="nrow", scope="model"),
1112+
"ncol": Dim(field="ncol", scope="model"),
1113+
"nodes": Dim(expr="nlay * nrow * ncol", scope="model"),
11141114
},
11151115
)
11161116
chd_arr = Array(name="head", dtype="double", shape=["nlay", "nodes"])

0 commit comments

Comments
 (0)