# Size¶

## Description¶

A `Size` is a tuple with width, height coordinates. It represents the width and the height of a cell in a grid.

```>>> from benker.size import Size

>>> size = Size(4, 5)
```

The representation of a size is “(width x height)”:

```>>> print(size)
(4 x 5)
```

## Operations¶

You can change the size of a Size by adding, subtracting of multiplying values.

You can add two sizes, a size and a tuple (x, y), a size and a single quantity (integer):

```>>> Size(2, 3) + Size(3, 4)
Size(width=5, height=7)

>>> Size(2, 3) + (3, 4)
Size(width=5, height=7)

>>> Size(2, 3) + 1
Size(width=3, height=4)
```

You can subtract two sizes, a size and a tuple (x, y), a size and a single quantity (integer):

```>>> Size(1, 4) - Size(2, 1)
Size(width=-1, height=3)

>>> Size(1, 4) - (2, 1)
Size(width=-1, height=3)

>>> Size(1, 4) - 1
Size(width=0, height=3)
```

You can multiply a size by an integer. This last ability is useful to reverse a size:

```>>> Size(3, 4) * 3
Size(width=9, height=12)

>>> Size(3, 4) * -1
Size(width=-3, height=-4)
```

You can also negate a size:

```>>> -Size(3, 5)
Size(width=-3, height=-5)

>>> +Size(3, 5)
Size(width=3, height=5)
```

All this operations are useful to do mathematical transformation with Coord — Operations, for instance, a translation of a coord is done by adding a coord and a size.