def setup_test_df(): """Create a dataframe populated with some test columns.""" df = learn.DataFrame() df["a"] = learn.TransformedSeries([mocks.MockSeries("foobar", [])], mocks.MockTwoOutputTransform( "iue", "eui", "snt"), "out1") df["b"] = learn.TransformedSeries([mocks.MockSeries("foobar", [])], mocks.MockTwoOutputTransform( "iue", "eui", "snt"), "out2") df["c"] = learn.TransformedSeries([mocks.MockSeries("foobar", [])], mocks.MockTwoOutputTransform( "iue", "eui", "snt"), "out1") return df
def test_build_multiple_output(self): col = learn.TransformedSeries([mocks.MockSeries("foobar", [])], mocks.MockTwoOutputTransform( "thb", "nth", "snt"), "out2") result = col.build() expected = mocks.MockTensor("Mock Tensor 2", dtypes.int32) self.assertEqual(expected, result)
def test_parameters(self): t = mocks.MockTwoOutputTransform("a", "b", "c") self.assertEqual( { "param_one": "a", "param_three": "c", "param_two": "b" }, t.parameters())
def test_build_multiple_output(self): col = learn.TransformedColumn( [mocks.MockColumn("foobar", [])], mocks.MockTwoOutputTransform("thb", "nth", "snt"), "out2") result = col.build() expected = "Fake Tensor 2" self.assertEqual(expected, result)
def test_parameters_inherited_combined(self): t = mocks.MockTwoOutputTransform("thb", "nth", "snt") expected = { "param_one": "thb", "param_two": "nth", "param_three": "snt" } self.assertEqual(expected, t.parameters())
def test_repr(self): col = learn.TransformedSeries([mocks.MockSeries("foobar", [])], mocks.MockTwoOutputTransform( "thb", "nth", "snt"), "qux") # note params are sorted by name expected = ("MockTransform({'param_one': 'thb', 'param_three': 'snt', " "'param_two': 'nth'})" "(foobar)[qux]") self.assertEqual(expected, repr(col))
def test_call(self): t = mocks.MockTwoOutputTransform("a", "b", "c") # MockTwoOutputTransform has input valency 1 input1 = mocks.MockColumn("foobar", []) out1, out2 = t([input1]) # pylint: disable=not-callable self.assertEqual(learn.TransformedColumn, type(out1)) # self.assertEqual(out1.transform, t) # self.assertEqual(out1.output_name, "output1") self.assertEqual(learn.TransformedColumn, type(out2))
def test_cache(self): z = mocks.MockColumn("foobar", []) t = mocks.MockTwoOutputTransform("thb", "nth", "snt") cache = {} t.apply_transform([z], cache) self.assertEqual(2, len(cache)) expected_keys = [ "MockTransform(" "{'param_one': 'thb', 'param_three': 'snt', 'param_two': 'nth'})" "(foobar)[out1]", "MockTransform(" "{'param_one': 'thb', 'param_three': 'snt', 'param_two': 'nth'})" "(foobar)[out2]" ] self.assertEqual(expected_keys, sorted(cache.keys()))
def test_return_type(self): t = mocks.MockTwoOutputTransform("a", "b", "c") rt = t.return_type self.assertEqual("ReturnType", rt.__name__) self.assertEqual(("out1", "out2"), rt._fields)