diff options
Diffstat (limited to 'ext/com_dotnet/tests/variants.phpt')
-rw-r--r-- | ext/com_dotnet/tests/variants.phpt | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/ext/com_dotnet/tests/variants.phpt b/ext/com_dotnet/tests/variants.phpt new file mode 100644 index 0000000000..36258424da --- /dev/null +++ b/ext/com_dotnet/tests/variants.phpt @@ -0,0 +1,263 @@ +--TEST-- +COM: General variant tests +--SKIPIF-- +<?php # vim:ft=php +if (!extension_loaded("com_dotnet")) print "skip"; ?> +--FILE-- +<?php // $Id$ +error_reporting(E_ALL); + +$v = new VARIANT(); +if (VT_EMPTY != variant_get_type($v)) { + echo "VT_EMPTY: bork\n"; +} + +$values = array(VT_I4 => 42, VT_R8 => 3.5, VT_BSTR => "hello", VT_BOOL => false); +$binary_ops = array('add', 'cat', 'sub', 'mul', 'and', 'div', + 'eqv', 'idiv', 'imp', 'mod', 'or', 'pow', 'xor'); + +foreach ($values as $t => $val) { + $v = new VARIANT($val); + if ($t != variant_get_type($v)) { + printf("Bork: [%d] %d: %s\n", $t, variant_get_type($v), (string)$v); + } + $results = array(); + + foreach ($values as $op2) { + echo "--\n"; + foreach ($binary_ops as $op) { + echo "$op: " . call_user_func('variant_' . $op, $v, $op2) . "\n"; + } + } +} +$a = new VARIANT('10.0', VT_DECIMAL); +var_dump($a); + +echo "OK!"; +?> +--EXPECT-- +-- +add: 84 +cat: 4242 +sub: 0 +mul: 1764 +and: 42 +div: 1 +eqv: -1 +idiv: 1 +imp: -1 +mod: 0 +or: 42 +pow: 1.50130937545297E+68 +xor: 0 +-- +add: 45.5 +cat: 423.5 +sub: 38.5 +mul: 147 +and: 0 +div: 12 +eqv: -47 +idiv: 10 +imp: -43 +mod: 2 +or: 46 +pow: 480145.116863642 +xor: 46 +-- +add: +cat: 42hello +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: 42 +cat: 42False +sub: 42 +mul: 0 +and: 0 +div: +eqv: -43 +idiv: +imp: -43 +mod: +or: 42 +pow: 1 +xor: 42 +-- +add: 45.5 +cat: 3.542 +sub: -38.5 +mul: 147 +and: 0 +div: 8.33333333333333E-02 +eqv: -47 +idiv: 0 +imp: -5 +mod: 4 +or: 46 +pow: 7.09345573078604E+22 +xor: 46 +-- +add: 7 +cat: 3.53.5 +sub: 0 +mul: 12.25 +and: 4 +div: 1 +eqv: -1 +idiv: 1 +imp: -1 +mod: 0 +or: 4 +pow: 80.2117802289664 +xor: 0 +-- +add: +cat: 3.5hello +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: 3.5 +cat: 3.5False +sub: 3.5 +mul: 0 +and: 0 +div: +eqv: -5 +idiv: +imp: -5 +mod: +or: 4 +pow: 1 +xor: 4 +-- +add: +cat: hello42 +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: +cat: hello3.5 +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: hellohello +cat: hellohello +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: +cat: helloFalse +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: 42 +cat: False42 +sub: -42 +mul: 0 +and: 0 +div: 0 +eqv: -43 +idiv: 0 +imp: -1 +mod: 0 +or: 42 +pow: 0 +xor: 42 +-- +add: 3.5 +cat: False3.5 +sub: -3.5 +mul: 0 +and: 0 +div: 0 +eqv: -5 +idiv: 0 +imp: -1 +mod: 0 +or: 4 +pow: 0 +xor: 4 +-- +add: +cat: Falsehello +sub: +mul: +and: +div: +eqv: +idiv: +imp: +mod: +or: +pow: +xor: +-- +add: 0 +cat: FalseFalse +sub: 0 +mul: 0 +and: 0 +div: +eqv: -1 +idiv: +imp: -1 +mod: +or: 0 +pow: 1 +xor: 0 +OK! |