def _assert_doc_deployments(doc, is_update):
    """Assert simulation deployments."""
    tu.assert_iter(doc.deployments, 1, cim.v1.Deployment)

    dep = doc.deployments[0]
    tu.assert_str(dep.description, "The resources(deployment) on which", True)
    tu.assert_object(dep.platform_reference, cim.v1.DocReference)
    ref = dep.platform_reference
    tu.assert_str(ref.description, "Reference to a platform", True)
    tu.assert_uuid(ref.id, "b765775a-e2ac-11df-9efb-00163e9152a5")
    tu.assert_str(ref.name, "IBM Power 6")
    tu.assert_str(ref.type, "platform")
    tu.assert_int(ref.version, 1)
def _assert_doc_deployments(doc, is_update):
    """Assert simulation deployments."""
    tu.assert_iter(doc.deployments, 1, cim.v1.Deployment)

    dep = doc.deployments[0]
    tu.assert_str(dep.description, "The resources(deployment) on which", True)
    tu.assert_object(dep.platform_reference, cim.v1.DocReference)
    ref = dep.platform_reference
    tu.assert_str(ref.description, "Reference to a platform", True)
    tu.assert_uuid(ref.id, "b765775a-e2ac-11df-9efb-00163e9152a5")
    tu.assert_str(ref.name, "IBM Power 6")
    tu.assert_str(ref.type, "platform")
    tu.assert_int(ref.version, 1)
def _assert_doc_member(doc, is_update):
    """Assert ensemble members information."""
    # ... ensemble member id.
    member = doc.members[0]
    tu.assert_iter(member.ensemble_ids, 1, cim.v1.StandardName)
    tu.assert_str(member.ensemble_ids[0].is_open, True)
    tu.assert_str(member.ensemble_ids[0].value, "r1i1p1")

    # ... ensemble member simulation reference.
    tu.assert_object(member.simulation_reference, cim.v1.DocReference)
    ref = member.simulation_reference
    tu.assert_str(ref.description, "Reference to a simulation called amip")
    tu.assert_uuid(ref.id, "e4155a28-268e-11e1-9a0e-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "simulation")
    tu.assert_str(ref.version, 2)
def _assert_doc_conformances(doc, is_update):
    """Assert simulation conformances."""
    tu.assert_iter(doc.conformances, 13, cim.v1.Conformance)

    c = doc.conformances[0]
    tu.assert_str(c.type, "standard config")
    tu.assert_iter(c.requirements_references, 1, cim.v1.DocReference)
    ref = c.requirements_references[0]
    tu.assert_str(ref.description, "Reference to a NumericalRequirement", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "ic.003")
    tu.assert_str(ref.type, "NumericalRequirement")
    tu.assert_int(ref.version, 1)

    c = doc.conformances[7]
    tu.assert_str(c.description, "Prescribed land use", True)
    tu.assert_bool(c.is_conformant, True)
    tu.assert_str(c.type, "via inputs")
def _assert_doc_conformances(doc, is_update):
    """Assert simulation conformances."""
    tu.assert_iter(doc.conformances, 13, cim.v1.Conformance)

    c = doc.conformances[0]
    tu.assert_str(c.type, "standard config")
    tu.assert_iter(c.requirements_references, 1, cim.v1.DocReference)
    ref = c.requirements_references[0]
    tu.assert_str(ref.description, "Reference to a NumericalRequirement", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "ic.003")
    tu.assert_str(ref.type, "NumericalRequirement")
    tu.assert_int(ref.version, 1)

    c = doc.conformances[7]
    tu.assert_str(c.description, "Prescribed land use", True)
    tu.assert_bool(c.is_conformant, True)
    tu.assert_str(c.type, "via inputs")
def _assert_doc_references(doc, is_update):
    """Assert simulation references."""
    # Model reference.
    tu.assert_object(doc.model_reference, cim.v1.DocReference)
    ref = doc.model_reference
    tu.assert_str(ref.description, "Reference to a modelComponent", True)
    tu.assert_uuid(ref.id, "7a2b64cc-03ca-11e1-a36a-00163e9152a5")
    tu.assert_str(ref.name, "HadGEM2-A")
    tu.assert_str(ref.type, "modelComponent")
    tu.assert_int(ref.version, 1)

    # Experiment reference.
    tu.assert_iter(doc.supports_references, 1, cim.v1.DocReference)
    ref = doc.supports_references[0]
    tu.assert_str(ref.description, "Reference to an Experiment", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "experiment")
    tu.assert_int(ref.version, 1)
def _assert_doc_references(doc, is_update):
    """Assert simulation references."""
    # Model reference.
    tu.assert_object(doc.model_reference, cim.v1.DocReference)
    ref = doc.model_reference
    tu.assert_str(ref.description, "Reference to a modelComponent", True)
    tu.assert_uuid(ref.id, "7a2b64cc-03ca-11e1-a36a-00163e9152a5")
    tu.assert_str(ref.name, "HadGEM2-A")
    tu.assert_str(ref.type, "modelComponent")
    tu.assert_int(ref.version, 1)

    # Experiment reference.
    tu.assert_iter(doc.supports_references, 1, cim.v1.DocReference)
    ref = doc.supports_references[0]
    tu.assert_str(ref.description, "Reference to an Experiment", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "experiment")
    tu.assert_int(ref.version, 1)
def _assert_doc_sub_components(doc, is_update):
    """Assert sub-components."""
    tu.assert_int(doc.sub_components, 4)

    sc = doc.sub_components[0]
    tu.assert_int(sc.citations, 1)
    tu.assert_str(sc.description, "The model includes interactive schemes",
                  True)
    tu.assert_uuid(sc.meta.id, "7a44cb24-03ca-11e1-a36a-00163e9152a5")
    tu.assert_int(sc.meta.version, 1)
    tu.assert_date(sc.meta.create_date, "2012-04-23 14:59:04.757315")
    tu.assert_str(sc.long_name, "Aerosols")
    tu.assert_int(sc.properties, 4)
    tu.assert_int(sc.responsible_parties, 4)
    tu.assert_int(sc.sub_components, 3)
    tu.assert_str(sc.short_name, "Aerosols")
    tu.assert_str(sc.type, "Aerosols")
    tu.assert_int(sc.types, 3)

    # Property.
    p = sc.properties[0]
    tu.assert_bool(p.is_represented, True)
    tu.assert_str(p.long_name, "Aerosols")
    tu.assert_str(p.short_name, "Aerosol Key Properties")
    tu.assert_int(p.sub_properties, 6)

    p = sc.properties[2]
    tu.assert_int(p.standard_names, 1)
    tu.assert_str(p.standard_names[0], "tendency_of_atmosphere", True)
    tu.assert_str(p.units, "kg/m2/s")

    # Sub-property.
    p = sc.properties[0].sub_properties[0]
    tu.assert_str(p.short_name, "AerosolSchemeScope")
    tu.assert_str(p.long_name, "AerosolSchemeScope")
    tu.assert_int(p.values, 1)
    tu.assert_str(p.values[0], "Whole atmosphere")
def _assert_doc_sub_components(doc, is_update):
    """Assert sub-components."""
    tu.assert_int(doc.sub_components, 4)

    sc = doc.sub_components[0]
    tu.assert_int(sc.citations, 1)
    tu.assert_str(sc.description, "The model includes interactive schemes", True)
    tu.assert_uuid(sc.meta.id, "7a44cb24-03ca-11e1-a36a-00163e9152a5")
    tu.assert_int(sc.meta.version, 1)
    tu.assert_date(sc.meta.create_date, "2012-04-23 14:59:04.757315")
    tu.assert_str(sc.long_name, "Aerosols")
    tu.assert_int(sc.properties, 4)
    tu.assert_int(sc.responsible_parties, 4)
    tu.assert_int(sc.sub_components, 3)
    tu.assert_str(sc.short_name, "Aerosols")
    tu.assert_str(sc.type, "Aerosols")
    tu.assert_int(sc.types, 3)

    # Property.
    p = sc.properties[0]
    tu.assert_bool(p.is_represented, True)
    tu.assert_str(p.long_name, "Aerosols")
    tu.assert_str(p.short_name, "Aerosol Key Properties")
    tu.assert_int(p.sub_properties, 6)

    p = sc.properties[2]
    tu.assert_int(p.standard_names, 1)
    tu.assert_str(p.standard_names[0], "tendency_of_atmosphere", True)
    tu.assert_str(p.units, "kg/m2/s")

    # Sub-property.
    p = sc.properties[0].sub_properties[0]
    tu.assert_str(p.short_name, "AerosolSchemeScope")
    tu.assert_str(p.long_name, "AerosolSchemeScope")
    tu.assert_int(p.values, 1)
    tu.assert_str(p.values[0], "Whole atmosphere")