github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/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 --
    42  Errors:
    43  quoDivByZero: division by zero:
    44      ./in.cue:6:15
    45  quoTypeError1: cannot use 2.0 (type float) as int in argument 1 to quo:
    46      ./in.cue:8:20
    47  quoTypeError2: cannot use 1.0 (type float) as int in argument 2 to quo:
    48      ./in.cue:9:23
    49  remDivByZero: division by zero:
    50      ./in.cue:16:15
    51  remTypeError1: cannot use 2.0 (type float) as int in argument 1 to rem:
    52      ./in.cue:18:20
    53  remTypeError2: cannot use 1.0 (type float) as int in argument 2 to rem:
    54      ./in.cue:19:23
    55  divDivByZero: division by zero:
    56      ./in.cue:26:15
    57  divTypeError1: cannot use 2.0 (type float) as int in argument 1 to div:
    58      ./in.cue:28:20
    59  divTypeError2: cannot use 1.0 (type float) as int in argument 2 to div:
    60      ./in.cue:29:23
    61  modDivByZero: division by zero:
    62      ./in.cue:36:15
    63  modTypeError1: cannot use 2.0 (type float) as int in argument 1 to mod:
    64      ./in.cue:38:20
    65  modTypeError2: cannot use 1.0 (type float) as int in argument 2 to mod:
    66      ./in.cue:39:23
    67  
    68  Result:
    69  (_|_){
    70    // [eval]
    71    quo1: (int){ 2 }
    72    quo2: (int){ -2 }
    73    quo3: (int){ -2 }
    74    quo4: (int){ 2 }
    75    quoDivByZero: (_|_){
    76      // [eval] quoDivByZero: division by zero:
    77      //     ./in.cue:6:15
    78    }
    79    quoTypeError1: (_|_){
    80      // [eval] quoTypeError1: cannot use 2.0 (type float) as int in argument 1 to quo:
    81      //     ./in.cue:8:20
    82    }
    83    quoTypeError2: (_|_){
    84      // [eval] quoTypeError2: cannot use 1.0 (type float) as int in argument 2 to quo:
    85      //     ./in.cue:9:23
    86    }
    87    rem1: (int){ 1 }
    88    rem2: (int){ 1 }
    89    rem3: (int){ -1 }
    90    rem4: (int){ -1 }
    91    remDivByZero: (_|_){
    92      // [eval] remDivByZero: division by zero:
    93      //     ./in.cue:16:15
    94    }
    95    remTypeError1: (_|_){
    96      // [eval] remTypeError1: cannot use 2.0 (type float) as int in argument 1 to rem:
    97      //     ./in.cue:18:20
    98    }
    99    remTypeError2: (_|_){
   100      // [eval] remTypeError2: cannot use 1.0 (type float) as int in argument 2 to rem:
   101      //     ./in.cue:19:23
   102    }
   103    div1: (int){ 2 }
   104    div2: (int){ -2 }
   105    div3: (int){ -3 }
   106    div4: (int){ 3 }
   107    divDivByZero: (_|_){
   108      // [eval] divDivByZero: division by zero:
   109      //     ./in.cue:26:15
   110    }
   111    divTypeError1: (_|_){
   112      // [eval] divTypeError1: cannot use 2.0 (type float) as int in argument 1 to div:
   113      //     ./in.cue:28:20
   114    }
   115    divTypeError2: (_|_){
   116      // [eval] divTypeError2: cannot use 1.0 (type float) as int in argument 2 to div:
   117      //     ./in.cue:29:23
   118    }
   119    mod1: (int){ 1 }
   120    mod2: (int){ 1 }
   121    mod3: (int){ 1 }
   122    mod4: (int){ 1 }
   123    modDivByZero: (_|_){
   124      // [eval] modDivByZero: division by zero:
   125      //     ./in.cue:36:15
   126    }
   127    modTypeError1: (_|_){
   128      // [eval] modTypeError1: cannot use 2.0 (type float) as int in argument 1 to mod:
   129      //     ./in.cue:38:20
   130    }
   131    modTypeError2: (_|_){
   132      // [eval] modTypeError2: cannot use 1.0 (type float) as int in argument 2 to mod:
   133      //     ./in.cue:39:23
   134    }
   135  }
   136  -- out/compile --
   137  --- in.cue
   138  {
   139    quo1: quo(5, 2)
   140    quo2: quo(5, -2)
   141    quo3: quo(-5, 2)
   142    quo4: quo(-5, -2)
   143    quoDivByZero: quo(2, 0)
   144    quoTypeError1: quo(2.0, 1)
   145    quoTypeError2: quo(2, 1.0)
   146    rem1: rem(5, 2)
   147    rem2: rem(5, -2)
   148    rem3: rem(-5, 2)
   149    rem4: rem(-5, -2)
   150    remDivByZero: rem(2, 0)
   151    remTypeError1: rem(2.0, 1)
   152    remTypeError2: rem(2, 1.0)
   153    div1: div(5, 2)
   154    div2: div(5, -2)
   155    div3: div(-5, 2)
   156    div4: div(-5, -2)
   157    divDivByZero: div(2, 0)
   158    divTypeError1: div(2.0, 1)
   159    divTypeError2: div(2, 1.0)
   160    mod1: mod(5, 2)
   161    mod2: mod(5, -2)
   162    mod3: mod(-5, 2)
   163    mod4: mod(-5, -2)
   164    modDivByZero: mod(2, 0)
   165    modTypeError1: mod(2.0, 1)
   166    modTypeError2: mod(2, 1.0)
   167  }