def test_dof_index(self): s = System() j1 = FreeJoint('j1') j2 = FreeJoint('j2') s.add_leaf(j1) j1.add_leaf(j2) s.setup() # Prescribe some of the strains: # _____j1____ _____j2____ # Strain: 0 1 2 3 4 5 0 1 2 3 4 5 # Prescr: * * * # Dofs: 0 1 2 3 4 5 6 7 8 s.prescribe(j1, 0, part=[1, 4]) s.prescribe(j2, 0, part=[3]) self.assertEqual(s.dof_index('j1', 0), 0) self.assertEqual(s.dof_index('j1', 2), 1) self.assertEqual(s.dof_index('j1', 5), 3) self.assertEqual(s.dof_index('j2', 5), 8) # Strain index out of range should give IndexError with self.assertRaises(IndexError): s.dof_index('j1', 6) # Asking for index of prescribed strain should give ValueError with self.assertRaises(ValueError): s.dof_index('j1', 1)