Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.np.util;
- import static junit.framework.Assert.assertEquals;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- import org.junit.Ignore;
- import org.junit.Test;
- public class DateUtilTest {
- private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- @Ignore
- @Test
- public void testCalculateWeekNumber() {
- Calendar dec282015 = initDate(28, Calendar.DECEMBER, 2015);
- int dec282015WeekNumber = DateUtil.calculateWeekNumber(dec282015);
- // assertEquals(53, dec282015WeekNumber);
- Calendar firstJan2016 = initDate(1, Calendar.JANUARY, 2016);
- int firstJan2016WeekNumber = DateUtil.calculateWeekNumber(firstJan2016);
- assertEquals(53, firstJan2016WeekNumber);
- Date now = new Date();
- int todaysWeekNumber = DateUtil.calculateWeekNumber(now);
- }
- private Calendar initDate(int date, int month, int year) {
- Calendar dec282015 = Calendar.getInstance();
- dec282015.set(Calendar.DATE, date);
- dec282015.set(Calendar.MONTH, month);
- dec282015.set(Calendar.YEAR, year);
- return dec282015;
- }
- @Ignore
- @Test
- public void testCalculateFirstThursdayOfYear() {
- for(int year = 2000; year < 2026; year++) {
- Date firstThursday = DateUtil.calculateFirstThursdayOfYear(year);
- System.out.println(sdf.format(firstThursday));
- }
- }
- @Ignore
- @Test
- public void testFirstDayOfWeek() {
- SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
- for(int year = 2016; year < 2020; year++) {
- for(int i = 0; i < 52; i++) {
- int week = i + 1;
- Date date = DateUtil.calculateFirstDayOfWeek(week, year);
- System.out.println(String.format("%d - %s", week, sdf.format(date)));
- }
- System.out.println("===");
- }
- }
- @Ignore
- @Test
- public void findPerfectNumber() {
- int max = 25000000;
- findPerfectNumbers(max);
- }
- private void findPerfectNumbers(int max) {
- for(int i = 2; i <= max; i++) {
- if(isPerfect(i)) {
- System.out.println(i);
- }
- }
- }
- private boolean isPerfect(int i) {
- List<Integer> dividers = findDividers(i);
- int sumDividers = calculateSum(dividers);
- return sumDividers == i;
- }
- private List<Integer> findDividers(int number) {
- List<Integer> dividers = new ArrayList<Integer>();
- for(int i = 1; i <= number / 2; i++) {
- if(number % i == 0) {
- dividers.add(i);
- }
- }
- return dividers;
- }
- private int calculateSum(List<Integer> dividers) {
- int sum = 0;
- for(int div : dividers) {
- sum += div;
- }
- return sum;
- }
- @Ignore
- @Test
- public void twoToTheEleventh() {
- int[] numbers = { 4, 8, 32, 128, 2048, 8192 };
- for(int number : numbers) {
- int product = (number / 2) * (number - 1);
- System.out.println(product);
- System.out.println("Perfect? " + isPerfect(product));
- }
- }
- @Test
- public void highestComposite() {
- int oldFactorsLength = 0;
- for(int number = 1; number <= 32768; number++) {
- // int number = 5040;
- List<Integer> factors = findFactors(number);
- if(factors.size() > oldFactorsLength) {
- logFactors(number, factors);
- oldFactorsLength = factors.size();
- }
- }
- }
- private List<Integer> findFactors(int number) {
- List<Integer> factors = new ArrayList<Integer>();
- for(int i = 1; i <= number / 2; i++) {
- if(number % i == 0) {
- factors.add(i);
- }
- }
- return factors;
- }
- private void logFactors(int number, List<Integer> factors) {
- StringBuilder sb = new StringBuilder();
- sb.append("Factors (").append(number).append(") [").append(factors.size()).append("] =");
- for(int factor : factors) {
- sb.append(" ").append(factor);
- }
- System.out.println(sb.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement