from __future__ import annotations

from unittest import TestCase

from nbformat.v2.nbjson import reads, writes

from .nbexamples import nb0


class TestJSON(TestCase):
    def test_roundtrip(self):
        s = writes(nb0)
        #        print
        #        print pprint.pformat(nb0,indent=2)
        #        print
        #        print pprint.pformat(reads(s),indent=2)
        #        print
        #        print s
        self.assertEqual(reads(s), nb0)

    def test_roundtrip_nosplit(self):
        """Ensure that multiline blobs are still readable"""
        # ensures that notebooks written prior to splitlines change
        # are still readable.
        s = writes(nb0, split_lines=False)
        self.assertEqual(reads(s), nb0)

    def test_roundtrip_split(self):
        """Ensure that splitting multiline blocks is safe"""
        # This won't differ from test_roundtrip unless the default changes
        s = writes(nb0, split_lines=True)
        self.assertEqual(reads(s), nb0)
