# 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.