---
content_id: "121077945"
title: DeepEquals
---
# DeepEquals

DeepEquals asserts that an object or an array are exactly the same, with the
object or array only allowing primitives as the values of the keys (no arrays
or objects). Because of this, two different scoringData are allowed:


## scoring_data as object:

```js
{
  "value": {
    "choice_uuid1": "answer_uuid1",
    "choice_uuid2": "answer_uuid2",
    "choice_uuid3": "answer_uuid3",
  }
}
```

## scoring_data as array:

```js
{
  "value": ["uuid1", "uuid2", "uuid3"]
}
```

## With Object
### Correct Case
#### user_response:

```js
{
  "value": {
    "choice_uuid1": "answer_uuid1",
    "choice_uuid2": "answer_uuid2",
    "choice_uuid3": "answer_uuid3",
  }
}
```

#### scored_data

```js
{
  "value": [
    {id: "choice_uuid1", value: "answer_uuid1", resultScore: 1, userResponded: 'answer_uuid1'},
    {id: "choice_uuid2", value: "answer_uuid2", resultScore: 1, userResponded: 'answer_uuid2'},
    {id: "choice_uuid3", value: "answer_uuid3", resultScore: 1, userResponded: 'answer_uuid3'}
  ],
  "correct": true
}
```

### Incorrect Case
#### user_response:

```js
{
  "value": {
    "choice_uuid1": "answer_uuid1",
    "choice_uuid2": "answer_uuid2",
    "choice_uuid3": "answer_uuid3",
  }
}
```

#### scored_data

```js
{
  "value": [
    {id: "choice_uuid1", value: "answer_uuid1", resultScore: 1, userResponded: 'answer_uuid1'},
    {id: "choice_uuid2", value: "answer_uuid2", resultScore: 0, userResponded: 'answer_uuid3'},
    {id: "choice_uuid3", value: "answer_uuid3", resultScore: 0, userResponded: 'answer_uuid2'}
  ],
  "correct": false
}
```

## With Array
### Correct Case
#### user_response:

```js
{
  "value": ["uuid1", "uuid2", "uuid3"]
}
```

#### scored_data

The id in an array will be the index as the value appeared in the scoredData.

```js
{
  "value": [
    {id: 0, value: "uuid1", resultScore: 1, userResponded: "uuid1"},
    {id: 1, value: "uuid2", resultScore: 1, userResponded: "uuid2"},
    {id: 2, value: "uuid3", resultScore: 1, userResponded: "uuid3"}
  ],
  "correct": true
}
```

### Incorrect Case
#### user_response:

```js
{
  "value": ["uuid2", "uuid1", "uuid3"]
}
```

#### scored_data

```js
{
  "value": [
    {id: 0, value: "uuid1", resultScore: 0, userResponded: "uuid2"},
    {id: 1, value: "uuid2", resultScore: 0, userResponded: "uuid1"},
    {id: 2, value: "uuid3", resultScore: 1, userResponded: "uuid3"}
  ],
  "correct": false
}
```
