def math_binary_divide_test(self): math_binary_tf = MathBinary(input_features=['a', 'b'], output_features=['a_mul_b'], transform_type='div') Xres = math_binary_tf.fit_transform(self.df[['a', 'b']]) self.assertEqual(self.df.a[0] / self.df.b[0], Xres[0]) math_binary_tf.serialize_to_bundle(self.tmp_dir, math_binary_tf.name) expected_model = { "op": "math_binary", "attributes": { "operation": { "type": "string", "value": 'div' } } } # Test model.json with open("{}/{}.node/model.json".format(self.tmp_dir, math_binary_tf.name)) as json_data: model = json.load(json_data) self.assertEqual(expected_model['attributes']['operation']['value'], model['attributes']['operation']['value']) # Test node.json with open("{}/{}.node/node.json".format(self.tmp_dir, math_binary_tf.name)) as json_data: node = json.load(json_data) self.assertEqual(math_binary_tf.name, node['name']) self.assertEqual(math_binary_tf.input_features[0], node['shape']['inputs'][0]['name']) self.assertEqual(math_binary_tf.input_features[1], node['shape']['inputs'][1]['name']) self.assertEqual(math_binary_tf.output_features[0], node['shape']['outputs'][0]['name'])
def math_binary_multiply_test(self): math_binary_tf = MathBinary(input_features=['a', 'b'], output_features='a_mul_b', transform_type='mul') Xres = math_binary_tf.fit_transform(self.df[['a', 'b']]) assert_frame_equal(pd.DataFrame(self.df.a * self.df.b, columns=['a']), Xres) math_binary_tf.serialize_to_bundle(self.tmp_dir, math_binary_tf.name) expected_model = { "op": "math_binary", "attributes": { "operation": { "string": 'mul' } } } # Test model.json with open("{}/{}.node/model.json".format(self.tmp_dir, math_binary_tf.name)) as json_data: model = json.load(json_data) self.assertEqual(expected_model['attributes']['operation']['string'], model['attributes']['operation']['string']) # Test node.json with open("{}/{}.node/node.json".format(self.tmp_dir, math_binary_tf.name)) as json_data: node = json.load(json_data) self.assertEqual(math_binary_tf.name, node['name']) self.assertEqual(math_binary_tf.input_features[0], node['shape']['inputs'][0]['name']) self.assertEqual(math_binary_tf.input_features[1], node['shape']['inputs'][1]['name']) self.assertEqual(math_binary_tf.output_features, node['shape']['outputs'][0]['name'])
def math_binary_deserialize_add_test(self): math_binary_tf = MathBinary(input_features=['a', 'b'], output_features='a_plus_b', transform_type='add') Xres = math_binary_tf.fit_transform(self.df[['a', 'b']]) assert_frame_equal(pd.DataFrame(self.df.a + self.df.b, columns=['a']), Xres) math_binary_tf.serialize_to_bundle(self.tmp_dir, math_binary_tf.name) node_name = "{}.node".format(math_binary_tf.name) math_binary_ds_tf = MathBinary() math_binary_ds_tf = math_binary_ds_tf.deserialize_from_bundle(self.tmp_dir, node_name) res_a = math_binary_tf.transform(self.df[['a', 'b']]) res_b = math_binary_ds_tf.transform(self.df[['a', 'b']]) assert_frame_equal(res_a, res_b)
def math_binary_deserialize_exp_test(self): math_binary_tf = MathBinary(input_features=['a', 'b'], output_features=['a_plus_b'], transform_type='add') Xres = math_binary_tf.fit_transform(self.df[['a', 'b']]) self.assertEqual( self.df.a[0] + self.df.b[0], Xres[0]) math_binary_tf.serialize_to_bundle(self.tmp_dir, math_binary_tf.name) node_name = "{}.node".format(math_binary_tf.name) math_binary_ds_tf = MathBinary() math_binary_ds_tf = math_binary_ds_tf.deserialize_from_bundle(self.tmp_dir, node_name) res_a = math_binary_tf.transform(self.df[['a', 'b']]) res_b = math_binary_ds_tf.transform(self.df[['a', 'b']]) self.assertEqual(res_a[0], res_b[0])