I realised that when one or more of the cells are set to be expanded, the items will be missing.
let item1 = Parent(state: .collapsed, childs: ["SubItem 1", "SubItem 2", "SubItem 3"], title: "Item 1")
let item2 = Parent(state: .collapsed, childs: ["SubItem 1", "SubItem 2"], title: "Item 2")
let item3 = Parent(state: .expanded, childs: ["SubItem 1", "SubItem 2", "SubItem 3"], title: "Item 3")
let item4 = Parent(state: .expanded, childs: ["SubItem 1", "SubItem 2"], title: "Item 4")
let item5 = Parent(state: .expanded, childs: ["SubItem 1", "SubItem 2"], title: "Item 5")
dataSource = [item1, item2, item3, item4, item5]
numberOfCellsExpanded = .several
total = dataSource.count