Skip to content

Commit

Permalink
Cleaner tests
Browse files Browse the repository at this point in the history
  • Loading branch information
cmccomb committed Jan 2, 2024
1 parent 5099fff commit 3a4f553
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 100 deletions.
155 changes: 67 additions & 88 deletions tests/test_construction_and_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,69 +26,55 @@ def test_build_methods(self):
)

# Build truss from scratch
t1 = trussme.Truss()
t1.add_pinned_joint([0.0, 0.0, 0.0])
t1.add_free_joint([1.0, 0.0, 0.0])
t1.add_free_joint([2.0, 0.0, 0.0])
t1.add_free_joint([3.0, 0.0, 0.0])
t1.add_free_joint([4.0, 0.0, 0.0])
t1.add_pinned_joint([5.0, 0.0, 0.0])

t1.add_free_joint([0.5, 1.0, 0.0])
t1.add_free_joint([1.5, 1.0, 0.0])
t1.add_free_joint([2.5, 1.0, 0.0])
t1.add_free_joint([3.5, 1.0, 0.0])
t1.add_free_joint([4.5, 1.0, 0.0])

t1.add_out_of_plane_support("z")

t1.joints[7].loads[1] = -20000
t1.joints[8].loads[1] = -20000
t1.joints[9].loads[1] = -20000

t1.add_member(0, 1)
t1.add_member(1, 2)
t1.add_member(2, 3)
t1.add_member(3, 4)
t1.add_member(4, 5)

t1.add_member(6, 7)
t1.add_member(7, 8)
t1.add_member(8, 9)
t1.add_member(9, 10)

t1.add_member(0, 6)
t1.add_member(6, 1)
t1.add_member(1, 7)
t1.add_member(7, 2)
t1.add_member(2, 8)
t1.add_member(8, 3)
t1.add_member(3, 9)
t1.add_member(9, 4)
t1.add_member(4, 10)
t1.add_member(10, 5)
truss_from_commands = trussme.Truss()
truss_from_commands.add_pinned_joint([0.0, 0.0, 0.0])
truss_from_commands.add_free_joint([1.0, 0.0, 0.0])
truss_from_commands.add_free_joint([2.0, 0.0, 0.0])
truss_from_commands.add_free_joint([3.0, 0.0, 0.0])
truss_from_commands.add_free_joint([4.0, 0.0, 0.0])
truss_from_commands.add_pinned_joint([5.0, 0.0, 0.0])

truss_from_commands.add_free_joint([0.5, 1.0, 0.0])
truss_from_commands.add_free_joint([1.5, 1.0, 0.0])
truss_from_commands.add_free_joint([2.5, 1.0, 0.0])
truss_from_commands.add_free_joint([3.5, 1.0, 0.0])
truss_from_commands.add_free_joint([4.5, 1.0, 0.0])

truss_from_commands.add_out_of_plane_support("z")

truss_from_commands.joints[7].loads[1] = -20000
truss_from_commands.joints[8].loads[1] = -20000
truss_from_commands.joints[9].loads[1] = -20000

truss_from_commands.add_member(0, 1)
truss_from_commands.add_member(1, 2)
truss_from_commands.add_member(2, 3)
truss_from_commands.add_member(3, 4)
truss_from_commands.add_member(4, 5)

truss_from_commands.add_member(6, 7)
truss_from_commands.add_member(7, 8)
truss_from_commands.add_member(8, 9)
truss_from_commands.add_member(9, 10)

truss_from_commands.add_member(0, 6)
truss_from_commands.add_member(6, 1)
truss_from_commands.add_member(1, 7)
truss_from_commands.add_member(7, 2)
truss_from_commands.add_member(2, 8)
truss_from_commands.add_member(8, 3)
truss_from_commands.add_member(3, 9)
truss_from_commands.add_member(9, 4)
truss_from_commands.add_member(4, 10)
truss_from_commands.add_member(10, 5)

# Build truss from file
t2 = trussme.read_trs(TEST_TRUSS_FILENAME)
truss_from_file = trussme.read_trs(TEST_TRUSS_FILENAME)

# Save reports
trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_1.md"), t1, goals
self.assertEqual(
trussme.report_to_str(truss_from_file, goals),
trussme.report_to_str(truss_from_commands, goals),
)
trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_2.md"), t2, goals
)

# Test for sameness
file_are_the_same = filecmp.cmp(
os.path.join(os.path.dirname(__file__), "report_1.md"),
os.path.join(os.path.dirname(__file__), "report_2.md"),
)
self.assertTrue(file_are_the_same)

# Clean up
os.remove(os.path.join(os.path.dirname(__file__), "report_1.md"))
os.remove(os.path.join(os.path.dirname(__file__), "report_2.md"))

def test_save_to_trs_and_rebuild(self):
goals = trussme.Goals(
Expand All @@ -99,26 +85,23 @@ def test_save_to_trs_and_rebuild(self):
)

# Build truss from file
t2 = trussme.read_trs(TEST_TRUSS_FILENAME)
truss_from_file = trussme.read_trs(TEST_TRUSS_FILENAME)

# Save
trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_2.md"), t2, goals
)
t2.to_trs(os.path.join(os.path.dirname(__file__), "asdf.trs"))
# Save the truss
truss_from_file.to_trs(os.path.join(os.path.dirname(__file__), "asdf.trs"))

# Rebuild
t3 = trussme.read_trs(os.path.join(os.path.dirname(__file__), "asdf.trs"))
trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_3.md"), t3, goals
truss_rebuilt_from_file = trussme.read_trs(
os.path.join(os.path.dirname(__file__), "asdf.trs")
)

# Test for sameness
file_are_the_same = filecmp.cmp(
os.path.join(os.path.dirname(__file__), "report_3.md"),
os.path.join(os.path.dirname(__file__), "report_2.md"),
self.assertEqual(
trussme.report_to_str(truss_from_file, goals),
trussme.report_to_str(truss_rebuilt_from_file, goals),
)
self.assertTrue(file_are_the_same)

# Cleanup
os.remove(os.path.join(os.path.dirname(__file__), "asdf.trs"))

def test_save_to_json_and_rebuild(self):
goals = trussme.Goals(
Expand All @@ -129,24 +112,20 @@ def test_save_to_json_and_rebuild(self):
)

# Build truss from file
t2 = trussme.read_trs(TEST_TRUSS_FILENAME)
truss_from_file = trussme.read_trs(TEST_TRUSS_FILENAME)

# Save
trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_4.md"), t2, goals
)
t2.to_json(os.path.join(os.path.dirname(__file__), "asdf.json"))
# Save the truss
truss_from_file.to_json(os.path.join(os.path.dirname(__file__), "asdf.json"))

# Rebuild
t3 = trussme.read_json(os.path.join(os.path.dirname(__file__), "asdf.json"))

trussme.report_to_md(
os.path.join(os.path.dirname(__file__), "report_5.md"), t3, goals
truss_rebuilt_from_file = trussme.read_json(
os.path.join(os.path.dirname(__file__), "asdf.json")
)

# Test for sameness
file_are_the_same = filecmp.cmp(
os.path.join(os.path.dirname(__file__), "report_5.md"),
os.path.join(os.path.dirname(__file__), "report_4.md"),
self.assertEqual(
trussme.report_to_str(truss_from_file, goals),
trussme.report_to_str(truss_rebuilt_from_file, goals),
)
self.assertTrue(file_are_the_same)

# Cleanup
os.remove(os.path.join(os.path.dirname(__file__), "asdf.json"))
16 changes: 4 additions & 12 deletions tests/test_custom_materials_and_shapes.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,9 @@ def test_custom_material(self):
truss.add_member(1, 2, material=unobtanium)
truss.add_member(2, 0, material=unobtanium)

goals = trussme.Goals(
minimum_fos_buckling=1.5,
minimum_fos_yielding=1.5,
maximum_deflection=6e-3,
)
truss.analyze()

print(trussme.report_to_str(truss, goals))
self.assertIsNotNone(truss.fos)

def test_custom_shape(self):
# Build truss from scratch
Expand Down Expand Up @@ -62,10 +58,6 @@ def name(self) -> str:
truss.add_member(1, 2, shape=MagicalRod())
truss.add_member(2, 0, shape=MagicalRod())

goals = trussme.Goals(
minimum_fos_buckling=1.5,
minimum_fos_yielding=1.5,
maximum_deflection=6e-3,
)
truss.analyze()

print(trussme.report_to_str(truss, goals))
self.assertIsNotNone(truss.fos)

0 comments on commit 3a4f553

Please sign in to comment.