File Coverage

src/dt_valid.c
Criterion Covered Total %
statement 8 11 72.7
branch 12 36 33.3
condition n/a
subroutine n/a
pod n/a
total 20 47 42.5


line stmt bran cond sub pod time code
1             /*
2             * Copyright (c) 2012-2014 Christian Hansen
3             *
4             * All rights reserved.
5             *
6             * Redistribution and use in source and binary forms, with or without
7             * modification, are permitted provided that the following conditions are met:
8             *
9             * 1. Redistributions of source code must retain the above copyright notice, this
10             * list of conditions and the following disclaimer.
11             * 2. Redistributions in binary form must reproduce the above copyright notice,
12             * this list of conditions and the following disclaimer in the documentation
13             * and/or other materials provided with the distribution.
14             *
15             * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16             * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17             * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18             * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19             * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20             * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21             * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22             * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23             * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24             * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25             */
26             #include "dt_core.h"
27             #include "dt_util.h"
28              
29             bool
30 9           dt_valid_yd(int y, int d) {
31 9 50         return (d >= 1 && (d <= 365 || d == dt_days_in_year(y)));
    50          
    0          
32             }
33              
34             bool
35 248           dt_valid_ymd(int y, int m, int d) {
36 496 50         return ((m >= 1 && m <= 12) &&
    50          
    50          
37 248 100         (d >= 1 && (d <= 28 || d <= dt_days_in_month(y, m))));
    50          
38             }
39              
40             bool
41 0           dt_valid_yqd(int y, int q, int d) {
42 0 0         return ((q >= 1 && q <= 4) &&
    0          
    0          
43 0 0         (d >= 1 && (d <= 90 || d <= dt_days_in_quarter(y, q))));
    0          
44             }
45              
46             bool
47 9           dt_valid_ywd(int y, int w, int d) {
48 18 50         return ((d >= 1 && d <= 7) &&
    50          
    50          
49 9 50         (w >= 1 && (w <= 52 || w == dt_weeks_in_year(y))));
    0          
50             }
51