项目文件夹

文件
wehub-resource-sync 593b94c120
pytest / Unit Tests (push) Has been cancelled
pytest / Integration (integration_tests_a) (push) Has been cancelled
pytest / Integration (integration_tests_b) (push) Has been cancelled
pytest / Integration (integration_tests_c) (push) Has been cancelled
pytest / Integration (integration_tests_d) (push) Has been cancelled
pytest / Integration (integration_tests_e) (push) Has been cancelled
pytest / Integration (integration_tests_f) (push) Has been cancelled
pytest / Integration (integration_tests_g) (push) Has been cancelled
pytest / Integration (integration_tests_h) (push) Has been cancelled
pytest / Integration (integration_tests_i) (push) Has been cancelled
pytest / Integration (integration_tests_j) (push) Has been cancelled
pytest / Distributed (distributed_a) (push) Has been cancelled
pytest / Distributed (distributed_b) (push) Has been cancelled
pytest / Distributed (distributed_c) (push) Has been cancelled
pytest / Distributed (distributed_d) (push) Has been cancelled
pytest / Distributed (distributed_e) (push) Has been cancelled
pytest / Distributed (distributed_f) (push) Has been cancelled
pytest / Minimal Install (push) Has been cancelled
pytest / Event File (push) Has been cancelled
pytest (slow) / py-slow (push) Has been cancelled
Publish JSON Schema / publish-schema (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:49:20 +08:00

98 行
3.9 KiB
Python

#! /usr/bin/env python
import pytest
from pydantic import ValidationError as PydanticValidationError
import ludwig.schema.optimizers as lso
from ludwig.schema import utils as schema_utils
def test_torch_description_pull():
example_empty_desc_prop = schema_utils.unload_jsonschema_from_config_class(lso.AdamOptimizerConfig)["properties"][
"eps"
]
assert (
isinstance(example_empty_desc_prop, dict)
and "description" in example_empty_desc_prop
and isinstance(example_empty_desc_prop["description"], str)
and len(example_empty_desc_prop["description"]) > 3
)
def test_OptimizerDataclassField():
# Test default case:
default_optimizer_field = lso.OptimizerDataclassField()
assert default_optimizer_field.default_factory is not None
assert default_optimizer_field.default_factory() == lso.AdamOptimizerConfig()
# Test normal cases:
optimizer_field = lso.OptimizerDataclassField("adamax")
assert optimizer_field.default_factory is not None
assert optimizer_field.default_factory() == lso.AdamaxOptimizerConfig()
# Test invalid default case:
with pytest.raises(AttributeError):
lso.OptimizerDataclassField({})
with pytest.raises(KeyError):
lso.OptimizerDataclassField("test")
with pytest.raises(AttributeError):
lso.OptimizerDataclassField(1)
# Test creating a schema with default options:
class CustomTestSchema(schema_utils.LudwigBaseConfig):
foo: lso.BaseOptimizerConfig | None = lso.OptimizerDataclassField()
with pytest.raises((PydanticValidationError, Exception)):
CustomTestSchema.model_validate({"foo": "test"})
assert CustomTestSchema.model_validate({}).foo == lso.AdamOptimizerConfig()
# Test creating a schema with set default:
class CustomTestSchema2(schema_utils.LudwigBaseConfig):
foo: lso.BaseOptimizerConfig | None = lso.OptimizerDataclassField("adamax")
with pytest.raises((PydanticValidationError, Exception)):
CustomTestSchema2.model_validate({"foo": "test"})
assert CustomTestSchema2.model_validate(
{"foo": {"type": "adamax", "betas": (0.2, 0.2)}}
).foo == lso.AdamaxOptimizerConfig(betas=(0.2, 0.2))
def test_ClipperDataclassField():
# Test default case:
default_clipper_field = lso.GradientClippingDataclassField(description="", default={})
assert default_clipper_field.default_factory is not None
assert default_clipper_field.default_factory() == lso.GradientClippingConfig()
# Test normal cases:
clipper_field = lso.GradientClippingDataclassField(description="", default={"clipglobalnorm": 0.1})
assert clipper_field.default_factory is not None
assert clipper_field.default_factory() == lso.GradientClippingConfig(clipglobalnorm=0.1)
clipper_field = lso.GradientClippingDataclassField(description="", default={"clipglobalnorm": None})
assert clipper_field.default_factory is not None
assert clipper_field.default_factory() == lso.GradientClippingConfig(clipglobalnorm=None)
# Test invalid default case:
with pytest.raises(Exception):
lso.GradientClippingDataclassField(description="", default="test")
with pytest.raises(Exception):
lso.GradientClippingDataclassField(description="", default=None)
with pytest.raises(Exception):
lso.GradientClippingDataclassField(description="", default=1)
# Test creating a schema with set default:
class CustomTestSchema(schema_utils.LudwigBaseConfig):
foo: lso.GradientClippingConfig | None = lso.GradientClippingDataclassField(
description="", default={"clipglobalnorm": 0.1}
)
with pytest.raises((PydanticValidationError, Exception)):
CustomTestSchema.model_validate({"foo": "test"})
assert CustomTestSchema.model_validate({}).foo == lso.GradientClippingConfig(clipglobalnorm=0.1)
assert CustomTestSchema.model_validate({"foo": {"clipglobalnorm": 1}}).foo == lso.GradientClippingConfig(
clipglobalnorm=1
)