Example #1
0
def check_comments16():
    parse_wrap_check('1 g', Syntax.definitely_constant_value)
    parse_wrap_check("'Number of constants'", Syntax.comment_con)
    
    parse_wrap_check("axx = 1.2 g", Syntax.setname_rvalue)
    parse_wrap_check("axx", Syntax.constant_name)
    expr=Syntax.constant_name + Syntax.EQ + Syntax.definitely_constant_value
    parse_wrap_check("axx = 1.2 g", expr)
    def parse(t):
        return CDPLanguage.SetNameConstant(t[0], t[1], t[2])
    expr2 = sp(expr, parse)
    parse_wrap_check("axx = 1.2 g", expr2)
    parse_wrap_check("axx = 1.2 g", Syntax.setname_constant)
    parse_wrap_check("a = 1 g", Syntax.setname_constant)
    parse_wrap_check("a = 1 g  'Number of constants'", Syntax.setname_constant)
    parse_wrap_check("constant a = 1 g  'Number of constants'", Syntax.setname_constant)
    parse_wrap_check(
        "constant gravity = (9.8 m/s^2) / 6 dimensionless 'Gravity on Earth'",
        Syntax.setname_constant)
    s = """
     mcdp {
    ' One example of documentation for the entire MCDP.'

    requires     mass [kg]   'The mass that must be transported.'
    provides capacity [kWh]  'The capacity of the battery.'

    constant a = 1 g  'Number of constants'
  
    constant gravity = (9.8 m/s^2) / 6 dimensionless 'Gravity on Earth'

    variable x, y [Nat] 'constant '
  }"""
    parse_ndp(s)
Example #2
0
def check_lang99(): # TODO: rename
    s = """
    mcdp {
      requires r [Nat]
      f = Nat: 2 + required r
      provides f
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 

    s = """
    mcdp {
      requires r [Nat]
      f = Nat: 2 + r
      provides f
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 

    s = """
    mcdp {
      provides f [Nat]
      r = Nat: 2 + f
      requires r
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #3
0
def check_approx_res4(): # check_error line
    s = ("""
    
    
    mcdp {
        provides f [m]
        requires r [m]
        
        
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f f
    
    """)
    try:
        parse_ndp(s)  # , Syntax.ndpt_dp_rvalue)
    except DPSyntaxError as e:
        s = str(e)
        assert  'line 18' in s
        return
    else:
        raise Exception()
Example #4
0
def constant_inverse_constant():
    s = """
    mcdp {
        constant x = 1 / 2 m
    }
    """
    parse_ndp(s)
Example #5
0
def check_comments03b():
    """ Double comments """

    s = """ mcdp { '''Doc''' } """
    parse_ndp(s)
    s = ''' mcdp { """Doc""" } '''
    parse_ndp(s)
Example #6
0
def imlements1():
    s = """
    mcdp {
        implements mcdp { }
    }
    """
    parse_ndp(s)
Example #7
0
def check_comments16():
    parse_wrap_check('1 g', Syntax.definitely_constant_value)
    parse_wrap_check("'Number of constants'", Syntax.comment_con)
    
    parse_wrap_check("axx = 1.2 g", Syntax.setname_rvalue)
    parse_wrap_check("axx", Syntax.constant_name)
#     expr = Syntax.constant_name + Syntax.EQ + Syntax.definitely_constant_value
#     parse_wrap_check("axx = 1.2 g", expr)
#     def parse(t):
#         return CDPLanguage.SetNameConstant(t[0], t[1], t[2], t[3])
#     expr2 = sp(expr, parse)
#     parse_wrap_check("axx = 1.2 g", expr2)
    parse_wrap_check("axx = 1.2 g", Syntax.setname_constant)
    parse_wrap_check("a = 1 g", Syntax.setname_constant)
    parse_wrap_check("a = 1 g  'Number of constants'", Syntax.setname_constant)
    parse_wrap_check("constant a = 1 g  'Number of constants'", Syntax.setname_constant)
    parse_wrap_check(
        "constant gravity = (9.8 m/s^2) / 6 dimensionless 'Gravity on Earth'",
        Syntax.setname_constant)
    s = """
     mcdp {
    ' One example of documentation for the entire MCDP.'

    requires     mass [kg]   'The mass that must be transported.'
    provides capacity [kWh]  'The capacity of the battery.'

    constant a = 1 g  'Number of constants'
  
    constant gravity = (9.8 m/s^2) / 6 dimensionless 'Gravity on Earth'

    variable x, y [Nat] 'constant '
  }"""
    parse_ndp(s)
Example #8
0
def check_approx_res4():  # check_error line
    s = ("""
    
    
    mcdp {
        provides f [m]
        requires r [m]
        
        
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f
        r >= f f
    
    """)
    try:
        parse_ndp(s)  # , Syntax.ndpt_dp_rvalue)
    except DPSyntaxError as e:
        s = str(e)
        assert 'line 18' in s
        return
    else:
        raise Exception()
Example #9
0
def check_comments03b():
    """ Double comments """

    s = """ mcdp { '''Doc''' } """
    parse_ndp(s)
    s = ''' mcdp { """Doc""" } '''
    parse_ndp(s)
Example #10
0
def constant_inverse3():
    s = """
    mcdp {
        provides precision [1/mm]
        provided precision <= 1 / 2 m
    }
    """
    parse_ndp(s)
Example #11
0
def check_lang107(): # TODO: rename
    """ sum of nat constants """
    s = """
    mcdp {
        requires x [Nat]
        required x >=  Nat:2 + Nat:1
    }
    """
    parse_ndp(s)
Example #12
0
def check_lang107():  # TODO: rename
    """ sum of nat constants """
    s = """
    mcdp {
        requires x [Nat]
        required x >=  Nat:2 + Nat:1
    }
    """
    parse_ndp(s)
Example #13
0
def check_lang106(): # TODO: rename
    """ Refininement when variables have the same name. """
    s = """
    mcdp {
        requires power [Nat]
        provides power [Nat]
        power >= power + Nat:1
    }
    """
    parse_ndp(s)
Example #14
0
def check_lang106():  # TODO: rename
    """ Refininement when variables have the same name. """
    s = """
    mcdp {
        requires power [Nat]
        provides power [Nat]
        power >= power + Nat:1
    }
    """
    parse_ndp(s)
Example #15
0
def missing_power_resources():

    parse_ndp("""
    mcdp {
        provides f [dimensionless]
        requires r [dimensionless]
        
        provided f  <= (required r)²
    }
    """)
Example #16
0
def check_lang89b(): # TODO: rename
    s = """
    mcdp {
        provides f [Nat] 
        requires r [Nat] 
        
        r >= max(f, f, f) 
    }
    """

    parse_ndp(s).get_dp() 
Example #17
0
def check_lang89b():  # TODO: rename
    s = """
    mcdp {
        provides f [Nat] 
        requires r [Nat] 
        
        r >= max(f, f, f) 
    }
    """

    parse_ndp(s).get_dp()
Example #18
0
def special_letters1():
    s = """
    mcdp {
        provides lift [N]
        requires power [W]

        requires budget [USD]
        required budget ≥ 1000 USD
        requires mass = 1 kg
        l = provided lift
        #01234
        p₀ = 1 W
        p₁ = 1 W / N
        p₂ = 1 W / N²
        α₁ = 10
        # xₘₐₓ
        required power ≥ p₀ + p₁·l + p₂·l²
    }
"""
    parse_ndp(s)

    # should be able to use a_1 and a₁ as synonyms
    s = """
    mcdp {
        a_1 = 42
        b = a₁
    }
"""
    parse_ndp(s)

    s = """
    mcdp {
        a₁ = 42
        b = a_1
    }
"""
    parse_ndp(s)

    s = """
    mcdp {
        η = 42
        b = eta
    }
"""
    parse_ndp(s)

    s = """
    mcdp {
        eta = 42
        b = η
    }
"""
    parse_ndp(s)
Example #19
0
def check_variables02():
    s = """
    mcdp {
        provides f [Nat]
        requires r [Nat]
        
        variable x [Nat]

        provided f <= x
        x <= required r
    }
    """
    parse_ndp(s)
Example #20
0
def check_variables12():
    s = """
mcdp {
    provides z [Nat]

    variable x, y [Nat]

    x + y >= ceil(sqrt(x)) + ceil(sqrt(y)) + provided z

    requires x, y
}
    """
    parse_ndp(s)
Example #21
0
def check_lang118():  # TODO: rename
    """ Warnings """
    s = """
    mcdp {
        provides f [Nat]
        
        f <= Nat: 2
    }
    """
    context = ModelBuildingContext()
    parse_ndp(s, context)
    w = context.warnings
    assert_equal(len(w), 1)
    assert_equal(w[0].which, MCDPWarnings.LANGUAGE_REFERENCE_OK_BUT_IMPRECISE)
Example #22
0
def check_lang118(): # TODO: rename
    """ Warnings """
    s = """
    mcdp {
        provides f [Nat]
        
        f <= Nat: 2
    }
    """ 
    context = ModelBuildingContext()
    parse_ndp(s, context)
    w = context.warnings
    assert_equal(len(w), 1)
    assert_equal(w[0].which, MCDPWarnings.LANGUAGE_REFERENCE_OK_BUT_IMPRECISE)
Example #23
0
def check_lang_invplus():
    assert_parsable_to_connected_ndp("""
mcdp {
    provides a [s]
    
    requires x [s]
    requires y [s]
    
    x + y >= a
}""")

    s = """
    mcdp {
        provides a [s]
        
        requires x [s]
        requires y [s]
        requires z [s]
        
        x + y * z >= a
    }"""
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        if 'Inconsistent units' in str(e):
            pass
        else:
            msg = 'Expected inconsistent unit error.'
            raise_desc(Exception, msg)
    else:
        msg = 'Expected exception'
        raise_desc(Exception, msg)

    s = """
    mcdp {
        provides a [s]
        
        requires x [s]
        requires y [hour]
        
        x + y >= a
    }"""
    try:
        parse_ndp(s)
    except DPNotImplementedError as e:
        pass
    else:
        msg = 'Expected DPNotImplementedError'
        raise_desc(Exception, msg)
Example #24
0
def check_lang_invplus():
    assert_parsable_to_connected_ndp("""
mcdp {
    provides a [s]
    
    requires x [s]
    requires y [s]
    
    x + y >= a
}""")

    s = """
    mcdp {
        provides a [s]
        
        requires x [s]
        requires y [s]
        requires z [s]
        
        x + y * z >= a
    }"""
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        if 'Inconsistent units' in str(e):
            pass
        else:
            msg = 'Expected inconsistent unit error.'
            raise_desc(Exception, msg)
    else:
        msg = 'Expected exception'
        raise_desc(Exception, msg)

    s = """
    mcdp {
        provides a [s]
        
        requires x [s]
        requires y [hour]
        
        x + y >= a
    }"""
    try:
        parse_ndp(s)
    except DPNotImplementedError as e:
        pass
    else:
        msg = 'Expected DPNotImplementedError'
        raise_desc(Exception, msg)
Example #25
0
def assert_parse_ndp_semantic_error(string, contains=None):
    """
        Asserts that parsing this string as an NDP will raise
        a DPSemanticError. If contains is not None, it is 
        a substring that must be contained in the error.
        
        Returns the exception. 
    """
    try:
        res = parse_ndp(string)
    except DPSemanticError as e:
        if contains is not None:
            s = str(e)
            if not contains in s:
                msg = 'Expected a DPSemanticError with substring %r.' % contains
                raise_wrapped(TestFailed, e, msg, string=string)
            return e
        else:
            return e
    except BaseException as e:
        msg = 'Expected DPSemanticError, but obtained %s.' % type(e)
        raise_wrapped(TestFailed, e, msg, string=string)

    msg = 'Expected DPSemanticError, but no exception was thrown.'
    raise_desc(TestFailed, msg, string=string, result=res)
    assert False
Example #26
0
def check_comments_show_up():
    s = """
    # comment1
    mcdp {
        requires x [Nat]
        # comment2
        requires x [Nat]
    }
    """
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        st = str(e)
        if not 'comment2' in st:
            msg = 'Comments are not preserved'
            raise_wrapped(Exception, e, msg)
Example #27
0
def check_comments_show_up():
    s = """
    # comment1
    mcdp {
        requires x [Nat]
        # comment2
        requires x [Nat]
    }
    """
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        st = str(e)
        if not 'comment2' in st:
            msg = 'Comments are not preserved'
            raise_wrapped(Exception, e, msg)
Example #28
0
def check_lang89d(): # TODO: rename

    # All of these should be equivalent to Min1(Nat, 2)
    min3s = [ """
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(f, Nat:2) 
    } ""","""
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(f, Nat:2, Nat:3) 
    } ""","""
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(Nat:2, f, Nat:3) 
    }"""]

    for s in min3s:
#         print '-' * 10
#         print s
        dp = parse_ndp(s).get_dp()
#         print dp.repr_long()
        check_isinstance(dp, MinF1DP)
        assert dp.value == 2
Example #29
0
def assert_parse_ndp_semantic_error(string, contains=None):
    """
        Asserts that parsing this string as an NDP will raise
        a DPSemanticError. If contains is not None, it is 
        a substring that must be contained in the error.
        
        Returns the exception. 
    """
    try:
        res = parse_ndp(string)
    except DPSemanticError as e:
        if contains is not None:
            s = str(e)
            if not contains in s:
                msg = 'Expected a DPSemanticError with substring %r.' % contains
                raise_wrapped(TestFailed, e, msg, string=string)
            return e
        else:
            return e
    except BaseException as e:
        msg = 'Expected DPSemanticError, but obtained %s.' % type(e)
        raise_wrapped(TestFailed, e, msg, string=string)

    msg = 'Expected DPSemanticError, but no exception was thrown.'
    raise_desc(TestFailed, msg, string=string, result=res) 
    assert False
Example #30
0
def check_lang89d():  # TODO: rename

    # All of these should be equivalent to Min1(Nat, 2)
    min3s = [
        """
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(f, Nat:2) 
    } """, """
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(f, Nat:2, Nat:3) 
    } """, """
    mcdp {
        provides f [Nat] 
        requires r [Nat]         
        r >= min(Nat:2, f, Nat:3) 
    }"""
    ]

    for s in min3s:
        #         print '-' * 10
        #         print s
        dp = parse_ndp(s).get_dp()
        #         print dp.repr_long()
        check_isinstance(dp, MinF1DP)
        assert dp.value == 2
Example #31
0
def check_approx_res3():
    s = """
        mcdp {
            requires y [m]
            
            provides x [m]
            
            y >= approx(x, 1 J)
        }
    """
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        s = str(e)
        assert 'The step is specified in a unit' in s
    else:
        raise Exception()
Example #32
0
def sum01():
    s = """
    mcdp {
        
        a = instance mcdp {
            requires mass = 10 g
        }

        b = instance mcdp {
            requires mass = 10 g
        }
    
        requires mass = sum mass required by *  
    }
    
    """
    parse_ndp(s)
Example #33
0
def assert_parsable_to_connected_ndp(s , desc=None):  # @UnusedVariable
    """ This asserts that s can be compiled to a *connected* ndp. """
    res = parse_ndp(s)
    if isinstance(res, SimpleWrap):
        return res
    ndp = res.abstract()
    #print(ndp.repr_long())
    return ndp
Example #34
0
def check_approx_res3():
    s = """
        mcdp {
            requires y [m]
            
            provides x [m]
            
            y >= approx(x, 1 J)
        }
    """
    try:
        parse_ndp(s)
    except DPSemanticError as e:
        s = str(e)
        assert 'The step is specified in a unit' in s
    else:
        raise Exception()
Example #35
0
def assert_parsable_to_connected_ndp(s, desc=None):  # @UnusedVariable
    """ This asserts that s can be compiled to a *connected* ndp. """
    res = parse_ndp(s)
    if isinstance(res, SimpleWrap):
        return res
    ndp = res.abstract()
    #print(ndp.repr_long())
    return ndp
Example #36
0
def sum02():
    s = """
    mcdp {
        
        a = instance mcdp {
            provides capacity = 10 g
        }

        b = instance mcdp {
            provides capacity = 10 g
        }
    
        provides capacity = sum capacity provided by *  
    }
    
    """
    parse_ndp(s)
Example #37
0
def check_shortcut5_context():
    s = """
    mcdp {
        provides f1,f2 [Nat]
        requires r1,r2 [Nat]
    }
    """
    ndp = parse_ndp(s)
    assert_equal(['r1', 'r2'], ndp.get_rnames())
    assert_equal(['f1', 'f2'], ndp.get_fnames())
Example #38
0
def check_lang113():  # TODO: rename
    s = """
     mcdp {
         provides x = Nat:1 * 10 g
     } 
     """

    ndp = parse_ndp(s)
    dp = ndp.get_dp()
    print dp.repr_long()
Example #39
0
def check_addmake1():
    parse_wrap_check(""" addmake(root: code mcdp_lang_tests.syntax_misc.f) mcdp {} """,
                     Syntax.ndpt_addmake)

    ndp = parse_ndp(""" addmake(root: code mcdp_lang_tests.syntax_misc.f) mcdp {} """)

    assert len(ndp.make) == 1
    assert ndp.make[0][0] == 'root'
    from mcdp_lang.eval_ndp_imp import ImportedFunction
    assert isinstance(ndp.make[0][1], ImportedFunction)
Example #40
0
def check_lang96():  # TODO: rename
    s = """
    mcdp {
      requires rb [J]
      provides f2 [J]
      f2 <= rb + 2 J
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #41
0
def check_shortcut5_context():
    s = """
    mcdp {
        provides f1,f2 [Nat]
        requires r1,r2 [Nat]
    }
    """
    ndp = parse_ndp(s)
    assert_equal(['r1','r2'], ndp.get_rnames())
    assert_equal(['f1','f2'], ndp.get_fnames())
Example #42
0
def check_lang96(): # TODO: rename
    s = """
    mcdp {
      requires rb [J]
      provides f2 [J]
      f2 <= rb + 2 J
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 
Example #43
0
def check_lang113(): # TODO: rename
    s="""
     mcdp {
         provides x = Nat:1 * 10 g
     } 
     """   
    
    ndp = parse_ndp(s)
    dp = ndp.get_dp()
    print dp.repr_long()
Example #44
0
def check_lang92():  # TODO: rename
    s = """
    mcdp {
        provides f [m]
        requires r [m] 
        
        max(provided f, 5 m) <= required r 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #45
0
def check_lang94(): # TODO: rename
    s = """
    mcdp {
        provides f [m]
        requires r [m] 
        
        provided f <= min(required r, 5m) 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 
Example #46
0
def check_lang97(): # TODO: rename
    """ Requires shortcut with constant """
    s = """
    mcdp {
      x = Nat: 2
      requires x
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 
    
    s = """
    mcdp {
      x = Nat: 2
      y = Nat: 3
      requires x, y
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long() 
Example #47
0
def check_lang111(): # TODO: rename
    """ constant ref for functions """
    s = """
    mcdp {
        c = Nat: 2
        provides f = c
    }
    """
    ndp = parse_ndp(s)
    dp = ndp.get_dp()
    print dp.repr_long()
Example #48
0
def check_lang94():  # TODO: rename
    s = """
    mcdp {
        provides f [m]
        requires r [m] 
        
        provided f <= min(required r, 5m) 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #49
0
def check_lang111():  # TODO: rename
    """ constant ref for functions """
    s = """
    mcdp {
        c = Nat: 2
        provides f = c
    }
    """
    ndp = parse_ndp(s)
    dp = ndp.get_dp()
    print dp.repr_long()
Example #50
0
def check_lang97():  # TODO: rename
    """ Requires shortcut with constant """
    s = """
    mcdp {
      x = Nat: 2
      requires x
    }
    """
    parse_ndp(s).get_dp()
    #     print dp.repr_long()

    s = """
    mcdp {
      x = Nat: 2
      y = Nat: 3
      requires x, y
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #51
0
def check_lang92(): # TODO: rename
    s = """
    mcdp {
        provides f [m]
        requires r [m] 
        
        max(provided f, 5 m) <= required r 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #52
0
def check_lang95b(): # TODO: rename
    # Nat and rcomp
    s = """
    mcdp {
      requires r [Nat]
      provides f [Nat]
      provided f + Rcomp:2.3 <= required r
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
    
    s = """
    mcdp {
      requires r [Nat]
      provides f [Nat]
      f <= required r + Rcomp:2.3
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
    
    s = """
    mcdp {
      requires r [Nat]
      provides f [Nat]
      f <= required r + Top Rcomp
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
    
    s = """
    mcdp {
      requires r [Nat]
      provides f [Nat]
      provided f + Top Rcomp <= required r
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #53
0
def check_comments07(): # rename check_addition_nat_rcomp
    
    
    s = """
    mcdp {  
       variable a, c [dimensionless] 
       c >= square(a) + Nat:1 
       a >= square(c)  
    } """
    
    parse_ndp(s)
    
    
    s = """
    mcdp {  
       variable a, c [Rcomp] 
       c >= square(a) + Nat:1 
       a >= square(c)  
    } """
    
    parse_ndp(s)
Example #54
0
def check_lang89e(): # TODO: rename

    s = """
    mcdp {
        provides f [Nat] 
        requires r [Nat] 
        
        r >= ceil(f) 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #55
0
def check_lang88b(): # TODO: rename
    s = """
    mcdp {
        provides f [dimensionless]
        requires r >= ceil(provided f)
    }
    """
    dp = parse_ndp(s).get_dp()
    print(s)
    print(dp.repr_long())
    R = dp.get_res_space()
    assert R == R_dimensionless, R
Example #56
0
def check_lang89f(): # TODO: rename

    s = """
    mcdp {
        provides f [Rcomp] 
        requires r [Rcomp] 
        
        required r >= ceil(provided f) 
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #57
0
def check_lang89i(): # TODO: rename

    s = """
    mcdp {
        provides f [m]
        requires r [Nat] 
        
        required r >= ceil(provided f)  / 5 m
    }
    """
    dp = parse_ndp(s).get_dp()
    print dp.repr_long()
Example #58
0
def check_minmax2(): # TODO: rename
    ndp = parse_ndp("""
        mcdp {
            provides f1 [Nat]
            provides f2 [Nat]
            requires r  [Nat]
            
            min(provided f1, provided f2) <= required r
        }
    """)
    dp = ndp.get_dp()
    check_isinstance(dp, MeetNDP)
Example #59
0
def figint01():
    ndp = parse_ndp("""
        mcdp {
        
        }
    """)
    mf = MakeFiguresNDP(ndp=ndp, library=None, yourname=None)

    for name in mf.available():
        formats = mf.available_formats(name)
        res = mf.get_figure(name, formats)
        print('%s -> %s %s ' % (name, formats, map(len, [res[f] for f in formats])))
Example #60
0
def check_comments07(): # rename check_addition_nat_rcomp
    
    
    s = """
    mcdp {  
       variable a, c [dimensionless] 
       c >= square(a) + Nat:1 
       a >= square(c)  
    } """
    
    parse_ndp(s)
    
    
    s = """
    mcdp {  
       variable a, c [Rcomp] 
       c >= square(a) + Nat:1 
       a >= square(c)  
    } """
    
    parse_ndp(s)