def test_templated_input(self): template = "Junk\n" + \ "Anchor\n" + \ " A 1, 2 34, Test 1e65\n" + \ " B 4 Stuff\n" + \ "Anchor\n" + \ " C 77 False Inf 333.444\n" outfile = open(self.templatename, 'w') outfile.write(template) outfile.close() gen = InputFileGenerator() gen.set_template_file(self.templatename) gen.set_generated_file(self.filename) gen.set_delimiters(', ') gen.mark_anchor('Anchor') gen.transfer_var('CC', 2, 0) gen.transfer_var(3.0, 1, 3) gen.reset_anchor() gen.mark_anchor('Anchor', 2) gen.transfer_var('NaN', 1, 4) gen.reset_anchor() gen.transfer_var('55', 3, 2) gen.mark_anchor('C 77') gen.transfer_var(1.3e-37, -3, 6) gen.clearline(-5) gen.mark_anchor('Anchor', -1) gen.transfer_var('8.7', 1, 5) gen.generate() infile = open(self.filename, 'r') result = infile.read() infile.close() answer = "\n" + \ "Anchor\n" + \ " A 1, 3.0 34, Test 1.3e-37\n" + \ " B 55 Stuff\n" + \ "Anchor\n" + \ " C 77 False NaN 8.7\n" self.assertEqual(answer, result) # Test some errors try: gen.mark_anchor('C 77', 3.14) except ValueError as err: msg = "The value for occurrence must be an integer" self.assertEqual(str(err), msg) else: self.fail('ValueError expected') try: gen.mark_anchor('C 77', 0) except ValueError as err: msg = "0 is not valid for an anchor occurrence." self.assertEqual(str(err), msg) else: self.fail('ValueError expected') try: gen.mark_anchor('ZZZ') except RuntimeError as err: msg = "Could not find pattern ZZZ in template file template.dat" self.assertEqual(str(err), msg) else: self.fail('RuntimeError expected')
def test_templated_input_arrays(self): template = "Anchor\n" + \ "0 0 0 0 0\n" outfile = open(self.templatename, 'w') outfile.write(template) outfile.close() gen = InputFileGenerator() gen.set_template_file(self.templatename) gen.set_generated_file(self.filename) gen.mark_anchor('Anchor') gen.transfer_array(array([1, 2, 3, 4.75, 5.0]), 1, 3, 5, sep=' ') gen.generate() infile = open(self.filename, 'r') result = infile.read() infile.close() answer = "Anchor\n" + \ "0 0 1.0 2.0 3.0 4.75 5.0\n" self.assertEqual(answer, result)
def test_templated_input_2Darrays(self): template = "Anchor\n" + \ "0 0 0 0 0\n" + \ "0 0 0 0 0\n" outfile = open(self.templatename, 'w') outfile.write(template) outfile.close() gen = InputFileGenerator() gen.set_template_file(self.templatename) gen.set_generated_file(self.filename) gen.mark_anchor('Anchor') var = array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) gen.transfer_2Darray(var, 1, 2, 1, 5) gen.generate() infile = open(self.filename, 'r') result = infile.read() infile.close() answer = "Anchor\n" + \ "1 2 3 4 5\n" + \ "6 7 8 9 10\n" self.assertEqual(answer, result)
def test_templated_input_same_anchors(self): template = "CQUAD4 1 3.456\n" + \ "CQUAD4 2 4.123\n" + \ "CQUAD4 3 7.222\n" + \ "CQUAD4 4\n" outfile = open(self.templatename, 'w') outfile.write(template) outfile.close() gen = InputFileGenerator() gen.set_template_file(self.templatename) gen.set_generated_file(self.filename) gen.set_delimiters(', ') gen.mark_anchor('CQUAD4') gen.transfer_var('x', 0, 2) gen.mark_anchor('CQUAD4') gen.transfer_var('y', 0, 3) gen.mark_anchor('CQUAD4', 2) gen.transfer_var('z', 0, 2) gen.generate() infile = open(self.filename, 'r') result = infile.read() infile.close() answer = "CQUAD4 x 3.456\n" + \ "CQUAD4 2 y\n" + \ "CQUAD4 3 7.222\n" + \ "CQUAD4 z\n" self.assertEqual(answer, result)