MCPcopy Create free account
hub / github.com/OpenMined/TenSEAL / context_asserts

Function context_asserts

tests/python/sealapi/test_context.py:124–182  ·  view source on GitHub ↗
(sealctx, sec_level, scheme)

Source from the content-addressed store, hash-verified

122
123
124def context_asserts(sealctx, sec_level, scheme):
125 assert sealctx.parameters_set() is True
126 assert sealctx.parameters_error_name() == "success"
127 assert sealctx.parameters_error_message() == "valid"
128
129 orig_ctx_data = sealctx.key_context_data()
130 parms = orig_ctx_data.parms()
131 poly_modulus_degree = parms.poly_modulus_degree()
132 coeff_mod_count = len(parms.coeff_modulus())
133
134 def context_data_sanity(ctx_data, ctx_alias, index):
135 assert ctx_data.parms().poly_modulus_degree() == poly_modulus_degree
136 assert len(ctx_data.parms_id()) == 4
137 assert ctx_data.chain_index() == ctx_alias.chain_index()
138 assert ctx_data.chain_index() == index
139 assert (
140 ctx_data.total_coeff_modulus() != 0
141 and ctx_data.total_coeff_modulus() == ctx_alias.total_coeff_modulus()
142 )
143 assert ctx_data.total_coeff_modulus_bit_count() == ctx_alias.total_coeff_modulus_bit_count()
144
145 assert ctx_data.plain_upper_half_threshold() == ctx_alias.plain_upper_half_threshold()
146 if scheme == sealapi.SCHEME_TYPE.BFV:
147 assert (
148 ctx_data.coeff_div_plain_modulus().operand
149 == ctx_alias.coeff_div_plain_modulus().operand
150 )
151 assert ctx_data.upper_half_increment() == ctx_alias.upper_half_increment()
152 assert ctx_data.upper_half_threshold() == ctx_alias.upper_half_threshold()
153
154 assert ctx_data.rns_tool() != None
155 assert ctx_data.small_ntt_tables().coeff_count_power() > 0
156 if scheme == sealapi.SCHEME_TYPE.BFV:
157 assert ctx_data.plain_ntt_tables().coeff_count_power() > 0
158 assert len(ctx_data.galois_tool().get_elts_all()) > 0
159
160 qualifiers = ctx_data.qualifiers()
161 assert qualifiers.parameters_set() is True
162 assert qualifiers.using_fft is True
163 assert qualifiers.using_ntt is True
164 assert qualifiers.using_batching is True
165 assert qualifiers.using_fast_plain_lift == (scheme == sealapi.SCHEME_TYPE.BFV)
166 assert qualifiers.sec_level == sec_level
167
168 for (parms_id, ctx_data, index) in [
169 (sealctx.first_parms_id(), sealctx.first_context_data(), coeff_mod_count - 2),
170 (sealctx.last_parms_id(), sealctx.last_context_data(), 0),
171 (sealctx.key_parms_id(), sealctx.key_context_data(), coeff_mod_count - 1),
172 ]:
173 should_be_same_ctx = sealctx.get_context_data(parms_id)
174 context_data_sanity(ctx_data, should_be_same_ctx, index)
175
176 assert sealctx.last_context_data().next_context_data() is None
177 assert (
178 sealctx.first_context_data().prev_context_data().chain_index()
179 == sealctx.key_context_data().chain_index()
180 )
181

Callers 2

Calls 1

context_data_sanityFunction · 0.85

Tested by

no test coverage detected