Changes in / [f942f4d:6dccecc] in sasmodels


Ignore:
Location:
sasmodels
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/model_test.py

    r6652522 ra7db39fa  
    332332            else: 
    333333                y1 = y 
    334                 y2 = test[3] if isinstance(test[3], list) else [test[3]] 
    335                 F, Fsq, R_eff, volume, volume_ratio = call_Fq(kernel, pars) 
    336                 if F is not None:  # F is none for models with Iq instead of Fq 
    337                     self._check_vectors(x, y1, F, 'F') 
    338                 self._check_vectors(x, y2, Fsq, 'F^2') 
     334                y2 = test[3] if not isinstance(test[3], list) else [test[3]] 
     335                F1, F2, R_eff, volume, volume_ratio = call_Fq(kernel, pars) 
     336                if F1 is not None:  # F1 is none for models with Iq instead of Fq 
     337                    self._check_vectors(x, y1, F1, 'F') 
     338                self._check_vectors(x, y2, F2, 'F^2') 
    339339                self._check_scalar(test[4], R_eff, 'R_eff') 
    340340                self._check_scalar(test[5], volume, 'volume') 
    341341                self._check_scalar(test[6], volume_ratio, 'form:shell ratio') 
    342                 return Fsq 
     342                return F2 
    343343 
    344344        def _check_scalar(self, target, actual, name): 
     
    415415    """ 
    416416    import math 
    417     if target == 0.: 
    418         return actual == 0. 
    419417    shift = 10**math.ceil(math.log10(np.abs(target))) 
    420418    return np.abs(target-actual)/shift < 1.5*10**-digits 
  • sasmodels/models/cylinder.py

    r6652522 r0b8a1fc  
    110110---------------------------- 
    111111 
    112 * **Author:** 
    113 * **Last Modified by:** 
    114 * **Last Reviewed by:** 
     112* **Author:**  
     113* **Last Modified by:**  
     114* **Last Reviewed by:**  
    115115* **Source added by :** Steve King **Date:** March 25, 2019 
    116116""" 
     
    184184            phi_pd=10, phi_pd_n=5) 
    185185 
    186 # Test 1-D and 2-D models 
     186# pylint: disable=bad-whitespace, line-too-long 
    187187qx, qy = 0.2 * np.cos(2.5), 0.2 * np.sin(2.5) 
    188 theta, phi = 80.1534480601659, 10.1510817110481  # (10, 10) in sasview 3.x 
     188# After redefinition of angles, find new tests values.  Was 10 10 in old coords 
    189189tests = [ 
    190190    [{}, 0.2, 0.042761386790780453], 
    191191    [{}, [0.2], [0.042761386790780453]], 
    192     [{'theta': theta, 'phi': phi}, (qx, qy), 0.03514647218513852], 
    193     [{'theta': theta, 'phi': phi}, [(qx, qy)], [0.03514647218513852]], 
     192    #  new coords 
     193    [{'theta':80.1534480601659, 'phi':10.1510817110481}, (qx, qy), 0.03514647218513852], 
     194    [{'theta':80.1534480601659, 'phi':10.1510817110481}, [(qx, qy)], [0.03514647218513852]], 
     195    # old coords 
     196    #[{'theta':10.0, 'phi':10.0}, (qx, qy), 0.03514647218513852], 
     197    #[{'theta':10.0, 'phi':10.0}, [(qx, qy)], [0.03514647218513852]], 
    194198] 
    195 del qx, qy, theta, phi  # not necessary to delete, but cleaner 
    196  
    197 def _extend_with_reff_tests(radius, length): 
    198     """Test R_eff and form volume calculations""" 
    199     # V and Vr are the same for each R_eff mode 
    200     V = pi*radius**2*length  # shell volume = form volume for solid objects 
    201     Vr = 1.0  # form:shell volume ratio 
    202     # Use test value for I(0.2) from above to check Fsq value.  Need to 
    203     # remove scale and background before testing. 
    204     q = 0.2 
    205     scale, background = V, 0.001 
    206     Fsq = (0.042761386790780453 - background)*scale 
    207     F = None  # Need target value for <F> 
    208     # Various values for R_eff, depending on mode 
    209     r_effs = [ 
     199del qx, qy  # not necessary to delete, but cleaner 
     200 
     201# Default radius and length 
     202def calc_volume(radius, length): 
     203    """Return form volume for cylinder.""" 
     204    return pi*radius**2*length 
     205def calc_r_effs(radius, length): 
     206    """Return effective radii for modes 0-7 of cylinder.""" 
     207    return [ 
    210208        0., 
    211209        0.5*(0.75*radius*(2.0*radius*length 
     
    218216        np.sqrt(4*radius**2 + length**2)/2., 
    219217    ] 
    220     tests.extend([ 
    221         ({'radius_effective_mode': 0}, q, F, Fsq, r_effs[0], V, Vr), 
    222         ({'radius_effective_mode': 1}, q, F, Fsq, r_effs[1], V, Vr), 
    223         ({'radius_effective_mode': 2}, q, F, Fsq, r_effs[2], V, Vr), 
    224         ({'radius_effective_mode': 3}, q, F, Fsq, r_effs[3], V, Vr), 
    225         ({'radius_effective_mode': 4}, q, F, Fsq, r_effs[4], V, Vr), 
    226         ({'radius_effective_mode': 5}, q, F, Fsq, r_effs[5], V, Vr), 
    227         ({'radius_effective_mode': 6}, q, F, Fsq, r_effs[6], V, Vr), 
    228         ({'radius_effective_mode': 7}, q, F, Fsq, r_effs[7], V, Vr), 
    229     ]) 
    230  
    231 # Test Reff and volume with default model parameters 
    232 _extend_with_reff_tests(parameters[2][2], parameters[3][2]) 
    233 del _extend_with_reff_tests 
     218r_effs = calc_r_effs(parameters[2][2], parameters[3][2]) 
     219cyl_vol = calc_volume(parameters[2][2], parameters[3][2]) 
     220#tests.extend([ 
     221#    ({'effective_radius_type': 0}, 0.1, 667.7347318577124, 1.0000, r_effs[0], cyl_vol, 1.0), 
     222     # first & second None do not work here, replacind 2nd Non by real number gives error also 
     223#    ({'effective_radius_type': 1}, 0.1, None, None, r_effs[1], None, None), 
     224#    ({'effective_radius_type': 2}, 0.1, None, None, r_effs[2], None, None), 
     225#   ({'effective_radius_type': 3}, 0.1, None, None, r_effs[3], None, None), 
     226#    ({'effective_radius_type': 4}, 0.1, None, None, r_effs[4], None, None), 
     227#    ({'effective_radius_type': 5}, 0.1, None, None, r_effs[5], None, None), 
     228#    ({'effective_radius_type': 6}, 0.1, None, None, r_effs[6], None, None), 
     229#    ({'effective_radius_type': 7}, 0.1, None, None, r_effs[7], None, None), 
     230#]) 
     231del r_effs, cyl_vol 
     232# pylint: enable=bad-whitespace, line-too-long 
    234233 
    235234# ADDED by:  RKH  ON: 18Mar2016 renamed sld's etc 
Note: See TracChangeset for help on using the changeset viewer.