static date_type local_dst_start_day(year_type year) { if (year < 2007) { start_rule_functor_pre2007 start1(start_day(year), start_month(year)); return start1.get_date(year); } start_rule_functor start(start_rule_functor::second, start_day(year), start_month(year)); return start.get_date(year); }
int main(void) { char *exname; int exnb = 0; t_list *link; t_list *base; (void)link; base = ft_create_elem("ABC"); base->next = ft_create_elem("012"); base->next->next = ft_create_elem("xyz"); start_day(11); #ifdef ex00 exname = "ft_create_elem"; start_exo(exnb); link = ft_create_elem("A"); link->next = ft_create_elem("B"); ft_print_list(link); printf("expected:\n"); printf("[ A ] -> [ B ] -> NULL\n"); #endif exnb++; #ifdef ex01 exname = "ft_list_push_back"; start_exo(exnb); ft_warning1(); link = NULL; ft_list_push_back(&link, "A"); ft_list_push_back(&link, "B"); ft_list_push_back(&link, "C"); ft_print_list(link); printf("expected:\n"); printf("[ A ] -> [ B ] -> [ C ] -> NULL\n"); #endif exnb++; #ifdef ex02 exname = "ft_list_push_front"; start_exo(exnb); ft_warning1(); link = NULL; ft_list_push_front(&link, "C"); ft_list_push_front(&link, "B"); ft_list_push_front(&link, "A"); ft_print_list(link); printf("expected:\n"); printf("[ A ] -> [ B ] -> [ C ] -> NULL\n"); #endif exnb++; #ifdef ex03 start_exo(exnb); exname = "ft_list_size"; ft_warning1(); printf("list : "); ft_print_list(base); printf("%s = %i\n", exname, ft_list_size(base)); printf("\nlist : "); ft_print_list(NULL); printf("%s = %i\n", exname, ft_list_size(NULL)); #endif exnb++; #ifdef ex04 start_exo(exnb); exname = "ft_list_last"; ft_warning1(); printf("list : "); ft_print_list(base); printf("%s = ", exname); ft_print_list(ft_list_last(base)); printf("\nlist : "); ft_print_list(NULL); printf("%s = ", exname); ft_print_list(ft_list_last(NULL)); #endif exnb++; #ifdef ex05 start_exo(exnb); exname = "ft_list_push_params"; printf("pas encore de suite de tests pour cet exercice :(\n"); #endif exnb++; #ifdef ex06 start_exo(exnb); exname = "ft_list_clear"; printf("%s\n", exname); printf("avant : "); ft_print_list(base); ft_list_clear(&base); printf("apres : "); ft_print_list(base); base = ft_create_elem("ABC"); base->next = ft_create_elem("012"); base->next->next = ft_create_elem("xyz"); #endif exnb++; #ifdef ex07 start_exo(exnb); exname = "ft_list_at"; ft_warning1(); printf("list : "); ft_print_list(base); printf("%s(list, 0) = ", exname); ft_print_list(ft_list_at(base, 0)); printf("\nlist : "); ft_print_list(base); printf("%s(list, 1) = ", exname); ft_print_list(ft_list_at(base, 1)); printf("\n%s(NULL, 0) = ", exname); ft_print_list(ft_list_at(NULL, 0)); printf("\n%s(NULL, 1) = ", exname); ft_print_list(ft_list_at(NULL, 1)); #endif exnb++; #ifdef ex08 start_exo(exnb); exname = "ft_list_reverse"; printf("%s\n", exname); printf("avant : "); ft_print_list(base); ft_list_reverse(&base); printf("apres : "); ft_print_list(base); #endif exnb++; #ifdef ex09 start_exo(exnb); exname = "ft_list_foreach"; base = ft_create_elem("012"); base->next = ft_create_elem("ABC"); base->next->next = ft_create_elem("xyz"); printf("%s, avec la fonction ft_putstr()\n", exname); printf("list : "); ft_print_list(base); printf("%s : ", exname); fflush(stdout); ft_list_foreach(base, &corr_ft_putstr); #endif exnb++; #ifdef ex10 start_exo(exnb); exname = "ft_list_foreach_if"; printf("list : "); ft_print_list(base); printf("%s(list, &ft_putstr, '012', &strcmp) = ", exname); fflush(stdout); ft_list_foreach_if(base, &corr_ft_putstr, "012", &strcmp); printf(" (012 attendu)"); #endif exnb++; #ifdef ex11 start_exo(exnb); exname = "ft_list_find"; base = ft_create_elem("012"); base->next = ft_create_elem("ABC"); base->next->next = ft_create_elem("xyz"); printf("list : "); ft_print_list(base); printf("%s(list, 'ABC', &strcmp) = ", exname); fflush(stdout); ft_print_list(ft_list_find(base, "ABC", &strcmp)); #endif exnb++; #ifdef ex12 start_exo(exnb); exname = "ft_list_remove_if"; base = ft_create_elem("012"); base->next = ft_create_elem("ABC"); base->next->next = ft_create_elem("xyz"); printf("list : "); ft_print_list(base); printf("%s(list, 'ABC', &strcmp) = ", exname); fflush(stdout); ft_list_remove_if(&base, "ABC", &strcmp); ft_print_list(base); #endif t_list *list1; t_list *list2; (void)list1; (void)list2; exnb++; #ifdef ex13 start_exo(exnb); exname = "ft_list_merge"; ft_warning1(); list1 = NULL; list2 = NULL; printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_list_merge(&list1, list2); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = NULL; list2 = ft_create_elem("012"); printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_list_merge(&list1, list2); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = ft_create_elem("012"); list2 = NULL; printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_list_merge(&list1, list2); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = ft_create_elem("012"); list1->next = ft_create_elem("345"); list2 = ft_create_elem("abc"); list2->next = ft_create_elem("def"); printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_list_merge(&list1, list2); printf("merge : "); fflush(stdout); ft_print_list(list1); #endif exnb++; #ifdef ex14 start_exo(exnb); exname = "ft_list_sort"; printf("%s\n", exname); ft_warning1(); base = NULL; printf("avant : "); fflush(stdout); ft_print_list(base); ft_list_sort(&base, &strcmp); printf("apres : "); fflush(stdout); ft_print_list(base); printf("\n"); base = ft_create_elem("3"); base->next = ft_create_elem("1"); base->next->next = ft_create_elem("2"); printf("avant : "); fflush(stdout); ft_print_list(base); ft_list_sort(&base, &strcmp); printf("apres : "); fflush(stdout); ft_print_list(base); #endif exnb++; #ifdef ex15 start_exo(exnb); exname = "ft_list_reverse_fun"; base = NULL; printf("%s\n", exname); printf("avant : "); ft_print_list(base); ft_list_reverse_fun(base); printf("apres : "); ft_print_list(base); printf("\n"); base = ft_create_elem("1"); base->next = ft_create_elem("2"); base->next->next = ft_create_elem("3"); printf("avant : "); ft_print_list(base); ft_list_reverse_fun(base); printf("apres : "); ft_print_list(base); printf("\n"); base = ft_create_elem("1"); base->next = ft_create_elem("2"); base->next->next = ft_create_elem("3"); base->next->next->next = ft_create_elem("4"); printf("avant : "); ft_print_list(base); ft_list_reverse_fun(base); printf("apres : "); ft_print_list(base); #endif exnb++; #ifdef ex16 start_exo(exnb); exname = "ft_sorted_list_insert"; printf("%s\n", exname); ft_warning1(); base = ft_create_elem("2"); base->next = ft_create_elem("3"); base->next->next = ft_create_elem("5"); printf("avant : "); fflush(stdout); ft_print_list(base); ft_sorted_list_insert(&base, "7", &strcmp); printf("apres : "); fflush(stdout); ft_print_list(base); base = NULL; printf("\navant : "); fflush(stdout); ft_print_list(base); ft_sorted_list_insert(&base, "0", &strcmp); printf("apres : "); fflush(stdout); ft_print_list(base); #endif exnb++; #ifdef ex17 start_exo(exnb); exname = "ft_sorted_list_merge"; printf("%s\n", exname); ft_warning1(); list1 = NULL; list2 = NULL; printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_sorted_list_merge(&list1, list2, &strcmp); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = NULL; list2 = ft_create_elem("0"); printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_sorted_list_merge(&list1, list2, &strcmp); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = ft_create_elem("0"); list2 = NULL; printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_sorted_list_merge(&list1, list2, &strcmp); printf("merge : "); fflush(stdout); ft_print_list(list1); printf("\n"); list1 = ft_create_elem("0"); list1->next = ft_create_elem("2"); list2 = ft_create_elem("1"); list2->next = ft_create_elem("3"); printf("list1 : "); fflush(stdout); ft_print_list(list1); printf("list2 : "); fflush(stdout); ft_print_list(list2); ft_sorted_list_merge(&list1, list2, &strcmp); printf("merge : "); fflush(stdout); ft_print_list(list1); #endif }
int main() { start_day(2); #ifdef ex00 start_exo(0); printf("ft_print_alphabet(): "); fflush(stdout); ft_print_alphabet(); #endif #ifdef ex01 start_exo(1); printf("ft_print_reverse_alphabet(): "); fflush(stdout); ft_print_reverse_alphabet(); #endif #ifdef ex02 start_exo(2); printf("ft_print_numbers(): "); fflush(stdout); ft_print_numbers(); #endif #ifdef ex03 start_exo(3); printf("ft_is_negative(-10) = '"); fflush(stdout); ft_is_negative(-10); printf("' (correct is N)\n"); printf("ft_is_negative(0) = '"); fflush(stdout); ft_is_negative(0); printf("' (correct is P)\n"); printf("ft_is_negative(+10) = '"); fflush(stdout); ft_is_negative(10); printf("' (correct is P)\n"); #endif #ifdef ex04 start_exo(4); ft_print_comb(); fflush(stdout); #endif #ifdef ex05 start_exo(5); ft_print_comb2(); fflush(stdout); #endif #ifdef ex06 start_exo(6); printf("ft_putnbr(-10) = "); fflush(stdout); ft_putnbr(-10); printf("\n"); printf("ft_putnbr(0) = "); fflush(stdout); ft_putnbr(0); printf("\n"); printf("ft_putnbr(10) = "); fflush(stdout); ft_putnbr(10); printf("\n"); printf("ft_putnbr(-2147483647) = "); fflush(stdout); ft_putnbr(-2147483647); printf("\n"); printf("ft_putnbr(-2147483648) = "); fflush(stdout); ft_putnbr(-2147483648); printf("\n"); printf("ft_putnbr(2147483647) = "); fflush(stdout); ft_putnbr(2147483647); printf("\n"); #endif #ifdef ex07 start_exo(7); printf("ft_print_combn(0) = '"); fflush(stdout); ft_print_combn(0); printf("'\n"); printf("ft_print_combn(1) = '"); fflush(stdout); ft_print_combn(1); printf("'\n"); printf("ft_print_combn(2) = '"); fflush(stdout); ft_print_combn(2); printf("'\n"); printf("ft_print_combn(9) = '"); fflush(stdout); ft_print_combn(9); printf("'\n"); #endif return 0; }
static date_type local_dst_start_day(year_type year) { start_rule_functor start(start_day(year), start_month(year)); return start.get_date(year); }
int main(int argc, char **argv) { unsigned int num_customers; unsigned int num_selfserve = 0, num_barista = 0, num_cashier = 0; int opt, ret = -1, profit; long avg_simple, avg_complex; if(argc < 2) { print_usage(argv[0]); goto out; } num_customers = atoi(argv[1]); check_pr(!num_customers, "Need at least one customer", out); while((opt = getopt(argc, argv, "s:b:c:q")) != -1) { switch(opt) { case 's': num_selfserve = atoi(optarg); break; case 'b': num_barista = atoi(optarg); break; case 'c': num_cashier = atoi(optarg); break; case 'q': quiet = 1; break; default: print_usage(argv[0]); goto out; } } if(quiet) { check(!num_barista, out); } else { check_pr(!num_barista, "Need at least one barista", out); } if(num_selfserve) { if(quiet) { check(!num_cashier, out); } else { check_pr(!num_cashier, "Need at least one cashier", out); } } if(!quiet) printf( "Customers :\t%d\n" "Self Services :\t%d\n" "Baristas :\t%d\n" "Cashiers :\t%d\n", num_customers, num_selfserve, num_barista, num_cashier); /* Allocate room for our list of times */ simple_times = malloc(sizeof(long) * num_customers); check(!simple_times, free_times); complex_times = malloc(sizeof(long) * num_customers); check(!complex_times, free_times); profit = start_day(num_customers, num_selfserve, num_barista, num_cashier); check_pr(profit < 0, "Simulation Aborted (Out of resources).", out); print_profit(profit); /* Compute the average turnaround time for each customer type */ if(simple_count.val > 0) avg_simple = average_list(simple_times, simple_count.val); else avg_simple = 0l; if(complex_count.val > 0) avg_complex = average_list(complex_times, complex_count.val); else avg_complex = 0l; printf("Avg Simple :\t"); print_time(avg_simple); printf("Avg Complex:\t"); print_time(avg_complex); ret = 0; free_times: if(complex_times) free(complex_times); if(simple_times) free(simple_times); out: pthread_exit(&ret); }