# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: integer-specific arithmetic
#evalPartial
-- in.cue --
q1:  5 quo 2   // 2
q2:  5 quo -2  // -2
q3:  -5 quo 2  // -2
q4:  -5 quo -2 // 2
qe1: 2.0 quo 1
qe2: 2 quo 1.0

r1:  5 rem 2   // 1
r2:  5 rem -2  // 1
r3:  -5 rem 2  // -1
r4:  -5 rem -2 // -1
re1: 2.0 rem 1
re2: 2 rem 1.0

d1:  5 div 2   // 2
d2:  5 div -2  // -2
d3:  -5 div 2  // -3
d4:  -5 div -2 // 3
de1: 2.0 div 1
de2: 2 div 1.0

m1:  5 mod 2   // 1
m2:  5 mod -2  // 1
m3:  -5 mod 2  // 1
m4:  -5 mod -2 // 1
me1: 2.0 mod 1
me2: 2 mod 1.0
-- out/def --
q1:  2
q2:  -2
q3:  -2
q4:  2
qe1: _|_ // invalid operation 2.0 quo 1 (mismatched types float and int)
qe2: _|_ // invalid operation 2 quo 1.0 (mismatched types int and float)
r1:  1
r2:  1
r3:  -1
r4:  -1
re1: _|_ // invalid operation 2.0 rem 1 (mismatched types float and int)
re2: _|_ // invalid operation 2 rem 1.0 (mismatched types int and float)
d1:  2
d2:  -2
d3:  -3
d4:  3
de1: _|_ // invalid operation 2.0 div 1 (mismatched types float and int)
de2: _|_ // invalid operation 2 div 1.0 (mismatched types int and float)
m1:  1
m2:  1
m3:  1
m4:  1
me1: _|_ // invalid operation 2.0 mod 1 (mismatched types float and int)
me2: _|_ // invalid operation 2 mod 1.0 (mismatched types int and float)
-- out/legacy-debug --
<0>{q1: 2, q2: -2, q3: -2, q4: 2, qe1: _|_((2.0 quo 1):invalid operation 2.0 quo 1 (mismatched types float and int)), qe2: _|_((2 quo 1.0):invalid operation 2 quo 1.0 (mismatched types int and float)), r1: 1, r2: 1, r3: -1, r4: -1, re1: _|_((2.0 rem 1):invalid operation 2.0 rem 1 (mismatched types float and int)), re2: _|_((2 rem 1.0):invalid operation 2 rem 1.0 (mismatched types int and float)), d1: 2, d2: -2, d3: -3, d4: 3, de1: _|_((2.0 div 1):invalid operation 2.0 div 1 (mismatched types float and int)), de2: _|_((2 div 1.0):invalid operation 2 div 1.0 (mismatched types int and float)), m1: 1, m2: 1, m3: 1, m4: 1, me1: _|_((2.0 mod 1):invalid operation 2.0 mod 1 (mismatched types float and int)), me2: _|_((2 mod 1.0):invalid operation 2 mod 1.0 (mismatched types int and float))}
-- out/compile --
--- in.cue
{
  q1: (5 quo 2)
  q2: (5 quo -2)
  q3: (-5 quo 2)
  q4: (-5 quo -2)
  qe1: (2.0 quo 1)
  qe2: (2 quo 1.0)
  r1: (5 rem 2)
  r2: (5 rem -2)
  r3: (-5 rem 2)
  r4: (-5 rem -2)
  re1: (2.0 rem 1)
  re2: (2 rem 1.0)
  d1: (5 div 2)
  d2: (5 div -2)
  d3: (-5 div 2)
  d4: (-5 div -2)
  de1: (2.0 div 1)
  de2: (2 div 1.0)
  m1: (5 mod 2)
  m2: (5 mod -2)
  m3: (-5 mod 2)
  m4: (-5 mod -2)
  me1: (2.0 mod 1)
  me2: (2 mod 1.0)
}
-- out/eval --
Errors:
qe1: invalid operands 2.0 and 1 to 'quo' (type float and int):
    ./in.cue:5:6
qe2: invalid operands 2 and 1.0 to 'quo' (type int and float):
    ./in.cue:6:6
re1: invalid operands 2.0 and 1 to 'rem' (type float and int):
    ./in.cue:12:6
re2: invalid operands 2 and 1.0 to 'rem' (type int and float):
    ./in.cue:13:6
de1: invalid operands 2.0 and 1 to 'div' (type float and int):
    ./in.cue:19:6
de2: invalid operands 2 and 1.0 to 'div' (type int and float):
    ./in.cue:20:6
me1: invalid operands 2.0 and 1 to 'mod' (type float and int):
    ./in.cue:26:6
me2: invalid operands 2 and 1.0 to 'mod' (type int and float):
    ./in.cue:27:6

Result:
(_|_){
  // [eval]
  q1: (int){ 2 }
  q2: (int){ -2 }
  q3: (int){ -2 }
  q4: (int){ 2 }
  qe1: (_|_){
    // [eval] qe1: invalid operands 2.0 and 1 to 'quo' (type float and int):
    //     ./in.cue:5:6
  }
  qe2: (_|_){
    // [eval] qe2: invalid operands 2 and 1.0 to 'quo' (type int and float):
    //     ./in.cue:6:6
  }
  r1: (int){ 1 }
  r2: (int){ 1 }
  r3: (int){ -1 }
  r4: (int){ -1 }
  re1: (_|_){
    // [eval] re1: invalid operands 2.0 and 1 to 'rem' (type float and int):
    //     ./in.cue:12:6
  }
  re2: (_|_){
    // [eval] re2: invalid operands 2 and 1.0 to 'rem' (type int and float):
    //     ./in.cue:13:6
  }
  d1: (int){ 2 }
  d2: (int){ -2 }
  d3: (int){ -3 }
  d4: (int){ 3 }
  de1: (_|_){
    // [eval] de1: invalid operands 2.0 and 1 to 'div' (type float and int):
    //     ./in.cue:19:6
  }
  de2: (_|_){
    // [eval] de2: invalid operands 2 and 1.0 to 'div' (type int and float):
    //     ./in.cue:20:6
  }
  m1: (int){ 1 }
  m2: (int){ 1 }
  m3: (int){ 1 }
  m4: (int){ 1 }
  me1: (_|_){
    // [eval] me1: invalid operands 2.0 and 1 to 'mod' (type float and int):
    //     ./in.cue:26:6
  }
  me2: (_|_){
    // [eval] me2: invalid operands 2 and 1.0 to 'mod' (type int and float):
    //     ./in.cue:27:6
  }
}
