-
Notifications
You must be signed in to change notification settings - Fork 114
TST fix tests for JAX-Galsim #1252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
beckermr
wants to merge
358
commits into
main
Choose a base branch
from
fix_tests
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 46 commits
Commits
Show all changes
358 commits
Select commit
Hold shift + click to select a range
a01cc05
file paths
beckermr 41482af
draw exceptions
beckermr 1561a15
array tests
beckermr 1bf8ca9
array tests
beckermr 4bb3fd9
array tests
beckermr e7778a0
array tests
beckermr caa88d9
jax no warn
beckermr a4cb713
jax no warn
beckermr 60424b8
jax no warn
beckermr efd15fc
jax no warn
beckermr 011944c
jax no warn
beckermr a7503db
jax no fwd fft complex
beckermr 7131c51
jax no fwd fft complex
beckermr da8ae43
jax no fwd fft complex
beckermr 3d32477
array compare
beckermr 8b25443
array compare
beckermr 0515ad8
jax rounds a bit different
beckermr 19471ac
jax rounds a bit different
beckermr 6bcd68f
jax rounds a bit different
beckermr e3c5280
make_const not supported
beckermr 5f55582
paths
beckermr 0d3ca1a
paths
beckermr c1aa753
paths
beckermr ac7d4d9
paths
beckermr 51151af
paths
beckermr b7cad5b
paths
beckermr 030bda0
paths
beckermr c07af19
support make const
beckermr 3940467
support make const
beckermr 0a92bc4
support make const
beckermr 86682d2
support make const
beckermr 163687f
support make const
beckermr 4cd1536
support make const
beckermr 0952f29
no references
beckermr f3a65d3
no references
beckermr 7786e37
no references
beckermr be2e75f
no references
beckermr 2169160
no references
beckermr bcee242
no references
beckermr cb75725
no references
beckermr 6214b62
no references
beckermr 5e5b57d
no references
beckermr 1d988d1
no references
beckermr 7191fa0
no references
beckermr 90791a6
weird failure
beckermr 0505fc7
weird failure
beckermr 6b5fa52
weird failure
beckermr 5c838bb
weird failure
beckermr b2700bb
weird failure
beckermr ff23b6d
weird failure
beckermr 6539ce1
weird failure
beckermr 46a0e10
weird failure
beckermr 56dc788
weird failure
beckermr 0035409
weird failure
beckermr b2c451f
paths
beckermr ed7dae2
paths
beckermr 27bfe2b
paths
beckermr cc94ba8
paths
beckermr ad4395d
norefs
beckermr f3aefd2
norefs
beckermr 5158546
norefs
beckermr 54cffec
norefs
beckermr ebf552c
norefs
beckermr da90aac
norefs
beckermr 51a8583
norefs
beckermr 3fbe8d4
norefs
beckermr e2cfddd
norefs
beckermr 93632df
norefs
beckermr 4ba61f6
paths
beckermr f6cfcd6
paths
beckermr 53cd860
paths
beckermr f50323f
norefs
beckermr 2100ade
norefs
beckermr 9e69cc1
norefs
beckermr b2bcdc9
norefs
beckermr 2ef3457
norefs
beckermr 0994337
norefs
beckermr 458cabb
norefs
beckermr d2f41ff
norefs
beckermr 52b9910
norefs
beckermr 8427e0b
norefs
beckermr 5e4036a
norefs
beckermr b2a33fb
norefs
beckermr a534b6f
norefs
beckermr eb01912
norefs
beckermr 88d7404
norefs
beckermr a6c0b3d
norefs
beckermr 913aa52
norefs
beckermr 213823c
norefs
beckermr cbcf0ec
norefs
beckermr e222d5e
norefs
beckermr 5dd48a0
norefs
beckermr 2cbb070
norefs
beckermr 0d1dad3
norefs
beckermr ffe9e8a
norefs
beckermr caecb71
norefs
beckermr 92a0f0c
norefs
beckermr 7e24347
norefs
beckermr ac7876a
norefs
beckermr ad828a4
norefs
beckermr 98346bf
norefs
beckermr bdeeb71
norefs
beckermr b4ad42e
norefs
beckermr 13b55be
norefs
beckermr 856169c
norefs
beckermr 3524b8c
norefs
beckermr 6c497dc
norefs
beckermr 3d402a9
norefs
beckermr db25fdb
norefs
beckermr 0c97449
norefs
beckermr d6982b9
norefs
beckermr 322b3db
norefs
beckermr b030c3b
norefs
beckermr 16402d3
norefs
beckermr 34b37d1
norefs
beckermr 53d54ee
norefs
beckermr f598233
norefs
beckermr 944505b
norefs
beckermr 7641057
norefs
beckermr f2cab46
norefs
beckermr dbe4829
norefs
beckermr e675f72
norefs
beckermr a4a183b
norefs
beckermr a68288d
norefs
beckermr 6c2bac1
no raise
beckermr d293d88
no raise
beckermr 618a33b
no raise
beckermr 5591ded
no raise
beckermr a093624
no raise
beckermr 8a3440d
no raise
beckermr 7d6923e
Merge branch 'main' into fix_tests
beckermr 6fac1a7
no raise
beckermr 552aef8
paths
beckermr ba43346
Merge branch 'fix_tests' of https://github.com/GalSim-developers/GalS…
beckermr 3a225bd
paths
beckermr b67d4db
no refs
beckermr 38d06d5
no refs
beckermr 58b7f77
array asserts
beckermr 633d0f5
Update test_random.py
beckermr d5b6d76
no views
beckermr 8cc107a
Merge branch 'fix_tests' of https://github.com/GalSim-developers/GalS…
beckermr ed0df69
no views
beckermr a320a40
no views
beckermr 49c4416
no views
beckermr fdfda0c
no views
beckermr 9c660b5
no views
beckermr 746ee19
no views
beckermr 481cdbb
no views
beckermr 728a18f
no views
beckermr 3ff8c02
no views
beckermr 5263be7
no views
beckermr aacd9c8
no views
beckermr 46cbdfc
no views
beckermr 9a2d102
no views
beckermr dfe3d11
no views
beckermr 7192fa6
no views
beckermr 8592754
no index errors
beckermr 71400ad
bool env
beckermr eecef97
bool env
beckermr fc4e74f
zernike import
beckermr 75dfbcb
bug in test of randoms
beckermr e003b5a
remove deprecation warnings
beckermr ef5d07a
Apply suggestions from code review
beckermr f1dd4d2
Apply suggestions from code review
beckermr 73851f4
Apply suggestions from code review
beckermr 7f4fd66
Apply suggestions from code review
beckermr 73b4e75
Apply suggestions from code review
beckermr 01d0ab6
Update tests/test_deprecated.py
beckermr e01492d
Apply suggestions from code review
beckermr 5775587
Apply suggestions from code review
beckermr a5c6415
Apply suggestions from code review
beckermr 185bb5a
Apply suggestions from code review
beckermr 4ae8a78
Apply suggestions from code review
beckermr 544cc29
Update tests/test_deprecated.py
beckermr 1f1699e
Update tests/test_deprecated.py
beckermr 496ce4d
Apply suggestions from code review
beckermr af11c61
Apply suggestions from code review
beckermr bcfc251
Apply suggestions from code review
beckermr 3b5c1ca
Apply suggestions from code review
beckermr 70a875f
Apply suggestions from code review
beckermr 48edcbb
Apply suggestions from code review
beckermr dff8cba
Apply suggestions from code review
beckermr 36064f5
Apply suggestions from code review
beckermr e4c6a49
Apply suggestions from code review
beckermr f9a318d
Apply suggestions from code review
beckermr 81d788f
Apply suggestions from code review
beckermr e2a9c7e
Apply suggestions from code review
beckermr 5c716c8
Apply suggestions from code review
beckermr 88103b5
these are not supported at all in jax-galsim
beckermr bb64924
WIP update test for jax-galsim memory use
beckermr 783f757
TST remove extra B
beckermr ab72b99
TST less memory
beckermr 80db992
TST less memory
beckermr b1c10d4
TST less memory
beckermr 0f0feeb
TST less memory
beckermr e61fc38
TST less memory
beckermr 7e3cded
TST less memory
beckermr 011fde6
TST cancel concurrent tests
beckermr 68e4b7a
TST cancel concurrent tests
beckermr d6886c9
TST fix fft tests
beckermr 1b44daa
test: update tests for jax galsim
beckermr ff175e1
test: lower precision for some interp image tests
beckermr 62634db
Revert "test: lower precision for some interp image tests"
beckermr 4161bad
Merge branch 'main' into fix_tests
beckermr 0e379d2
fix: missing import
beckermr 9696fbb
test: more missing imports and tests
beckermr 6a326a7
test: rename the imports
beckermr 0d55c54
feat: add function to extract the galsim backend
beckermr 13a3042
fix: start to use a proper helper function
beckermr d80d1d8
test: convert more to use the helper functions
beckermr cc57eca
test: fix test helpers file for new functions
beckermr 36da37b
test: clean up celestial tests
beckermr 414c8ab
fix: need to test Angle
beckermr 9cd8ab2
fix: bug in parens
beckermr aae4649
test: clean up test_optics
beckermr 1b627dc
tests: always default to running tests for other backends
beckermr 396084f
test: clean up tests for exp w/ phots
beckermr ae74cc7
test: clean up tests for moffat
beckermr ea082f5
fix: testing functions do not have atol/rtol
beckermr 1a3b3cb
test: fix first part of deprecation test file
beckermr 4173070
test: better test here
beckermr 04c247a
test: check allocated
beckermr 79536e1
test: clean up more test stuff
beckermr a2f674a
test: clean up more test stuff
beckermr ce25e31
test: get rest of test cases
beckermr 3c4841c
test: clean up tests for photon arrays
beckermr c987110
test: clean up for interpolated images
beckermr 5337334
test: clean up for noise tests
beckermr 8454028
test: try using the olde value
beckermr 101a36e
test: clean up tests for draw
beckermr 682f592
test: clean up tests for draw
beckermr 63855f9
test: clean up tests for draw
beckermr 15943e2
test: clean up tests for image
beckermr 3cd63b6
test: clean up tests for utils
beckermr 9a5ab87
test: clean up random tests
beckermr b1632e9
fix: jax_galsim does not raise
beckermr 108e119
fix: wrong order of if statement
beckermr 4f93a4e
debug: figure out what is taking so long
beckermr b163e6f
debug: how many
beckermr 61ae3d6
debug: how fast
beckermr 501c0fd
test: just do less for jax
beckermr fb890ba
test: just do less for jax
beckermr 3fc5a90
test: it is an array in jax
beckermr 5e088ec
test: it is an array in jax
beckermr b7ef1e2
test: it is an array in jax
beckermr d8a549e
test: it is an array in jax
beckermr 1513366
Merge branch 'main' into fix_tests
beckermr ea74f8c
fix: make sure to export the pytest import
beckermr 178f1b6
fix: make sure to export the new fixtures and functions
beckermr 9204928
fix: make sure path to input test data is correct
beckermr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,6 +30,29 @@ | |
from numpy.testing import assert_raises | ||
from numpy.testing import assert_warns | ||
|
||
__all__ = [ | ||
"default_params", | ||
"gsobject_compare", | ||
"printval", | ||
"convertToShear", | ||
"check_basic_x", | ||
"check_basic_k", | ||
"assert_floatlike", | ||
"assert_intlike", | ||
"check_basic", | ||
"do_shoot", | ||
"do_kvalue", | ||
"radial_integrate", | ||
"drawNoise", | ||
"check_pickle", | ||
"check_all_diff", | ||
"timer", | ||
"CaptureLog", | ||
"assert_raises", | ||
"assert_warns", | ||
"Profile", | ||
] | ||
|
||
# This file has some helper functions that are used by tests from multiple files to help | ||
# avoid code duplication. | ||
|
||
|
@@ -138,20 +161,32 @@ def check_basic_x(prof, name, approx_maxsb=False, scale=None): | |
np.testing.assert_allclose( | ||
image(i,j), prof._xValue(galsim.PositionD(x,y)), rtol=1.e-5, | ||
err_msg="%s profile sb image does not match _xValue at %d,%d"%(name,i,j)) | ||
assert prof.withFlux.__doc__ == galsim.GSObject.withFlux.__doc__ | ||
assert prof.__class__.withFlux.__doc__ == galsim.GSObject.withFlux.__doc__ | ||
if hasattr(galsim, "_galsim"): | ||
assert prof.withFlux.__doc__ == galsim.GSObject.withFlux.__doc__ | ||
assert prof.__class__.withFlux.__doc__ == galsim.GSObject.withFlux.__doc__ | ||
else: | ||
for line in galsim.GSObject.withFlux.__doc__.splitlines(): | ||
if line.strip() and "LAX" not in line: | ||
assert line.strip() in prof.withFlux.__doc__, ( | ||
prof.withFlux.__doc__, galsim.GSObject.withFlux.__doc__, | ||
) | ||
for line in galsim.GSObject.withFlux.__doc__.splitlines(): | ||
if line.strip() and "LAX" not in line: | ||
assert line.strip() in prof.__class__.withFlux.__doc__, ( | ||
prof.__class__.withFlux.__doc__, galsim.GSObject.withFlux.__doc__, | ||
) | ||
|
||
# Check negative flux: | ||
neg_image = prof.withFlux(-prof.flux).drawImage(method='sb', scale=scale, use_true_center=False) | ||
np.testing.assert_almost_equal(neg_image.array/prof.flux, -image.array/prof.flux, 7, | ||
'%s negative flux drawReal is not negative of +flux image'%name) | ||
np.testing.assert_array_almost_equal(neg_image.array/prof.flux, -image.array/prof.flux, 7, | ||
'%s negative flux drawReal is not negative of +flux image'%name) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need this? I thought they were equivalent. I'd rather not use the more verbose one if we can avoid it. |
||
|
||
# Direct call to drawReal should also work and be equivalent to the above with scale = 1. | ||
prof.drawImage(image, method='sb', scale=1., use_true_center=False) | ||
image2 = image.copy() | ||
prof.drawReal(image2) | ||
np.testing.assert_equal(image2.array, image.array, | ||
err_msg="%s drawReal not equivalent to drawImage"%name) | ||
np.testing.assert_array_equal(image2.array, image.array, | ||
err_msg="%s drawReal not equivalent to drawImage"%name) | ||
|
||
# If supposed to be axisymmetric, make sure it is. | ||
if prof.is_axisymmetric: | ||
|
@@ -199,7 +234,7 @@ def check_basic_k(prof, name): | |
|
||
# Check negative flux: | ||
neg_image = prof.withFlux(-prof.flux).drawKImage(kimage.copy()) | ||
np.testing.assert_almost_equal(neg_image.array/prof.flux, -kimage.array/prof.flux, 7, | ||
np.testing.assert_array_almost_equal(neg_image.array/prof.flux, -kimage.array/prof.flux, 7, | ||
'%s negative flux drawK is not negative of +flux image'%name) | ||
|
||
# If supposed to be axisymmetric, make sure it is in the kValues. | ||
|
@@ -211,6 +246,30 @@ def check_basic_k(prof, name): | |
np.testing.assert_allclose(test_values, ref_value, rtol=1.e-5, | ||
err_msg="%s profile not axisymmetric in kValues"%name) | ||
|
||
def assert_floatlike(val): | ||
assert ( | ||
isinstance(val, float) | ||
or ( | ||
(not hasattr(galsim, "_galsim")) | ||
beckermr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
and hasattr(val, "shape") | ||
and val.shape == () | ||
and hasattr(val, "dtype") | ||
and val.dtype.name in ["float", "float32", "float64"] | ||
) | ||
), "Value is not float-like: type(%r) = %r" % (val, type(val)) | ||
|
||
def assert_intlike(val): | ||
assert ( | ||
isinstance(val, int) | ||
or ( | ||
(not hasattr(galsim, "_galsim")) | ||
beckermr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
and hasattr(val, "shape") | ||
and val.shape == () | ||
and hasattr(val, "dtype") | ||
and val.dtype.name in ["int", "int32", "int64"] | ||
) | ||
), "Value is not int-like: type(%r) = %r" % (val, type(val)) | ||
|
||
def check_basic(prof, name, approx_maxsb=False, scale=None, do_x=True, do_k=True): | ||
"""Do some basic sanity checks that should work for all profiles. | ||
""" | ||
|
@@ -225,12 +284,12 @@ def check_basic(prof, name, approx_maxsb=False, scale=None, do_x=True, do_k=True | |
prof.positive_flux - prof.negative_flux, prof.flux, | ||
err_msg="%s profile flux not equal to posflux + negflux"%name) | ||
assert isinstance(prof.centroid, galsim.PositionD) | ||
assert isinstance(prof.flux, float) | ||
assert isinstance(prof.positive_flux, float) | ||
assert isinstance(prof.negative_flux, float) | ||
assert isinstance(prof.max_sb, float) | ||
assert isinstance(prof.stepk, float) | ||
assert isinstance(prof.maxk, float) | ||
assert_floatlike(prof.flux) | ||
assert_floatlike(prof.positive_flux) | ||
assert_floatlike(prof.negative_flux) | ||
assert_floatlike(prof.max_sb) | ||
assert_floatlike(prof.stepk) | ||
assert_floatlike(prof.maxk) | ||
assert isinstance(prof.has_hard_edges, bool) | ||
assert isinstance(prof.is_axisymmetric, bool) | ||
assert isinstance(prof.is_analytic_x, bool) | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,7 @@ | |
# | ||
|
||
import numpy | ||
import numpy as np | ||
import os | ||
import sys | ||
import math | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ | |
# and/or other materials provided with the distribution. | ||
# | ||
|
||
import copy | ||
import os | ||
import numpy as np | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,6 +16,7 @@ | |
# and/or other materials provided with the distribution. | ||
# | ||
|
||
import os | ||
import time | ||
import numpy as np | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.