def test_format_value_small_value(self):
        small_value = "0.000008767"
        small_value_measure_type = ColumnMeasureType(len(small_value) - 3)
        small_value_column = Column("CpuTime",
                                    None,
                                    3,
                                    None,
                                    small_value_measure_type,
                                    unit=None,
                                    scale_factor=1)
        formatted_value_aligned = small_value_column.format_value(
            small_value, True, 'html')
        self.assertEqual(formatted_value_aligned, "0.00000877")

        # Test whether scaling to small values and resulting values are handled correctly
        small_value_measure_type = ColumnMeasureType(12)
        small_value_column = Column("CpuTime",
                                    None,
                                    3,
                                    None,
                                    small_value_measure_type,
                                    unit='dummy',
                                    scale_factor=1e-10)
        formatted_value_aligned = small_value_column.format_value(
            '2', True, 'html')
        self.assertEqual(formatted_value_aligned,
                         '0.0000000002  ')
 def setUp(self):
     self.max_dec_digits = 6
     self.sig_figures = 4
     self.measure_type = ColumnMeasureType(self.max_dec_digits)
     self.measure_column = Column("CpuTime", None, self.sig_figures, None,
                                  self.measure_type, None, None, 1)
     self.default_optionals = (False, 'html')
    def test_format_value_small_value(self):
        small_value = "0.000008767"
        small_value_measure_type = ColumnMeasureType(len(small_value) - 3)
        small_value_column = Column(
            "CpuTime",
            None,
            3,
            None,
            small_value_measure_type,
            unit=None,
            scale_factor=1,
        )
        formatted_value = small_value_column.format_value(
            small_value, *self.default_optionals)
        self.assertEqual(formatted_value, "0.00000877")

        # Test CSV formatting with scaling
        small_value_column = Column(
            "CpuTime",
            None,
            None,
            None,
            small_value_measure_type,
            unit="s",
            scale_factor=Decimal("0.1"),
        )
        formatted_value = small_value_column.format_value(small_value, "csv")
        self.assertEqual(formatted_value, "0.0000008767")

        # Test whether scaling to small values and resulting values are handled correctly
        small_value_measure_type = ColumnMeasureType(12)
        small_value_column = Column(
            "CpuTime",
            None,
            3,
            None,
            small_value_measure_type,
            unit="dummy",
            scale_factor=1e-10,
        )
        formatted_value_aligned = small_value_column.format_value(
            "2", "html_cell")
        self.assertEqual(formatted_value_aligned,
                         ".0000000002  ")