Source code for pyNastran.bdf.cards.test.test_materials

import unittest

from pyNastran.bdf.bdf import BDF, BDFCard, MAT1, MAT8, MAT11
from pyNastran.bdf.field_writer_8 import print_card_8

bdf = BDF(debug=False)

[docs]class TestMaterials(unittest.TestCase):
[docs] def test_mat1_01(self): # #MAT5 1 700. 300. 900. 400. 200. 600. 90.+ #+ .1 mid = 1 E = 2e7 G = 3e7 nu = 0.4 rho = 1e-50 fields = ['MAT1', mid, E, G, nu, rho] card = BDFCard(fields) mat1 = MAT1(card) self.assertEqual(mid, mat1.Mid()) self.assertEqual(E, mat1.E()) self.assertEqual(G, mat1.G()) self.assertEqual(nu, mat1.Nu()) self.assertEqual(rho, mat1.Rho()) size = 8 msg = mat1.write_card(size, 'dummy') self.assertEqual(msg, 'MAT1 1 2.+7 3.+7 .4 1.-50\n') size = 16 msg = mat1.write_card(size, 'dummy') self.assertEqual(msg, 'MAT1* 1 20000000. 30000000. .4\n* 1.-50\n')
[docs] def test_mat5_01(self): # #MAT5 1 700. 300. 900. 400. 200. 600. 90.+ #+ .1 pass
[docs] def test_mat8_01(self): # should fail... #lines = [ # fails??? # 'MAT8* 4700007 1675.47 1675.47 .33 * LHIG', # '* LHIG28.2 210000. 78000. * LHIH', # '* LHIH1.32-5 1.32-5 75. 1.943 * LHII', # '* LHII1.943 1.943 1.943 3.35', #] lines = [ # fails 'MAT8* 4700010 2.83+6 1.14+6 .55 * LHIJ', '* LHIJ717000. 285194. 285194. * LHIK', '* LHIK9.17-6 2.606-5 70. * LHIL', '* LHIL', ] lines_expected = [ 'MAT8* 4700010 2830000. 1140000. .55', '* 717000. 285194. 285194.', '* .00000917 .00002606 70.', '*', ] card = bdf.process_card(lines) #print(print_card_8(card)) card = BDFCard(card) #print("card =", card) #with self.assertRaises(RuntimeError): # temporary RuntimeError card2 = MAT8(card) fields = card2.raw_fields() msg = print_card_8(fields) #f = StringIO.StringIO() size = 16 msg = card2.write_card(size, 'dummy') #msg = f.getvalue() #print(msg) lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) #print(msg) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): msg = 'actual = %r\n' % actual msg += 'expected = %r' % expected self.assertEqual(actual, expected, msg)
[docs] def test_mat11_01(self): lines = [ 'MAT11 1 1.+75000000. 700000. .1 .13 .267000000.+', '+ 9000000.3000000. .1 1.-5 7.-6 8.-6 50.', ] lines_expected = [ 'MAT11 1 1.+75000000. 700000. .1 .13 .267000000.', ' 9000000.3000000. .1 .00001 .000007 .000008 50.' ] card = bdf.process_card(lines) card = BDFCard(card) card2 = MAT11(card) fields = card2.raw_fields() msg = print_card_8(fields) #f = StringIO.StringIO() size = 8 msg = card2.write_card(size, 'dummy') #msg = f.getvalue() #print(msg) lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) #print(msg) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): msg = '\nactual = %r\n' % actual msg += 'expected = %r' % expected self.assertEqual(actual, expected, msg)
if __name__ == '__main__': # pragma: no cover unittest.main()