Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duplicate data on large array throws error on candlestick.setData #533

Closed
SuperPenguin opened this issue Jul 25, 2020 · 2 comments
Closed
Labels
working as intended Works as intended.

Comments

@SuperPenguin
Copy link
Contributor

SuperPenguin commented Jul 25, 2020

Lightweight Charts Version: standalone master branch build

Steps/code to reproduce:

There are duplicates data in my array (see last index of array on time 1595635200) that cause error on my candlestick.setData. If the duplicate data removed it will not throw any error. However If I reduced the data size to smaller amount, it still work even there are duplicates in data

var data1 = [
    { "time": 1577923200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578009600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578096000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578268800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578355200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578441600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578528000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578614400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578873600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578960000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579046400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579132800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579219200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579305600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579478400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579564800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579651200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579737600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579824000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580083200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580169600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580256000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580342400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580428800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580688000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580774400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580860800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580947200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581033600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581292800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581379200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581465600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581552000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581638400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581724800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581897600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581984000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582070400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582156800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582243200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582502400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582588800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582675200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595462400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595548800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 }
]

var data2 = [
    { "time": 1546387200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1546473600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1546560000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1546819200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1546905600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1546992000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547078400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547164800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547424000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547510400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547596800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547683200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1547769600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548028800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548115200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548201600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548288000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548374400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548633600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548720000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548806400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548892800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1548979200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549238400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549411200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549497600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549584000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549843200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1549929600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550016000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550102400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550188800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550448000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550534400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550620800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550707200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1550793600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551052800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551139200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551225600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551312000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551398400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551657600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551744000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1551830400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552003200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552262400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552348800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552435200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552521600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552608000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552867200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1552953600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553040000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553126400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553212800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553472000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553558400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553644800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553731200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1553817600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554076800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554163200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554336000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554422400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554681600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554768000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554854400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1554940800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555027200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555286400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555372800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555545600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555891200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1555977600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556064000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556150400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556236800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556496000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556582400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556755200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1556841600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557100800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557187200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557273600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557360000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557446400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557705600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557792000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557878400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1557964800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558051200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558310400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558396800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558483200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558569600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558656000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1558915200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1559001600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1559088000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1559260800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560124800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560211200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560297600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560384000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560470400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560729600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560816000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560902400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1560988800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561075200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561334400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561420800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561507200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561593600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561680000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1561939200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562025600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562112000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562198400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562284800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562544000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562630400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562716800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562803200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1562889600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563148800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563235200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563321600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563408000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563494400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563753600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563840000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1563926400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564012800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564099200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564358400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564444800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564531200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564617600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564704000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1564963200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565049600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565136000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565222400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565308800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565568000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565654400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565740800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565827200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1565913600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566172800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566259200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566345600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566432000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566518400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566777600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566864000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1566950400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567036800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567123200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567382400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567468800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567555200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567641600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567728000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1567987200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568073600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568160000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568246400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568332800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568592000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568678400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568764800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568851200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1568937600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569196800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569283200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569369600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569456000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569542400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569801600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569888000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1569974400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570060800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570147200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570406400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570492800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570579200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570665600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1570752000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571011200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571097600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571184000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571270400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571356800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571616000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571702400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571788800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571875200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1571961600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572220800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572307200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572393600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572480000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572566400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572825600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572912000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1572998400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573084800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573171200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573257600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573344000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573430400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573516800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573603200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573689600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573776000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1573862400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574035200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574121600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574208000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574294400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574380800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574467200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574640000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574726400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574812800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574899200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1574985600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575072000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575244800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575331200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575417600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575504000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575590400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575676800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575849600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1575936000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576022400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576108800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576195200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576281600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576368000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576454400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576540800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576627200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576800000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576886400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1576972800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577059200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577145600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577318400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577404800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577491200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577577600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577664000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577750400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1577923200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578009600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578096000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578268800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578355200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578441600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578528000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578614400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578873600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1578960000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579046400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579132800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579219200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579305600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579478400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579564800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579651200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579737600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1579824000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580083200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580169600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580256000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580342400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580428800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580688000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580774400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580860800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1580947200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581033600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581292800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581379200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581465600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581552000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581638400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581724800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581897600, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1581984000, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582070400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582156800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582243200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582502400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582588800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1582675200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595462400, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595548800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200, "open": 5000, "high": 5500, "low": 4500, "close": 5250 }
]

console.log("Data1 length: ", data1.length);

var map1 = {};

for (var i = 0; i < data1.length; i++) {
    var d = data1[i];

    if (map1[d.time] == undefined) map1[d.time] = d;
    else console.log("Found data1 duplicate at index: ", i);
}

console.log("Data2 length: ", data2.length);

var map2 = {};

for (var i = 0; i < data2.length; i++) {
    var d = data2[i];

    if (map2[d.time] == undefined) map2[d.time] = d;
    else console.log("Found data2 duplicate at index: ", i);
}

var chart = LightweightCharts.createChart(document.body, {
    width: 800,
    height: 600
});

var candlestick = chart.addCandlestickSeries();
candlestick.setData(data1);

setTimeout(function () {
    candlestick.setData(data2);
}, 2500);

Actual behavior:

Chart broken, throws error on screenshot below

Expected behavior:

Chart not broken

Screenshots:

image

CodeSandbox/JSFiddle/etc link:

This worked fine somehow

var data1 = [
    { "time": 1595548800, "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 }
]

var data2 = [
    { "time": 1582675200,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595462400,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595548800,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 },
    { "time": 1595635200,  "open": 5000, "high": 5500, "low": 4500, "close": 5250 }
]
@timocov
Copy link
Contributor

timocov commented Jul 29, 2020

Yeah, duplicated data isn't allowed and might cause any kind of "strange" effects like this. We'll warn about that in #315.

However If I reduced the data size to smaller amount, it still work even there are duplicates in data

I didn't dig enough into this, but just guess that possible reason could be https://github.com/tradingview/lightweight-charts/blob/master/src/model/plot-list.ts - PlotList is something like "store" for series' data with some helpers like search or minMaxOnRange. To improve perf here we use "smart" cache, which is basically chunk-based cache, where all data is split by 30 items per chunk. Maybe "the issue" is somewhere there. Or, it's possible, a cache-issue somewhere else... I don't think that we need to spend a lot of time to debug it actually, because I'd say we should restrict data to don't have data with the same time.

Related to #528.

@timocov timocov added the working as intended Works as intended. label Jul 29, 2020
@SuperPenguin
Copy link
Contributor Author

Ah okay, I thought it was regression because it works fine in ver 3.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
working as intended Works as intended.
Projects
None yet
Development

No branches or pull requests

2 participants