# Path: nptdms/types.py
# def tds_data_type(enum_value, np_type, set_np_type=True):
#     def decorator(cls):
#     def __init__(self):
#     def __eq__(self, other):
#     def __repr__(self):
#     def read(cls, file, endianness="<"):
#     def read_values(cls, file, number_values, endianness="<"):
#     def __init__(self, value):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def from_bytes(cls, byte_array, endianness="<"):
#     def __init__(self, value):
#     def read(file, endianness="<"):
#     def read_values(cls, file, number_values, endianness="<"):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def from_bytes(cls, byte_array, endianness="<"):
# class TdmsType(object):
# class Bytes(TdmsType):
# class StructType(TdmsType):
# class Void(TdmsType):
# class Int8(StructType):
# class Int16(StructType):
# class Int32(StructType):
# class Int64(StructType):
# class Uint8(StructType):
# class Uint16(StructType):
# class Uint32(StructType):
# class Uint64(StructType):
# class SingleFloat(StructType):
# class DoubleFloat(StructType):
# class ExtendedFloat(TdmsType):
# class SingleFloatWithUnit(StructType):
# class DoubleFloatWithUnit(StructType):
# class ExtendedFloatWithUnit(TdmsType):
# class String(TdmsType):
# class Boolean(StructType):
# class TimeStamp(TdmsType):
# class ComplexSingleFloat(TdmsType):
# class ComplexDoubleFloat(TdmsType):
# class DaqMxRawData(TdmsType):


from datetime import date, datetime
from nptdms import types
import io
import numpy as np
import pytest
"""Test type reading and writing"""




@pytest.mark.parametrize(
    "time_string",
    [
        pytest.param('2019-11-08T18:47:00', id="standard timestamp"),
        pytest.param('0000-01-01T05:00:00', id="timestamp before TDMS epoch"),
        pytest.param('2019-11-08T18:47:00.123456', id="timestamp with microseconds"),
        pytest.param('1903-12-31T23:59:59.500', id="timestamp before TDMS epoch with microseconds"),
    ]
)
def test_timestamp_round_trip(time_string):
    expected_datetime = np.datetime64(time_string)


# Path: nptdms/types.py
# def tds_data_type(enum_value, np_type, set_np_type=True):
#     def decorator(cls):
#     def __init__(self):
#     def __eq__(self, other):
#     def __repr__(self):
#     def read(cls, file, endianness="<"):
#     def read_values(cls, file, number_values, endianness="<"):
#     def __init__(self, value):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def from_bytes(cls, byte_array, endianness="<"):
#     def __init__(self, value):
#     def read(file, endianness="<"):
#     def read_values(cls, file, number_values, endianness="<"):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def __init__(self, value):
#     def read(cls, file, endianness="<"):
#     def from_bytes(cls, byte_array, endianness="<"):
# class TdmsType(object):
# class Bytes(TdmsType):
# class StructType(TdmsType):
# class Void(TdmsType):
# class Int8(StructType):
# class Int16(StructType):
# class Int32(StructType):
# class Int64(StructType):
# class Uint8(StructType):
# class Uint16(StructType):
# class Uint32(StructType):
# class Uint64(StructType):
# class SingleFloat(StructType):
# class DoubleFloat(StructType):
# class ExtendedFloat(TdmsType):
# class SingleFloatWithUnit(StructType):
# class DoubleFloatWithUnit(StructType):
# class ExtendedFloatWithUnit(TdmsType):
# class String(TdmsType):
# class Boolean(StructType):
# class TimeStamp(TdmsType):
# class ComplexSingleFloat(TdmsType):
# class ComplexDoubleFloat(TdmsType):
# class DaqMxRawData(TdmsType):


# Path: nptdms/test/test_types.py
from datetime import date, datetime
from nptdms import types
import io
import numpy as np
import pytest

"""Test type reading and writing"""




@pytest.mark.parametrize(
    "time_string",
    [
        pytest.param('2019-11-08T18:47:00', id="standard timestamp"),
        pytest.param('0000-01-01T05:00:00', id="timestamp before TDMS epoch"),
        pytest.param('2019-11-08T18:47:00.123456', id="timestamp with microseconds"),
        pytest.param('1903-12-31T23:59:59.500', id="timestamp before TDMS epoch with microseconds"),
    ]
)
def test_timestamp_round_trip(time_string):
    expected_datetime = np.datetime64(time_string)


    timestamp = types.TimeStamp(expected_datetime)