# Path: css2video/parsers/api.py
# def parse_property(string):
#     '''Parse a CSS property'''
#     return Property.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_rule(string):
#     '''Parse a CSS rule'''
#     return Rule.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_stylesheet(string):
#     '''Parse a stylesheet'''
#     return StyleSheet.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_value(string):
#     '''Parse a value'''
#     return Value.parser().parseString(string)[0]
# 
# Path: tests/utils.py
# def isEqual(value1, value2):
#     '''Compare any two values and returns true if they are equal'''
#     if isinstance(value1, list) and isinstance(value2, list):
#         is_equal = True
#         for v1, v2 in zip(value1, value2):
#             is_equal = is_equal and isEqual(v1, v2)
#             if not is_equal:
#                 break
#         return is_equal
# 
#     if isinstance(value1, dict) and isinstance(value2, dict):
#         is_equal = len(value1.keys()) == len(value2.keys())
#         for key1 in value1:
#             is_equal = is_equal and (key1 in value2)
#             if not is_equal:
#                 break
#             is_equal = is_equal and isEqual(value1[key1], value2[key1])
#             if not is_equal:
#                 break
#         return is_equal
#     return value1 == value2


import unittest
from css2video.parsers import parse_property
from css2video.parsers import parse_rule
from css2video.parsers import parse_stylesheet
from css2video.parsers import parse_value
from .utils import isEqual
                            'keyframe_selector': 0,
                            'properties': [
                                {
                                    'property_name': 'top',
                                    'property_value': {
                                        'type': 'length',
                                        'value': 0,
                                        'unit': 'px'
                                    }
                                }
                            ]
                        },
                        {
                            'keyframe_selector': 100,
                            'properties': [
                                {
                                    'property_name': 'top',
                                    'property_value': {
                                        'type': 'length',
                                        'value': 200,
                                        'unit': 'px'
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
        parsed_stylesheet = parse_stylesheet(stylesheet)

# Path: css2video/parsers/api.py
# def parse_property(string):
#     '''Parse a CSS property'''
#     return Property.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_rule(string):
#     '''Parse a CSS rule'''
#     return Rule.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_stylesheet(string):
#     '''Parse a stylesheet'''
#     return StyleSheet.parser().parseString(string)[0]
# 
# Path: css2video/parsers/api.py
# def parse_value(string):
#     '''Parse a value'''
#     return Value.parser().parseString(string)[0]
# 
# Path: tests/utils.py
# def isEqual(value1, value2):
#     '''Compare any two values and returns true if they are equal'''
#     if isinstance(value1, list) and isinstance(value2, list):
#         is_equal = True
#         for v1, v2 in zip(value1, value2):
#             is_equal = is_equal and isEqual(v1, v2)
#             if not is_equal:
#                 break
#         return is_equal
# 
#     if isinstance(value1, dict) and isinstance(value2, dict):
#         is_equal = len(value1.keys()) == len(value2.keys())
#         for key1 in value1:
#             is_equal = is_equal and (key1 in value2)
#             if not is_equal:
#                 break
#             is_equal = is_equal and isEqual(value1[key1], value2[key1])
#             if not is_equal:
#                 break
#         return is_equal
#     return value1 == value2


# Path: tests/test_parsers.py
import unittest
from css2video.parsers import parse_property
from css2video.parsers import parse_rule
from css2video.parsers import parse_stylesheet
from css2video.parsers import parse_value
from .utils import isEqual

                            'keyframe_selector': 0,
                            'properties': [
                                {
                                    'property_name': 'top',
                                    'property_value': {
                                        'type': 'length',
                                        'value': 0,
                                        'unit': 'px'
                                    }
                                }
                            ]
                        },
                        {
                            'keyframe_selector': 100,
                            'properties': [
                                {
                                    'property_name': 'top',
                                    'property_value': {
                                        'type': 'length',
                                        'value': 200,
                                        'unit': 'px'
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
        parsed_stylesheet = parse_stylesheet(stylesheet)

        self.assertTrue(isEqual(parsed_stylesheet, expected_parsed_stylesheet))