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);
    
 }
Exemple #2
0
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
}
Exemple #3
0
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);      
 }
Exemple #5
0
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);
}