package com.github.lwhite1.tablesaw.columns;
import com.github.lwhite1.tablesaw.columns.packeddata.PackedLocalDate;
import com.github.lwhite1.tablesaw.columns.packeddata.PackedLocalTime;
import org.junit.Test;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.ChronoField;
import static com.github.lwhite1.tablesaw.columns.packeddata.PackedLocalDateTime.*;
import static org.junit.Assert.*;
/**
*
*/
public class PackedLocalDateTimeTest {
@Test
public void testGetDayOfMonth() {
LocalDateTime today = LocalDateTime.now();
assertEquals(today.getDayOfMonth(),
getDayOfMonth(pack(today)));
}
@Test
public void testGetYear() {
LocalDateTime today = LocalDateTime.now();
assertEquals(today.getYear(), getYear(pack(today)));
}
@Test
public void testAsLocalDateTime() {
LocalDateTime dateTime = LocalDateTime.now();
long packed = pack(dateTime.toLocalDate(), dateTime.toLocalTime());
LocalDateTime upacked = asLocalDateTime(packed);
assertEquals(dateTime.getDayOfYear(), upacked.getDayOfYear());
assertEquals(dateTime.getHour(), upacked.getHour());
assertEquals(dateTime.getMinute(), upacked.getMinute());
assertEquals(dateTime.getSecond(), upacked.getSecond());
}
@Test
public void testGetMonthValue() {
long dateTime = pack(LocalDate.of(2015, 12, 25), LocalTime.now());
assertEquals(12, getMonthValue(dateTime));
}
@Test
public void testPack() {
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
long packed = pack(date, time);
LocalDate d1 = PackedLocalDate.asLocalDate(date(packed));
LocalTime t1 = PackedLocalTime.asLocalTime(time(packed));
assertNotNull(d1);
assertNotNull(t1);
assertEquals(date.toString(), d1.toString());
}
@Test
public void testGetHour() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.getHour(), getHour(pack(now)));
}
@Test
public void testGetMinute() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.getMinute(), getMinute(pack(now)));
}
@Test
public void testGetSecond() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.getSecond(), getSecond(pack(now)));
}
@Test
public void testGetSecondOfDay() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.get(ChronoField.SECOND_OF_DAY), getSecondOfDay(pack(now)));
}
@Test
public void testGetMinuteOfDay() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.get(ChronoField.MINUTE_OF_DAY), getMinuteOfDay(pack(now)));
}
@Test
public void testGetMillisecondOfDay() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.get(ChronoField.MILLI_OF_DAY), getMillisecondOfDay(pack(now)));
}
@Test
public void testGetDayOfWeek() {
LocalDateTime now = LocalDateTime.now();
assertEquals(now.get(ChronoField.DAY_OF_WEEK), getDayOfWeek(pack(now)).getValue());
}
}