137606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# encoding: utf-8 291f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# Copyright 2016 The TensorFlow Authors. All Rights Reserved. 337606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 491f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# Licensed under the Apache License, Version 2.0 (the "License"); 591f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# you may not use this file except in compliance with the License. 691f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# You may obtain a copy of the License at 737606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 891f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# http://www.apache.org/licenses/LICENSE-2.0 937606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 1091f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# Unless required by applicable law or agreed to in writing, software 1191f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# distributed under the License is distributed on an "AS IS" BASIS, 1291f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1391f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# See the License for the specific language governing permissions and 1491f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# limitations under the License. 1591f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower# ============================================================================== 1691f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower"""Categorical tests.""" 1791f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower 1837606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# limitations under the License. 19334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import absolute_import 20334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import division 21334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import print_function 2237606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 2337606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevanimport numpy as np 2437606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 25f30460b9f69bcaf0b5b6721acd3e18d4dcf987d5Martin Wickefrom tensorflow.contrib.learn.python.learn.learn_io import HAS_PANDAS 265c9bc51857bc0c330d3ab976871ee3509647d1e7Illia Polosukhinfrom tensorflow.contrib.learn.python.learn.preprocessing import categorical 27e121667dc609de978a223c56ee906368d2c4ceefJustine Tunneyfrom tensorflow.python.platform import test 2837606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 2937606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 30e121667dc609de978a223c56ee906368d2c4ceefJustine Tunneyclass CategoricalTest(test.TestCase): 3191f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower """Categorical tests.""" 3237606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 33b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower def testSingleCategoricalProcessor(self): 34b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower cat_processor = categorical.CategoricalProcessor(min_frequency=1) 3591f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower x = cat_processor.fit_transform([["0"], [1], [float("nan")], ["C"], ["C"], 36b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower [1], ["0"], [np.nan], [3]]) 3791f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower self.assertAllEqual(list(x), [[2], [1], [0], [3], [3], [1], [2], [0], [0]]) 38b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower 39b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower def testSingleCategoricalProcessorPandasSingleDF(self): 40b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower if HAS_PANDAS: 41d8c888d23f27a6072fe7e87da95ce8ea51bef3a0Martin Wicke import pandas as pd # pylint: disable=g-import-not-at-top 42b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower cat_processor = categorical.CategoricalProcessor() 43b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower data = pd.DataFrame({"Gender": ["Male", "Female", "Male"]}) 4491f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower x = list(cat_processor.fit_transform(data)) 4591f0b6c6a4d0f4f9259aac162b1fae5d4b24a0d1A. Unique TensorFlower self.assertAllEqual(list(x), [[1], [2], [1]]) 46b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower 47b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower def testMultiCategoricalProcessor(self): 48e121667dc609de978a223c56ee906368d2c4ceefJustine Tunney cat_processor = categorical.CategoricalProcessor( 49e121667dc609de978a223c56ee906368d2c4ceefJustine Tunney min_frequency=0, share=False) 50e121667dc609de978a223c56ee906368d2c4ceefJustine Tunney x = cat_processor.fit_transform([["0", "Male"], [1, "Female"], 51e121667dc609de978a223c56ee906368d2c4ceefJustine Tunney ["3", "Male"]]) 52b2bbac7e2220ce4f04fcdb53fc602ccbaf4500a0A. Unique TensorFlower self.assertAllEqual(list(x), [[1, 1], [2, 2], [3, 1]]) 5337606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 5437606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 5537606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevanif __name__ == "__main__": 56e121667dc609de978a223c56ee906368d2c4ceefJustine Tunney test.main() 57