@@ -110,7 +110,7 @@ def setUp(self):
110110 self .maxDiff = None
111111
112112 def test_continuous_feasible_values (self ):
113- """Tests the `continuous_feasible_values` property .
113+ """Tests the `continuous_feasible_values` method .
114114
115115 The returned feasible values are expected to be in the scaled space, and
116116 categorical parameters are ignored.
@@ -125,6 +125,7 @@ def test_continuous_feasible_values(self):
125125 )
126126 root .add_int_param ('integer' , - 2 , 2 )
127127 root .add_float_param ('float' , - 3 , 4 )
128+ root .add_int_param ('integer_with_many_feasible_values' , - 1 , 6 * 10 ** 7 )
128129 converter = jnpc .TrialToModelInputConverter .from_problem (
129130 vz .ProblemStatement (
130131 search_space = space ,
@@ -135,19 +136,22 @@ def test_continuous_feasible_values(self):
135136 ],
136137 )
137138 )
138- self .assertLen (converter .continuous_feasible_values , 5 )
139+ continuous_feasible_values = converter .continuous_feasible_values (
140+ max_num_feasible_values = 1000
141+ )
142+ self .assertLen (continuous_feasible_values , 6 )
139143 self .assertSequenceAlmostEqual (
140- converter . continuous_feasible_values [0 ],
144+ continuous_feasible_values [0 ],
141145 # The original feasible values are linearly scaled to [0, 1].
142146 (np .asarray ([- 0.4 , - 0.3 , 0.4 , 1.1 , 1.15 ]) + 0.4 ) / 1.55 ,
143147 )
144148 self .assertSequenceAlmostEqual (
145149 # The original feasible values [5, 9] are linearly scaled to [0, 1].
146- converter . continuous_feasible_values [1 ],
150+ continuous_feasible_values [1 ],
147151 np .asarray ([0.0 , 1.0 ]),
148152 )
149153 self .assertSequenceAlmostEqual (
150- converter . continuous_feasible_values [2 ],
154+ continuous_feasible_values [2 ],
151155 # The original feasible values [1e-5, 1e-2, 1e-1] are log-then-linearly
152156 # scaled to [0, 1].
153157 (
@@ -156,13 +160,15 @@ def test_continuous_feasible_values(self):
156160 ),
157161 )
158162 self .assertSequenceAlmostEqual (
159- converter . continuous_feasible_values [3 ],
163+ continuous_feasible_values [3 ],
160164 # The integer parameter with range [-2, 2] are internally scaled to
161165 # evenly spaced values in [0, 1].
162166 np .asarray ([0.0 , 0.25 , 0.5 , 0.75 , 1.0 ]),
163167 )
164168 # Feasible values for float parameters are empty.
165- self .assertEmpty (converter .continuous_feasible_values [4 ])
169+ self .assertEmpty (continuous_feasible_values [4 ])
170+ # Feasible values for int parameters with many feasible values are empty.
171+ self .assertEmpty (continuous_feasible_values [5 ])
166172
167173 def test_back_to_back_conversion (self ):
168174 converter = jnpc .TrialToContinuousAndCategoricalConverter .from_study_config (
0 commit comments