def test_xor_combinations(self): assert_equal( (volA ^ volB), volume.UnionVolume(volume.CVDefinedVolume(op_id, -0.5, 0.25), volume.CVDefinedVolume(op_id, 0.5, 0.75))) assert_equal((volA ^ volA2), volume.SymmetricDifferenceVolume(volA, volA2))
def test_CVRangeVolumeSet(self): mins = [-1.5, -3.5] maxs = [2.0, 4.0] lv0 = volume.CVDefinedVolume(op_id, mins[0], maxs[0]) lv1 = volume.CVDefinedVolume(op_id, mins[1], maxs[1]) assert_equal([lv0, lv1], volume.VolumeFactory.CVRangeVolumeSet(op_id, mins, maxs))
def setup_module(): global op_id, volA, volB, volC, volD, volA2 op_id = CallIdentity() volA = volume.CVDefinedVolume(op_id, -0.5, 0.5) volB = volume.CVDefinedVolume(op_id, 0.25, 0.75) volC = volume.CVDefinedVolume(op_id, -0.75, -0.25) volD = volume.CVDefinedVolume(op_id, -0.75, 0.75) volA2 = volume.CVDefinedVolume(Identity2(), -0.5, 0.5)
def test_sub_combinations(self): assert (volA - volB) == volume.CVDefinedVolume(op_id, -0.5, 0.25) assert (volB - volC) == volB assert (volA - volD) == volume.EmptyVolume() assert (volB - volA) == volume.CVDefinedVolume(op_id, 0.5, 0.75) assert ((volD - volA) == volume.UnionVolume( volume.CVDefinedVolume(op_id, -0.75, -0.5), volume.CVDefinedVolume(op_id, 0.5, 0.75))) assert (volA2 - volA) == volume.RelativeComplementVolume(volA2, volA)
def test_and_combinations(self): assert (volA & volB) == volume.CVDefinedVolume(op_id, 0.25, 0.5) assert (volA & volB)(0.45) is True assert (volA & volB)(0.55) is False assert (volB & volC) == volume.EmptyVolume() # go to VolumeCombination if order parameter isn't the same assert (volA & volA2) == volume.VolumeCombination( volA, volA2, lambda a, b: a and b, '{0} and {1}')
def test_or_combinations(self): assert_equal((volA | volB), volume.CVDefinedVolume(op_id, -0.5, 0.75)) assert_equal((volB | volC), volume.UnionVolume(volB, volC)) assert_equal((volB | volC)(0.0), False) assert_equal((volB | volC)(0.5), True) assert_equal((volB | volC)(-0.5), True) # go to VolumeCombination if order parameters isn't the same assert_equal((volA2 | volB), volume.UnionVolume(volA2, volB))
def test_or_combinations(self): assert (volA | volB) == volume.CVDefinedVolume(op_id, -0.5, 0.75) assert (volB | volC) == volume.UnionVolume(volB, volC) assert (volB | volC)(0.0) is False assert (volB | volC)(0.5) is True assert (volB | volC)(-0.5) is True # go to VolumeCombination if order parameters isn't the same assert (volA2 | volB) == volume.UnionVolume(volA2, volB)
def test_and_combinations(self): assert_equal((volA & volB), volume.CVDefinedVolume(op_id, 0.25, 0.5)) assert_equal((volA & volB)(0.45), True) assert_equal((volA & volB)(0.55), False) assert_equal((volB & volC), volume.EmptyVolume()) # go to VolumeCombination if order parameter isn't the same assert_equal( (volA & volA2), volume.VolumeCombination(volA, volA2, lambda a, b: a and b, '{0} and {1}'))
def test_unit_support(self): import simtk.unit as u vol = volume.CVDefinedVolume(op_id, -0.5 * u.nanometers, 0.25 * u.nanometers) assert (vol(-0.25 * u.nanometers)) assert (not vol(-0.75 * u.nanometers)) vol = volume.PeriodicCVDefinedVolume(op_id, -30 * u.nanometers, 90 * u.nanometers, -180 * u.nanometers, 180 * u.nanometers) assert (vol(50 * u.nanometers)) assert (not vol(-70 * u.nanometers))
def test_unit_support(self): u = unit vol = volume.CVDefinedVolume(op_id, -0.5 * u.nanometers, 0.25 * u.nanometers) assert vol(-0.25 * u.nanometers) assert not vol(-0.75 * u.nanometers) vol = volume.PeriodicCVDefinedVolume(op_id, -30 * u.nanometers, 90 * u.nanometers, -180 * u.nanometers, 180 * u.nanometers) assert vol(50 * u.nanometers) assert not vol(-70 * u.nanometers)
def test_unit_support(self): if not paths.integration_tools.HAS_SIMTK_UNIT: raise SkipTest u = unit vol = volume.CVDefinedVolume(op_id, -0.5 * u.nanometers, 0.25 * u.nanometers) assert (vol(-0.25 * u.nanometers)) assert (not vol(-0.75 * u.nanometers)) vol = volume.PeriodicCVDefinedVolume(op_id, -30 * u.nanometers, 90 * u.nanometers, -180 * u.nanometers, 180 * u.nanometers) assert (vol(50 * u.nanometers)) assert (not vol(-70 * u.nanometers))
def test_inf_upper_boundary(self): volX = volume.CVDefinedVolume(op_id, 0, float('inf')) assert volA(float('inf')) is False assert volX(float('inf')) is True
def test_inf_lower_boundary(self): volX = volume.CVDefinedVolume(op_id, float('-inf'), 0) assert volA(float('-inf')) is False assert volX(float('-inf')) is True