示例#1
0
    def test_should_set_tooltip(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        def config_tooltip(row, column, table):
            return "The value is: " + str(table.values[row][column])

        # when
        tabledisplay.setToolTip(config_tooltip)
        # then
        tooltips = tabledisplay.chart.tooltips
        self.assertEqual(tooltips[2][2], "The value is: 5")
    def test_should_set_font_color_provider(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        colors = [[Color.LIGHT_GRAY, Color.GRAY, Color.RED],
                  [Color.DARK_GREEN, Color.ORANGE, Color.RED],
                  [Color.MAGENTA, Color.BLUE, Color.BLACK]]

        def colorProvider(row, column, table):
            return colors[row][column]

        # when
        tabledisplay.setFontColorProvider(colorProvider)
        # then
        self.assertEqual(tabledisplay.model["fontColor"][0][0],
                         Color.LIGHT_GRAY.hex())
示例#3
0
    def test_should_filter_all_rows(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        def filter_row(row, model):
            return True

        # when
        tabledisplay.setRowFilter(filter_row)
        # then
        self.assertEqual(tabledisplay.model["filteredValues"][0], [1, 2, 3])
        self.assertEqual(tabledisplay.model["filteredValues"][1], [4, 5, 6])
        self.assertEqual(tabledisplay.model["filteredValues"][2], [7, 8, 5])
 def test_should_set_string_format_humanFriendly_for_time(self):
     # given
     df = pd.read_csv(os.path.dirname(__file__) + "/resources/" + 'interest-rates.csv')
     table = TableDisplay(df)
     # when
     table.setStringFormatForType(ColumnType.Time, TableDisplayStringFormat.getTimeFormat(TimeUnit.DAYS, True))
     # then
     time = table.model[STRING_FORMAT_FOR_TYPE]['time']
     self.assertEqual(time['humanFriendly'], True)
 def test_should_set_string_format_for_times(self):
     # given
     df = pd.read_csv(os.path.dirname(__file__) + "/resources/" + 'interest-rates.csv')
     table = TableDisplay(df)
     # when
     table.setStringFormatForTimes(TimeUnit.DAYS)
     # then
     time = table.model[STRING_FORMAT_FOR_TYPE]['time']
     self.assertEqual(time['type'], "time")
     self.assertEqual(time['unit'], TimeUnit.DAYS.name)
 def test_should_set_headers_vertical_to_true(self):
     # given
     mapList4 = [
         {"a": 1, "b": 2, "c": 3},
         {"a": 4, "b": 5, "c": 6},
         {"a": 7, "b": 8, "c": 5}
     ]
     tabledisplay = TableDisplay(mapList4)
     # when
     tabledisplay.setHeadersVertical(True)
     # then
     self.assertEqual(tabledisplay.model["headersVertical"], True)
 def test_should_add_heatmap_highlighter(self):
     # given
     df = pd.read_csv(
         os.path.dirname(__file__) + "/resources/" + 'interest-rates.csv')
     table = TableDisplay(df)
     # when
     table.addCellHighlighter(
         TableDisplayCellHighlighter.getHeatmapHighlighter("m3"))
     # then
     cellHighlighters = table.model['cellHighlighters'][0]
     self.assertEqual(cellHighlighters["colName"], "m3")
     self.assertEqual(cellHighlighters["style"],
                      HighlightStyle.FULL_ROW.value)
     self.assertEqual(cellHighlighters["type"], HeatmapHighlighter.type)
示例#8
0
 def test_NaT_support(self):
     # given
     df = pd.DataFrame(np.random.randn(5, 3), index=['a', 'c', 'e', 'f', 'h'], columns=['one', 'two', 'three'])
     df['timestamp'] = pd.Timestamp('20120101')
     df.loc[['a', 'c', 'h'], ['one', 'timestamp']] = np.nan
     # when
     display = TableDisplay(df)
     # then
     self.assertTrue(display.values[0][4] == Table.NAT_VALUE)
示例#9
0
 def test_date_format(self):
     # given
     df = pd.read_csv(
         os.path.dirname(__file__) + "/resources/" + 'interest-rates.csv')
     df['time'] = pd.to_datetime(df['time'], utc=True)
     # when
     table = TableDisplay(df)
     # then
     self.assertEqual(table.model['values'][0][7]['timestamp'],
                      633744000000.0)
 def test_should_set_header_font_size(self):
     # given
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     tabledisplay = TableDisplay(mapList4)
     # when
     tabledisplay.setHeaderFontSize(33)
     # then
     self.assertEqual(tabledisplay.model["headerFontSize"], 33)
示例#11
0
    def toWidget(self, item):
        if item is None:
            return self.createHTMLPre("None")

        if isinstance(item, DataFrame):
            return TableDisplay(item)

        if isinstance(item, Widget):
            return item

        return self.createHTMLPre(item.__str__())
 def test_default_headers_vertical_should_be_false(self):
     # given
     mapList4 = [
         {"a": 1, "b": 2, "c": 3},
         {"a": 4, "b": 5, "c": 6},
         {"a": 7, "b": 8, "c": 5}
     ]
     # when
     tabledisplay = TableDisplay(mapList4)
     # then
     self.assertEqual(tabledisplay.model["headersVertical"], False)
 def test_should_set_data_font_size(self):
     # given
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     tabledisplay = TableDisplay(mapList4)
     # when
     tabledisplay.setDataFontSize(25)
     # then
     self.assertEqual(tabledisplay.model["dataFontSize"], 25)
示例#14
0
 def test_should_set_time_zone(self):
     # given
     timezone = "TZ1"
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     tabledisplay = TableDisplay(mapList4)
     # when
     tabledisplay.setTimeZone(timezone)
     # then
     self.assertEqual(tabledisplay.model["timeZone"], timezone)
示例#15
0
 def test_should_create_table_display_when_columns_equal_types(self):
     # given
     colNames = ["column1", "column2", "column3"]
     row1 = [1, 2, 3]
     row2 = [4, 5, 6]
     # when
     try:
         TableDisplay(pd.DataFrame([row1, row2]), colNames, ['integer', 'integer'])
         raise Exception("Test should not pass")
     except Exception as e:
         # then
         self.assertTrue('The length of types should be same as number of columns.' in e.args)
示例#16
0
    def test_negate_when_context_menu_item_event(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        def negate(row, column, table):
            table.values[row][column] = -1 * int(table.values[row][column])

        tabledisplay.addContextMenuItem("negate", negate)

        param = {
            'event': 'CONTEXT_MENU_CLICK',
            'itemKey': 'negate',
            'row': 1,
            'column': 1
        }
        # when
        tabledisplay.handle_msg(tabledisplay, param, [])
        # then
        values = tabledisplay.chart.values
        self.assertEqual(values[1][1], -5)
    def test_sum_rows_when_double_click(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        def dclick(row, column, table):
            table.values[row][column] = sum(map(int, table.values[row]))

        tabledisplay.setDoubleClickAction(dclick)
        param = {'event': 'DOUBLE_CLICK', 'row': 0, 'column': 0}
        # when
        tabledisplay.handle_msg(tabledisplay, param, [])
        # then
        values = tabledisplay.chart.values
        self.assertEqual(values[0][0], 6)
示例#18
0
 def test_should_set_local_timezone(self):
     #given
     gtimezone = "GTZ1"
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     TableDisplay.timeZoneGlobal = gtimezone
     #when
     tabledisplay1 = TableDisplay(mapList4)
     tabledisplay1.setTimeZone("TZ2")
     # then
     self.assertEqual(tabledisplay1.model["timeZone"], "TZ2")
示例#19
0
    def toWidget(self, item):
        if item is None:
            return self.createHTMLPre("None")

        if isinstance(item, DataFrame):
            if TableDisplay is not None:
                return TableDisplay(item)
            else:
                return self.createHTMLPre("You need beakerx_tabledisplay to display this")

        if isinstance(item, Widget):
            return item

        return self.createHTMLPre(item.__str__())
示例#20
0
 def test_support_discovering_types(self):
     # given
     colNames = ["xxx column", "integer column", "double column", "number column"]
     row1 = [6.1, 6, 0.5, 6]
     row2 = [3.1, 3, 2.0, 3]
     row3 = [2.2, 2, 3.0, 2]
     row4 = [0.1, 0, 6.0, 0]
     # when
     table = TableDisplay(pd.DataFrame([row1, row2, row3, row4], columns=colNames), colNames)
     # then
     self.assertTrue(table.model["types"][0] == "double")
     self.assertTrue(table.model["types"][1] == "integer")
     self.assertTrue(table.model["types"][2] == "double")
     self.assertTrue(table.model["types"][3] == "integer")
示例#21
0
 def test_should_set_global_timezone(self):
     #given
     gtimezone = "GTZ1"
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     #when
     TableDisplay.timeZoneGlobal = gtimezone
     tabledisplay1 = TableDisplay(mapList4)
     tabledisplay2 = TableDisplay(mapList4)
     # then
     self.assertEqual(tabledisplay1.model["timeZone"], gtimezone)
     self.assertEqual(tabledisplay2.model["timeZone"], gtimezone)
示例#22
0
 def test_support_setting_types(self):
     # given
     colNames = ["xxx column", "integer column", "double column", "number column"]
     row1 = [6, 6, 0.5, 6]
     row2 = [3, 3, 2.0, 3]
     row3 = [2, 2, 3.0, 2]
     row4 = [0, 0, 6.0, 0]
     # when
     table = TableDisplay(pd.DataFrame([row1, row2, row3, row4], columns=colNames), colNames, ['xxx type', 'integer', 'double', 'number'])
     # then
     self.assertTrue(table.model["types"][0] == "xxx type")
     self.assertTrue(table.model["types"][1] == "integer")
     self.assertTrue(table.model["types"][2] == "double")
     self.assertTrue(table.model["types"][3] == "number")
 def test_should_set_alignment_provider_for_type(self):
     # given
     df = pd.read_csv(
         os.path.dirname(__file__) + "/resources/" + 'interest-rates.csv')
     table = TableDisplay(df)
     # when
     table.setAlignmentProviderForType(
         ColumnType.Double, TableDisplayAlignmentProvider.RIGHT_ALIGNMENT)
     table.setAlignmentProviderForType(
         ColumnType.Integer, TableDisplayAlignmentProvider.LEFT_ALIGNMENT)
     table.setAlignmentProviderForType(
         ColumnType.Boolean, TableDisplayAlignmentProvider.CENTER_ALIGNMENT)
     # then
     alignment = table.model['alignmentForType']
     self.assertEqual(alignment['double'], "R")
     self.assertEqual(alignment['integer'], "L")
     self.assertEqual(alignment['boolean'], "C")
示例#24
0
    def test_should_filter_last_row(self):
        # given
        mapList4 = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        tabledisplay = TableDisplay(mapList4)

        def filter_row(row, model):
            return model[row][1] == 8

        # when
        tabledisplay.setRowFilter(filter_row)
        # then
        self.assertEqual(tabledisplay.model["filteredValues"], [[7, 8, 5]])
示例#25
0
    def test_filtered_values(self):
        # given
        mapListFilter = [{
            "a": 1,
            "b": 2,
            "c": 3
        }, {
            "a": 4,
            "b": 5,
            "c": 6
        }, {
            "a": 7,
            "b": 8,
            "c": 5
        }]
        display = TableDisplay(mapListFilter)

        def filter_row(row, model):
            return model[row][1] == 8

        # when
        display.setRowFilter(filter_row)
        # then
        self.assertEqual(display.model["filteredValues"], [[7, 8, 5]])
示例#26
0
 def test_no_filtered_values_when_no_setRowFilter(self):
     # given
     mapListFilter = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     # when
     display = TableDisplay(mapListFilter)
     # then
     self.assertFalse('filteredValues' in display.model)
示例#27
0
 def test_default_time_zone(self):
     # given
     mapList4 = [{
         "a": 1,
         "b": 2,
         "c": 3
     }, {
         "a": 4,
         "b": 5,
         "c": 6
     }, {
         "a": 7,
         "b": 8,
         "c": 5
     }]
     # when
     tabledisplay = TableDisplay(mapList4)
     # then
     self.assertTrue("timeZone" not in tabledisplay.model)
示例#28
0
 def f():
     display_html(TableDisplay(model_instance))