r"""
"""
import sys
from sage.all_cmdline import *
from boolean_cayley_graphs.bent_function_cayley_graph_classification import BentFunctionCayleyGraphClassification
from boolean_cayley_graphs.bent_function import BentFunction
r"""
"""
if len(sys.argv) != 3:
print("Usage: save_cast128_from_parts bnbr fnbr")
sys.exit(1)
bnbr = int(sys.argv[1])
fnbr = int(sys.argv[2])
load("read_cast_128_s_boxes.sage")
s_boxes = read_s_boxes_file()
bentf = s_boxes[bnbr][fnbr]
c_name = "cast128_"+str(bnbr)+"_"+str(fnbr)
c = BentFunctionCayleyGraphClassification.from_parts(c_name)
c.save_mangled(c_name)
c_check = BentFunctionCayleyGraphClassification.load_mangled(c_name)
c_check.report()
if (c.algebraic_normal_form == c_check.algebraic_normal_form and
c.cayley_graph_class_list == c_check.cayley_graph_class_list and
c.bent_cayley_graph_index_matrix == c_check.bent_cayley_graph_index_matrix and
c.dual_cayley_graph_index_matrix == c_check.dual_cayley_graph_index_matrix and
c.weight_class_matrix == c_check.weight_class_matrix):
print("Check succeeded.")
else:
print("Check failed.")
sys.exit(1)
quit