def test_case_control_04(self):
        seti = 'SET 88 = 5, 6, 7, 8, 9, 10 THRU 55 EXCEPT 15, 16, 77, 78, 79, 100 THRU 300'
        lines = []
        deck = CaseControlDeck(lines)
        deck.create_new_subcase(2)
        deck.add_parameter_to_local_subcase(2, seti)
        values, set_id = deck.get_subcase_parameter(2, 'SET 88')

        check = [
            (7, True),
            (13, True),
            (15, False),
            (16, False),
            (55, True),
            (77, True),
            (99, False),
            (150, True),
        ]
        for value, exists in check:
            if exists:
                assert value in values, 'value=%s should be in values=%s' % (
                    value, values)
            else:
                assert value not in values, 'value=%s should NOT be in values=%s' % (
                    value, values)

        unused_msg = write_set(set_id, values)

        singles, doubles = collapse_thru_packs(values)
        assert singles == [77, 78, 79], singles
        assert doubles == [[5, 'THRU', 14], [17, 'THRU', 55],
                           [100, 'THRU', 300]], doubles
Exemple #2
0
    def test_case_control_03(self):
        values = [
            11, 12, 13, 14, 15, 16, 17, 18,
            19, 20, 21, 22, 23, 24, 25, 26,
            1000000000000000000000000000000000000000000000000000000, 33]
        spaces = '    '
        set_id = 10

        singles, doubles = collapse_thru_packs(values)
        assert singles == [33, 1000000000000000000000000000000000000000000000000000000], singles
        assert doubles == [[11, 'THRU', 26]], doubles
        unused_msg = write_set(set_id, values, spaces)

        set_id = 11
        values = ['ALL']
        unused_msg = write_set(set_id, values, spaces)
Exemple #3
0
 def write(self, spaces):
     """
     writes
     SET 80 = 3926, 3927, 3928, 4141, 4142, 4143, 4356, 4357, 4358, 4571,
          4572, 4573, 3323 THRU 3462, 3464 THRU 3603, 3605 THRU 3683,
          3910 THRU 3921, 4125 THRU 4136, 4340 THRU 4351
     """
     return write_set(self.value, self.set_id, spaces=spaces)
Exemple #4
0
 def test_case_control_set(self):
     """tests adding SETs"""
     deck = CaseControlDeck([], log=None)
     subcase = deck.create_new_subcase(1)
     subcase.params['SET 42'] = [[1, 2, 3, 4, 5], 42, 'SET-type']
     set_str = write_set(41, [1, 2, 3]).rstrip()
     set_str2 = set_str.split('=', 1)[1]
     assert set_str2 == ' 1, 2, 3', set_str2
     subcase.add('SET 52', set_str2, 52, 'SET-type')
     subcase.add_set_from_values(100, [1, 2, 10])
    def test_case_control_03(self):
        values = [11, 12, 13, 14, 15, 16, 17, 18,
           19, 20, 21, 22, 23, 24, 25, 26,
           1000000000000000000000000000000000000000000000000000000, 33]
        spaces = '    '
        options = 10

        singles, doubles = collapse_thru_packs(values)
        assert singles == [33, 1000000000000000000000000000000000000000000000000000000], singles
        assert doubles == [[11, 'THRU', 26]], doubles
        msg = write_set(values, options, spaces)
Exemple #6
0
    def print_param(self, key, param):
        """
        Prints a single entry of the a subcase from the global or local
        subcase list.
        """
        msg = ''
        #msg += 'id=%s   ' %(self.id)
        (value, options, param_type) = param

        spaces = ''
        if self.id > 0:
            spaces = '    '

        #print('key=%s param=%s param_type=%s' % (key, param, param_type))
        if param_type == 'SUBCASE-type':
            if self.id > 0:
                msgi = 'SUBCASE %s\n' % (self.id)
                assert len(msgi) < 72, 'len(msg)=%s; msg=\n%s' % (len(msgi),
                                                                  msgi)
                msg += msgi
            #else:  global subcase ID=0 and is not printed
            #    pass
        elif param_type == 'KEY-type':
            #print (KEY-TYPE:  %r" % value)
            assert value is not None, param
            if ',' in value:
                sline = value.split(',')
                two_spaces = ',\n' + 2 * spaces
                msgi = spaces + two_spaces.join(sline) + '\n'
                assert len(msgi) < 68, 'len(msg)=%s; msg=\n%s' % (len(msgi),
                                                                  msgi)
                msg += msgi
            else:
                msgi = spaces + '%s\n' % value
                #assert len(msgi) < 68, 'len(msg)=%s; msg=\n%s' % (len(msgi), msgi)
                msg += msgi
        elif param_type == 'STRING-type':
            msgi = spaces + '%s = %s\n' % (key, value)
            if key not in ['TITLE', 'LABEL', 'SUBTITLE']:
                assert len(msgi) < 68, 'len(msg)=%s; msg=\n%s' % (len(msgi),
                                                                  msgi)
            msg += msgi
        elif param_type == 'CSV-type':
            msgi = spaces + '%s,%s,%s\n' % (key, value, options)
            assert len(msgi) < 68, 'len(msg)=%s; msg=\n%s' % (len(msgi), msgi)
            msg += msgi
        elif param_type == 'STRESS-type':
            msg += write_stress_type(key, options, value, spaces)

        elif param_type == 'SET-type':
            #: .. todo:: collapse data...not written yet
            msg += write_set(options, value, spaces)
        elif param_type == 'OBJ-type':
            msg += value.write(spaces)
        else:
            # SET-type is not supported yet...
            msg = (
                '\nkey=%r param=%r\n'
                'allowed_params=[SET-type, STRESS-type, STRING-type, SUBCASE-type, KEY-type]\n'
                'CSV-type     -> PARAM,FIXEDB,-1\n'
                'KEY-type     -> ???\n'  # the catch all
                'SET-type     -> SET 99 = 1234\n'
                'SUBCASE-type -> ???\n'
                'STRESS-type  -> DISP(PLOT, SORT1)=ALL\n'
                '                STRESS(PLOT, SORT1)=ALL\n'
                'STRING-type  -> LABEL = A label\n'
                '                TITLE = A title\n'
                '                SUBTITLE = A subtitle\n'
                '' % (key, param))
            raise NotImplementedError(msg)

        #print("msg = %r" % (msg))
        return msg
Exemple #7
0
 def __repr__(self):
     """see `write`"""
     return write_set(self.value, self.set_id)