# Asserts

Description: Assert cheatcodes

Note: This document was authored using MDX

  Source: https://github.com/NomicFoundation/hardhat-website/tree/main/src/content/docs/docs/reference/cheatcodes/Assertions/asserts.mdx

## `assertApproxEqAbsDecimal`

### Signature

```solidity
function assertApproxEqAbsDecimal(
  uint256 left,
  uint256 right,
  uint256 maxDelta,
  uint256 decimals
) external pure;
function assertApproxEqAbsDecimal(
  uint256 left,
  uint256 right,
  uint256 maxDelta,
  uint256 decimals,
  string calldata error
) external pure;
function assertApproxEqAbsDecimal(
  int256 left,
  int256 right,
  uint256 maxDelta,
  uint256 decimals
) external pure;
function assertApproxEqAbsDecimal(
  int256 left,
  int256 right,
  uint256 maxDelta,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. If `maxDelta` is specified, it expects difference to be less than or equal to `maxDelta`.
Formats values with decimals in failure message. Includes error message into revert string on failure.

---

## `assertApproxEqAbs`

### Signature

```solidity
function assertApproxEqAbs(
  uint256 left,
  uint256 right,
  uint256 maxDelta
) external pure;
function assertApproxEqAbs(
  uint256 left,
  uint256 right,
  uint256 maxDelta,
  string calldata error
) external pure;
function assertApproxEqAbs(
  int256 left,
  int256 right,
  uint256 maxDelta
) external pure;
function assertApproxEqAbs(
  int256 left,
  int256 right,
  uint256 maxDelta,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. If `maxDelta` is specified, it expects difference to be less than or equal to `maxDelta`.
Includes error message into revert string on failure.

---

## `assertApproxEqRelDecimal`

### Signature

```solidity
function assertApproxEqRelDecimal(
  uint256 left,
  uint256 right,
  uint256 maxPercentDelta,
  uint256 decimals
) external pure;
function assertApproxEqRelDecimal(
  uint256 left,
  uint256 right,
  uint256 maxPercentDelta,
  uint256 decimals,
  string calldata error
) external pure;
function assertApproxEqRelDecimal(
  int256 left,
  int256 right,
  uint256 maxPercentDelta,
  uint256 decimals
) external pure;
function assertApproxEqRelDecimal(
  int256 left,
  int256 right,
  uint256 maxPercentDelta,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `unt256` values. If `maxPercentDelta` is specified, it expects relative difference in percents to be less than or equal to `maxPercentDelta`.
`maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%
Formats values with decimals in failure message. Includes error message into revert string on failure.

---

## `assertApproxEqRel`

### Signature

```solidity
function assertApproxEqRel(
  uint256 left,
  uint256 right,
  uint256 maxPercentDelta
) external pure;
function assertApproxEqRel(
  uint256 left,
  uint256 right,
  uint256 maxPercentDelta,
  string calldata error
) external pure;
function assertApproxEqRel(
  int256 left,
  int256 right,
  uint256 maxPercentDelta
) external pure;
function assertApproxEqRel(
  int256 left,
  int256 right,
  uint256 maxPercentDelta,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. If `maxPercentDelta` is specified, it expects relative difference in percents to be less than or equal to `maxPercentDelta`.
`maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%
Includes error message into revert string on failure.

---

## `assertEqDecimal`

### Signature

```solidity
function assertEqDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertEqDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertEqDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertEqDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Asserts that two `int256` or two `uint256` values are equal, formatting them with decimals in failure message.
Includes error message into revert string on failure.

---

## `assertEq`

### Signature

```solidity
function assertEq(bool left, bool right) external pure;
function assertEq(bool left, bool right, string calldata error) external pure;
function assertEq(string calldata left, string calldata right) external pure;
function assertEq(
  string calldata left,
  string calldata right,
  string calldata error
) external pure;
function assertEq(bytes calldata left, bytes calldata right) external pure;
function assertEq(
  bytes calldata left,
  bytes calldata right,
  string calldata error
) external pure;
function assertEq(bool[] calldata left, bool[] calldata right) external pure;
function assertEq(
  bool[] calldata left,
  bool[] calldata right,
  string calldata error
) external pure;
function assertEq(
  uint256[] calldata left,
  uint256[] calldata right
) external pure;
function assertEq(
  uint256[] calldata left,
  uint256[] calldata right,
  string calldata error
) external pure;
function assertEq(
  int256[] calldata left,
  int256[] calldata right
) external pure;
function assertEq(
  int256[] calldata left,
  int256[] calldata right,
  string calldata error
) external pure;
function assertEq(uint256 left, uint256 right) external pure;
function assertEq(
  address[] calldata left,
  address[] calldata right
) external pure;
function assertEq(
  address[] calldata left,
  address[] calldata right,
  string calldata error
) external pure;
function assertEq(
  bytes32[] calldata left,
  bytes32[] calldata right
) external pure;
function assertEq(
  bytes32[] calldata left,
  bytes32[] calldata right,
  string calldata error
) external pure;
function assertEq(
  string[] calldata left,
  string[] calldata right
) external pure;
function assertEq(
  string[] calldata left,
  string[] calldata right,
  string calldata error
) external pure;
function assertEq(bytes[] calldata left, bytes[] calldata right) external pure;
function assertEq(
  bytes[] calldata left,
  bytes[] calldata right,
  string calldata error
) external pure;
function assertEq(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertEq(int256 left, int256 right) external pure;
function assertEq(
  int256 left,
  int256 right,
  string calldata error
) external pure;
function assertEq(address left, address right) external pure;
function assertEq(
  address left,
  address right,
  string calldata error
) external pure;
function assertEq(bytes32 left, bytes32 right) external pure;
function assertEq(
  bytes32 left,
  bytes32 right,
  string calldata error
) external pure;
```

### Description

Asserts that two values are equal. If `error` is specified, includes error message into revert string on failure.

---

## `assertFalse`

### Signature

```solidity
function assertFalse(bool condition) external pure;
function assertFalse(bool condition, string calldata error) external pure;
```

### Description

Asserts that the given condition is false. If `error` is specified, includes error message into revert string on failure.

---

## `assertGeDecimal`

### Signature

```solidity
function assertGeDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertGeDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertGeDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertGeDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. Expects first value to be greater than or equal to second.
Formats values with decimals in failure message. If `error` is specified, includes error message into revert string on failure.

---

## `assertGe`

### Signature

```solidity
function assertGe(uint256 left, uint256 right) external pure;
function assertGe(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertGe(int256 left, int256 right) external pure;
function assertGe(
  int256 left,
  int256 right,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. Expects first value to be greater than or equal to second.
If `error` is specified, includes error message into revert string on failure.

---

## `assertGtDecimal`

### Signature

```solidity
function assertGtDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertGtDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertGtDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertGtDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. Expects first value to be greater than second.
Formats values with decimals in failure message. If `error` is specified, includes error message into revert string on failure.

---

## `assertGt`

### Signature

```solidity
function assertGt(uint256 left, uint256 right) external pure;
function assertGt(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertGt(int256 left, int256 right) external pure;
function assertGt(
  int256 left,
  int256 right,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. Expects first value to be greater than second.
If `error` is specified, includes error message into revert string on failure.

---

## `assertLeDecimal`

### Signature

```solidity
function assertLeDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertLeDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertLeDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertLeDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` values. Expects first value to be less than or equal to second.
Formats values with decimals in failure message. If `error` is specified, includes error message into revert string on failure.

---

## `assertLe`

### Signature

```solidity
function assertLe(uint256 left, uint256 right) external pure;
function assertLe(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertLe(int256 left, int256 right) external pure;
function assertLe(
  int256 left,
  int256 right,
  string calldata error
) external pure;
```

### Description

Compares two `int256` values. Expects first value to be less than or equal to second.
If `error` is specified, includes error message into revert string on failure.

---

## `assertLtDecimal`

### Signature

```solidity
function assertLtDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertLtDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertLtDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertLtDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Compares two `int256` values. Expects first value to be less than second.
Formats values with decimals in failure message. If `error` is specified, includes error message into revert string on failure.

---

## `assertLt`

### Signature

```solidity
function assertLt(uint256 left, uint256 right) external pure;
function assertLt(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertLt(int256 left, int256 right) external pure;
function assertLt(
  int256 left,
  int256 right,
  string calldata error
) external pure;
```

### Description

Compares two `int256` or two `uint256` values. Expects first value to be less than second.
If `error` is specified, includes error message into revert string on failure.

---

## `assertNotEqDecimal`

### Signature

```solidity
function assertNotEqDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals
) external pure;
function assertNotEqDecimal(
  uint256 left,
  uint256 right,
  uint256 decimals,
  string calldata error
) external pure;
function assertNotEqDecimal(
  int256 left,
  int256 right,
  uint256 decimals
) external pure;
function assertNotEqDecimal(
  int256 left,
  int256 right,
  uint256 decimals,
  string calldata error
) external pure;
```

### Description

Asserts that two `int256` or two `uint256` values are not equal, formatting them with decimals in failure message.
If `error` is specified, includes error message into revert string on failure.

---

## `assertNotEq`

### Signature

```solidity
function assertNotEq(bool left, bool right) external pure;
function assertNotEq(
  bool left,
  bool right,
  string calldata error
) external pure;
function assertNotEq(string calldata left, string calldata right) external pure;
function assertNotEq(
  string calldata left,
  string calldata right,
  string calldata error
) external pure;
function assertNotEq(bytes calldata left, bytes calldata right) external pure;
function assertNotEq(
  bytes calldata left,
  bytes calldata right,
  string calldata error
) external pure;
function assertNotEq(bool[] calldata left, bool[] calldata right) external pure;
function assertNotEq(
  bool[] calldata left,
  bool[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  uint256[] calldata left,
  uint256[] calldata right
) external pure;
function assertNotEq(
  uint256[] calldata left,
  uint256[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  int256[] calldata left,
  int256[] calldata right
) external pure;
function assertNotEq(
  int256[] calldata left,
  int256[] calldata right,
  string calldata error
) external pure;
function assertNotEq(uint256 left, uint256 right) external pure;
function assertNotEq(
  address[] calldata left,
  address[] calldata right
) external pure;
function assertNotEq(
  address[] calldata left,
  address[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  bytes32[] calldata left,
  bytes32[] calldata right
) external pure;
function assertNotEq(
  bytes32[] calldata left,
  bytes32[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  string[] calldata left,
  string[] calldata right
) external pure;
function assertNotEq(
  string[] calldata left,
  string[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  bytes[] calldata left,
  bytes[] calldata right
) external pure;
function assertNotEq(
  bytes[] calldata left,
  bytes[] calldata right,
  string calldata error
) external pure;
function assertNotEq(
  uint256 left,
  uint256 right,
  string calldata error
) external pure;
function assertNotEq(int256 left, int256 right) external pure;
function assertNotEq(
  int256 left,
  int256 right,
  string calldata error
) external pure;
function assertNotEq(address left, address right) external pure;
function assertNotEq(
  address left,
  address right,
  string calldata error
) external pure;
function assertNotEq(bytes32 left, bytes32 right) external pure;
function assertNotEq(
  bytes32 left,
  bytes32 right,
  string calldata error
) external pure;
```

### Description

Asserts that two values are not equal. If `error` is specified, includes error message into revert string on failure.

---

## `assertTrue`

### Signature

```solidity
function assertTrue(bool condition) external pure;
function assertTrue(bool condition, string calldata error) external pure;
```

### Description

Asserts that the given condition is true. If `error` is specified, includes error message into revert string on failure.
