def test_set_value_size(): """Test that the size of DecimalNumber after set_value is correct.""" num = DecimalNumber(0).scale(0.3) test_num = num.copy() num.set_value(0) # round because the height is off by 1e-17 assert round(num.height, 12) == round(test_num.height, 12)
def get_number_mobject( self, x: float, direction: Sequence[float] | None = None, buff: float | None = None, font_size: float | None = None, label_constructor: VMobject | None = None, **number_config, ) -> VMobject: """Generates a positioned :class:`~.DecimalNumber` mobject generated according to ``label_constructor``. Parameters ---------- x The x-value at which the mobject should be positioned. direction Determines the direction at which the label is positioned next to the line. buff The distance of the label from the line. font_size The font size of the label mobject. label_constructor The :class:`~.VMobject` class that will be used to construct the label. Defaults to the ``label_constructor`` attribute of the number line if not specified. Returns ------- :class:`~.DecimalNumber` The positioned mobject. """ number_config = merge_dicts_recursively( self.decimal_number_config, number_config, ) if direction is None: direction = self.label_direction if buff is None: buff = self.line_to_number_buff if font_size is None: font_size = self.font_size if label_constructor is None: label_constructor = self.label_constructor num_mob = DecimalNumber(x, font_size=font_size, mob_class=label_constructor, **number_config) num_mob.next_to(self.number_to_point(x), direction=direction, buff=buff) if x < 0 and self.label_direction[0] == 0: # Align without the minus sign num_mob.shift(num_mob[0].get_width() * LEFT / 2) return num_mob
def test_font_size(): """Test that DecimalNumber returns the correct font_size value after being scaled.""" num = DecimalNumber(0).scale(0.3) assert round(num.font_size, 5) == 14.4
def test_changing_font_size(): """Test that the font_size property properly scales DecimalNumber.""" num = DecimalNumber(0, font_size=12) num.font_size = 48 assert num.height == DecimalNumber(0, font_size=48).height
def test_font_size_vs_scale(): """Test that scale produces the same results as .scale()""" num = DecimalNumber(0, font_size=12) num_scale = DecimalNumber(0).scale(1 / 4) assert num.height == num_scale.height