<s> from __future__ import absolute_import <EOL> import json <EOL> from unittest import TestCase <EOL> from plotly . utils import PlotlyJSONEncoder , get_by_path , node_generator <EOL> class TestJSONEncoder ( TestCase ) : <EOL> def test_nan_to_null ( self ) : <EOL> array = [ <NUM_LIT:1> , float ( '<STR_LIT>' ) , float ( '<STR_LIT>' ) , float ( '<STR_LIT>' ) , '<STR_LIT>' ] <EOL> result = json . dumps ( array , cls = PlotlyJSONEncoder ) <EOL> expected_result = '<STR_LIT>' <EOL> self . assertEqual ( result , expected_result ) <EOL> class TestGetByPath ( TestCase ) : <EOL> def test_get_by_path ( self ) : <EOL> figure = { '<STR_LIT:data>' : [ { } , { '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] } } ] } <EOL> path = ( '<STR_LIT:data>' , <NUM_LIT:1> , '<STR_LIT>' , '<STR_LIT>' ) <EOL> value = get_by_path ( figure , path ) <EOL> expected_value = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> self . assertEqual ( value , expected_value ) <EOL> class TestNodeGenerator ( TestCase ) : <EOL> def test_node_generator ( self ) : <EOL> node4 = { '<STR_LIT:h>' : <NUM_LIT:5> } <EOL> node3 = { '<STR_LIT:g>' : <NUM_LIT:7> } <EOL> node2 = { '<STR_LIT:e>' : node3 } <EOL> node1 = { '<STR_LIT:c>' : node2 , '<STR_LIT:d>' : [ '<STR_LIT>' ] } <EOL> node0 = { '<STR_LIT:a>' : node1 , '<STR_LIT:b>' : <NUM_LIT:8> } <EOL> expected_node_path_tuples = [ <EOL> ( node0 , ( ) ) , <EOL> ( node1 , ( '<STR_LIT:a>' , ) ) , <EOL> ( node2 , ( '<STR_LIT:a>' , '<STR_LIT:c>' ) ) , <EOL> ( node3 , ( '<STR_LIT:a>' , '<STR_LIT:c>' , '<STR_LIT:e>' ) ) , <EOL> ( node4 , ( '<STR_LIT:a>' , '<STR_LIT:c>' , '<STR_LIT:f>' ) ) <EOL> ] <EOL> for i , item in enumerate ( node_generator ( node0 ) ) : <EOL> self . assertEqual ( item , expected_node_path_tuples [ i ] ) </s>
