cuelang.org/go@v0.10.1/cue/testdata/builtins/intdiv.txtar (about)

     1  -- in.cue --
     2  quo1: quo(5, 2)   // 2
     3  quo2: quo(5, -2)  // -2
     4  quo3: quo(-5, 2)  // -2
     5  quo4: quo(-5, -2) // 2
     6  
     7  quoDivByZero: quo(2, 0)
     8  
     9  quoTypeError1: quo(2.0, 1)
    10  quoTypeError2: quo(2, 1.0)
    11  
    12  rem1: rem(5, 2)   // 1
    13  rem2: rem(5, -2)  // 1
    14  rem3: rem(-5, 2)  // -1
    15  rem4: rem(-5, -2) // -1
    16  
    17  remDivByZero: rem(2, 0)
    18  
    19  remTypeError1: rem(2.0, 1)
    20  remTypeError2: rem(2, 1.0)
    21  
    22  div1: div(5, 2)   // 2
    23  div2: div(5, -2)  // -2
    24  div3: div(-5, 2)  // -3
    25  div4: div(-5, -2) // 3
    26  
    27  divDivByZero: div(2, 0)
    28  
    29  divTypeError1: div(2.0, 1)
    30  divTypeError2: div(2, 1.0)
    31  
    32  mod1: mod(5, 2)   // 1
    33  mod2: mod(5, -2)  // 1
    34  mod3: mod(-5, 2)  // 1
    35  mod4: mod(-5, -2) // 1
    36  
    37  modDivByZero: mod(2, 0)
    38  
    39  modTypeError1: mod(2.0, 1)
    40  modTypeError2: mod(2, 1.0)
    41  -- out/eval/stats --
    42  Leaks:  0
    43  Freed:  29
    44  Reused: 27
    45  Allocs: 2
    46  Retain: 0
    47  
    48  Unifications: 29
    49  Conjuncts:    29
    50  Disjuncts:    29
    51  -- out/eval --
    52  Errors:
    53  quoDivByZero: division by zero:
    54      ./in.cue:6:15
    55  quoTypeError1: cannot use 2.0 (type float) as int in argument 1 to quo:
    56      ./in.cue:8:20
    57  quoTypeError2: cannot use 1.0 (type float) as int in argument 2 to quo:
    58      ./in.cue:9:23
    59  remDivByZero: division by zero:
    60      ./in.cue:16:15
    61  remTypeError1: cannot use 2.0 (type float) as int in argument 1 to rem:
    62      ./in.cue:18:20
    63  remTypeError2: cannot use 1.0 (type float) as int in argument 2 to rem:
    64      ./in.cue:19:23
    65  divDivByZero: division by zero:
    66      ./in.cue:26:15
    67  divTypeError1: cannot use 2.0 (type float) as int in argument 1 to div:
    68      ./in.cue:28:20
    69  divTypeError2: cannot use 1.0 (type float) as int in argument 2 to div:
    70      ./in.cue:29:23
    71  modDivByZero: division by zero:
    72      ./in.cue:36:15
    73  modTypeError1: cannot use 2.0 (type float) as int in argument 1 to mod:
    74      ./in.cue:38:20
    75  modTypeError2: cannot use 1.0 (type float) as int in argument 2 to mod:
    76      ./in.cue:39:23
    77  
    78  Result:
    79  (_|_){
    80    // [eval]
    81    quo1: (int){ 2 }
    82    quo2: (int){ -2 }
    83    quo3: (int){ -2 }
    84    quo4: (int){ 2 }
    85    quoDivByZero: (_|_){
    86      // [eval] quoDivByZero: division by zero:
    87      //     ./in.cue:6:15
    88    }
    89    quoTypeError1: (_|_){
    90      // [eval] quoTypeError1: cannot use 2.0 (type float) as int in argument 1 to quo:
    91      //     ./in.cue:8:20
    92    }
    93    quoTypeError2: (_|_){
    94      // [eval] quoTypeError2: cannot use 1.0 (type float) as int in argument 2 to quo:
    95      //     ./in.cue:9:23
    96    }
    97    rem1: (int){ 1 }
    98    rem2: (int){ 1 }
    99    rem3: (int){ -1 }
   100    rem4: (int){ -1 }
   101    remDivByZero: (_|_){
   102      // [eval] remDivByZero: division by zero:
   103      //     ./in.cue:16:15
   104    }
   105    remTypeError1: (_|_){
   106      // [eval] remTypeError1: cannot use 2.0 (type float) as int in argument 1 to rem:
   107      //     ./in.cue:18:20
   108    }
   109    remTypeError2: (_|_){
   110      // [eval] remTypeError2: cannot use 1.0 (type float) as int in argument 2 to rem:
   111      //     ./in.cue:19:23
   112    }
   113    div1: (int){ 2 }
   114    div2: (int){ -2 }
   115    div3: (int){ -3 }
   116    div4: (int){ 3 }
   117    divDivByZero: (_|_){
   118      // [eval] divDivByZero: division by zero:
   119      //     ./in.cue:26:15
   120    }
   121    divTypeError1: (_|_){
   122      // [eval] divTypeError1: cannot use 2.0 (type float) as int in argument 1 to div:
   123      //     ./in.cue:28:20
   124    }
   125    divTypeError2: (_|_){
   126      // [eval] divTypeError2: cannot use 1.0 (type float) as int in argument 2 to div:
   127      //     ./in.cue:29:23
   128    }
   129    mod1: (int){ 1 }
   130    mod2: (int){ 1 }
   131    mod3: (int){ 1 }
   132    mod4: (int){ 1 }
   133    modDivByZero: (_|_){
   134      // [eval] modDivByZero: division by zero:
   135      //     ./in.cue:36:15
   136    }
   137    modTypeError1: (_|_){
   138      // [eval] modTypeError1: cannot use 2.0 (type float) as int in argument 1 to mod:
   139      //     ./in.cue:38:20
   140    }
   141    modTypeError2: (_|_){
   142      // [eval] modTypeError2: cannot use 1.0 (type float) as int in argument 2 to mod:
   143      //     ./in.cue:39:23
   144    }
   145  }
   146  -- out/compile --
   147  --- in.cue
   148  {
   149    quo1: quo(5, 2)
   150    quo2: quo(5, -2)
   151    quo3: quo(-5, 2)
   152    quo4: quo(-5, -2)
   153    quoDivByZero: quo(2, 0)
   154    quoTypeError1: quo(2.0, 1)
   155    quoTypeError2: quo(2, 1.0)
   156    rem1: rem(5, 2)
   157    rem2: rem(5, -2)
   158    rem3: rem(-5, 2)
   159    rem4: rem(-5, -2)
   160    remDivByZero: rem(2, 0)
   161    remTypeError1: rem(2.0, 1)
   162    remTypeError2: rem(2, 1.0)
   163    div1: div(5, 2)
   164    div2: div(5, -2)
   165    div3: div(-5, 2)
   166    div4: div(-5, -2)
   167    divDivByZero: div(2, 0)
   168    divTypeError1: div(2.0, 1)
   169    divTypeError2: div(2, 1.0)
   170    mod1: mod(5, 2)
   171    mod2: mod(5, -2)
   172    mod3: mod(-5, 2)
   173    mod4: mod(-5, -2)
   174    modDivByZero: mod(2, 0)
   175    modTypeError1: mod(2.0, 1)
   176    modTypeError2: mod(2, 1.0)
   177  }