TST15519 Moving Unit tests to appropriate file · mattip/pandas@3eb63c5 (original) (raw)

`@@ -24,6 +24,8 @@

`

24

24

`from pandas.compat import parse_date, StringIO, lrange

`

25

25

`from pandas.tseries.index import date_range

`

26

26

``

``

27

`+

from pandas.io.parsers import read_table

`

``

28

`+

from pandas.compat.numpy import np_array_datetime64_compat

`

27

29

``

28

30

`class ParseDatesTests(object):

`

29

31

``

`@@ -510,3 +512,147 @@ def test_parse_date_time_multi_level_column_name(self):

`

510

512

`expected = DataFrame(expected_data,

`

511

513

`columns=['date_time', ('A', 'a'), ('B', 'b')])

`

512

514

`tm.assert_frame_equal(result, expected)

`

``

515

+

``

516

`+

def test_parse_date_time(self):

`

``

517

`+

From test_date_coverter

`

``

518

`+

dates = np.array(['2007/1/3', '2008/2/4'], dtype=object)

`

``

519

`+

times = np.array(['05:07:09', '06:08:00'], dtype=object)

`

``

520

`+

expected = np.array([datetime(2007, 1, 3, 5, 7, 9),

`

``

521

`+

datetime(2008, 2, 4, 6, 8, 0)])

`

``

522

+

``

523

`+

result = conv.parse_date_time(dates, times)

`

``

524

`+

self.assertTrue((result == expected).all())

`

``

525

+

``

526

`+

data = """\

`

``

527

`+

date, time, a, b

`

``

528

`+

2001-01-05, 10:00:00, 0.0, 10.

`

``

529

`+

2001-01-05, 00:00:00, 1., 11.

`

``

530

`+

"""

`

``

531

`+

datecols = {'date_time': [0, 1]}

`

``

532

`+

df = read_table(StringIO(data), sep=',', header=0,

`

``

533

`+

parse_dates=datecols, date_parser=conv.parse_date_time)

`

``

534

`+

self.assertIn('date_time', df)

`

``

535

`+

self.assertEqual(df.date_time.loc[0], datetime(2001, 1, 5, 10, 0, 0))

`

``

536

+

``

537

`+

data = ("KORD,19990127, 19:00:00, 18:56:00, 0.8100\n"

`

``

538

`+

"KORD,19990127, 20:00:00, 19:56:00, 0.0100\n"

`

``

539

`+

"KORD,19990127, 21:00:00, 20:56:00, -0.5900\n"

`

``

540

`+

"KORD,19990127, 21:00:00, 21🔞00, -0.9900\n"

`

``

541

`+

"KORD,19990127, 22:00:00, 21:56:00, -0.5900\n"

`

``

542

`+

"KORD,19990127, 23:00:00, 22:56:00, -0.5900")

`

``

543

+

``

544

`+

date_spec = {'nominal': [1, 2], 'actual': [1, 3]}

`

``

545

`+

df = read_csv(StringIO(data), header=None, parse_dates=date_spec,

`

``

546

`+

date_parser=conv.parse_date_time)

`

``

547

+

``

548

`+

def test_parse_date_fields(self):

`

``

549

`+

years = np.array([2007, 2008])

`

``

550

`+

months = np.array([1, 2])

`

``

551

`+

days = np.array([3, 4])

`

``

552

`+

result = conv.parse_date_fields(years, months, days)

`

``

553

`+

expected = np.array([datetime(2007, 1, 3), datetime(2008, 2, 4)])

`

``

554

`+

self.assertTrue((result == expected).all())

`

``

555

+

``

556

`+

data = ("year, month, day, a\n 2001 , 01 , 10 , 10.\n"

`

``

557

`+

"2001 , 02 , 1 , 11.")

`

``

558

`+

datecols = {'ymd': [0, 1, 2]}

`

``

559

`+

df = read_table(StringIO(data), sep=',', header=0,

`

``

560

`+

parse_dates=datecols,

`

``

561

`+

date_parser=conv.parse_date_fields)

`

``

562

`+

self.assertIn('ymd', df)

`

``

563

`+

self.assertEqual(df.ymd.loc[0], datetime(2001, 1, 10))

`

``

564

+

``

565

`+

def test_datetime_six_col(self):

`

``

566

`+

years = np.array([2007, 2008])

`

``

567

`+

months = np.array([1, 2])

`

``

568

`+

days = np.array([3, 4])

`

``

569

`+

hours = np.array([5, 6])

`

``

570

`+

minutes = np.array([7, 8])

`

``

571

`+

seconds = np.array([9, 0])

`

``

572

`+

expected = np.array([datetime(2007, 1, 3, 5, 7, 9),

`

``

573

`+

datetime(2008, 2, 4, 6, 8, 0)])

`

``

574

+

``

575

`+

result = conv.parse_all_fields(years, months, days,

`

``

576

`+

hours, minutes, seconds)

`

``

577

+

``

578

+

``

579

`+

self.assertTrue((result == expected).all())

`

``

580

+

``

581

`+

data = """\

`

``

582

`+

year, month, day, hour, minute, second, a, b

`

``

583

`+

2001, 01, 05, 10, 00, 0, 0.0, 10.

`

``

584

`+

2001, 01, 5, 10, 0, 00, 1., 11.

`

``

585

`+

"""

`

``

586

`+

datecols = {'ymdHMS': [0, 1, 2, 3, 4, 5]}

`

``

587

`+

df = read_table(StringIO(data), sep=',', header=0,

`

``

588

`+

parse_dates=datecols,

`

``

589

`+

date_parser=conv.parse_all_fields)

`

``

590

`+

self.assertIn('ymdHMS', df)

`

``

591

`+

self.assertEqual(df.ymdHMS.loc[0], datetime(2001, 1, 5, 10, 0, 0))

`

``

592

+

``

593

`+

def test_datetime_fractional_seconds(self):

`

``

594

`+

data = """\

`

``

595

`+

year, month, day, hour, minute, second, a, b

`

``

596

`+

2001, 01, 05, 10, 00, 0.123456, 0.0, 10.

`

``

597

`+

2001, 01, 5, 10, 0, 0.500000, 1., 11.

`

``

598

`+

"""

`

``

599

`+

datecols = {'ymdHMS': [0, 1, 2, 3, 4, 5]}

`

``

600

`+

df = read_table(StringIO(data), sep=',', header=0,

`

``

601

`+

parse_dates=datecols,

`

``

602

`+

date_parser=conv.parse_all_fields)

`

``

603

`+

self.assertIn('ymdHMS', df)

`

``

604

`+

self.assertEqual(df.ymdHMS.loc[0], datetime(2001, 1, 5, 10, 0, 0,

`

``

605

`+

microsecond=123456))

`

``

606

`+

self.assertEqual(df.ymdHMS.loc[1], datetime(2001, 1, 5, 10, 0, 0,

`

``

607

`+

microsecond=500000))

`

``

608

+

``

609

`+

def test_generic(self):

`

``

610

`+

data = "year, month, day, a\n 2001, 01, 10, 10.\n 2001, 02, 1, 11."

`

``

611

`+

datecols = {'ym': [0, 1]}

`

``

612

`+

dateconverter = lambda y, m: date(year=int(y), month=int(m), day=1)

`

``

613

`+

df = read_table(StringIO(data), sep=',', header=0,

`

``

614

`+

parse_dates=datecols,

`

``

615

`+

date_parser=dateconverter)

`

``

616

`+

self.assertIn('ym', df)

`

``

617

`+

self.assertEqual(df.ym.loc[0], date(2001, 1, 1))

`

``

618

+

``

619

`+

def test_dateparser_resolution_if_not_ns(self):

`

``

620

`+

issue 10245

`

``

621

`+

data = """\

`

``

622

`+

date,time,prn,rxstatus

`

``

623

`+

2013-11-03,19:00:00,126,00E80000

`

``

624

`+

2013-11-03,19:00:00,23,00E80000

`

``

625

`+

2013-11-03,19:00:00,13,00E80000

`

``

626

`+

"""

`

``

627

+

``

628

`+

def date_parser(date, time):

`

``

629

`+

datetime = np_array_datetime64_compat(

`

``

630

`+

date + 'T' + time + 'Z', dtype='datetime64[s]')

`

``

631

`+

return datetime

`

``

632

+

``

633

`+

df = read_csv(StringIO(data), date_parser=date_parser,

`

``

634

`+

parse_dates={'datetime': ['date', 'time']},

`

``

635

`+

index_col=['datetime', 'prn'])

`

``

636

+

``

637

`+

datetimes = np_array_datetime64_compat(['2013-11-03T19:00:00Z'] * 3,

`

``

638

`+

dtype='datetime64[s]')

`

``

639

`+

df_correct = DataFrame(data={'rxstatus': ['00E80000'] * 3},

`

``

640

`+

index=MultiIndex.from_tuples(

`

``

641

`+

[(datetimes[0], 126),

`

``

642

`+

(datetimes[1], 23),

`

``

643

`+

(datetimes[2], 13)],

`

``

644

`+

names=['datetime', 'prn']))

`

``

645

`+

assert_frame_equal(df, df_correct)

`

``

646

+

``

647

`+

def test_parse_date_column_with_empty_string(self):

`

``

648

`+

GH 6428

`

``

649

`+

data = """case,opdate

`

``

650

`+

7,10/18/2006

`

``

651

`+

7,10/18/2008

`

``

652

`+

621, """

`

``

653

`+

result = read_csv(StringIO(data), parse_dates=['opdate'])

`

``

654

`+

expected_data = [[7, '10/18/2006'],

`

``

655

`+

[7, '10/18/2008'],

`

``

656

`+

[621, ' ']]

`

``

657

`+

expected = DataFrame(expected_data, columns=['case', 'opdate'])

`

``

658

`+

assert_frame_equal(result, expected)

`