constructor unit tests

This commit is contained in:
Jim 2020-06-12 10:45:33 -04:00
parent 1e159689c1
commit 4a0ee3ee01
2 changed files with 120 additions and 4 deletions

View File

@ -2,6 +2,21 @@ package org.jnius;
public class VariablePassing {
public VariablePassing() {
}
public VariablePassing(int[] numbers) {
squareNumbers(numbers);
}
public VariablePassing(int[] numbers1, int[] numbers2, int[] numbers3, int[] numbers4) {
squareNumbers(numbers1);
squareNumbers(numbers2);
squareNumbers(numbers3);
squareNumbers(numbers4);
}
private static void squareNumbers(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i * i;

View File

@ -14,9 +14,8 @@ class PassByReferenceOrValueTest(unittest.TestCase):
for n, c in zip(numbers, changed):
self._verify(n, c)
def test_single_param(self):
def test_single_param_static(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
variablePassing = VariablePassing()
# passed by reference (default), numbers should change
numbers = list(range(10))
@ -33,6 +32,10 @@ class PassByReferenceOrValueTest(unittest.TestCase):
VariablePassing.singleParamStatic(numbers, pass_by_reference=False)
self._verify(numbers, False)
def test_single_param(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
variablePassing = VariablePassing()
# passed by reference (default), numbers should change
numbers = list(range(10))
variablePassing.singleParam(numbers)
@ -48,9 +51,8 @@ class PassByReferenceOrValueTest(unittest.TestCase):
variablePassing.singleParam(numbers, pass_by_reference=False)
self._verify(numbers, False)
def test_multiple_params(self):
def test_multiple_params_static(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
variablePassing = VariablePassing()
# passed by reference (default), all numbers should change
numbers = [list(range(10)) for _ in range(4)]
@ -88,3 +90,102 @@ class PassByReferenceOrValueTest(unittest.TestCase):
changed = (False, True, False, True)
VariablePassing.multipleParamsStatic(*numbers, pass_by_reference=changed)
self._verify_all(numbers, changed)
def test_multiple_params(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
variablePassing = VariablePassing()
# passed by reference (default), all numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing.multipleParams(*numbers)
self._verify_all(numbers, [True] * 4)
# passed by reference, all numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing.multipleParams(*numbers, pass_by_reference=True)
self._verify_all(numbers, [True] * 4)
# passed by value, no numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing.multipleParams(*numbers, pass_by_reference=False)
self._verify_all(numbers, [False] * 4)
# only the first set of numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing.multipleParams(*numbers, pass_by_reference=[True, False])
self._verify_all(numbers, [True, False, False, False])
# only the first set of numbers should not change
numbers = [list(range(10)) for _ in range(4)]
variablePassing.multipleParams(*numbers, pass_by_reference=[False, True])
self._verify_all(numbers, [False, True, True, True])
# only the odd sets of numbers should change
numbers = [list(range(10)) for _ in range(4)]
changed = (True, False, True, False)
variablePassing.multipleParams(*numbers, pass_by_reference=changed)
self._verify_all(numbers, changed)
# only the even sets of numbers should change
numbers = [list(range(10)) for _ in range(4)]
changed = (False, True, False, True)
variablePassing.multipleParams(*numbers, pass_by_reference=changed)
self._verify_all(numbers, changed)
def test_contructor_single_param(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
# passed by reference (default), numbers should change
numbers = list(range(10))
variablePassing = VariablePassing(numbers)
self._verify(numbers, True)
# passed by reference, numbers should change
numbers = list(range(10))
variablePassing = VariablePassing(numbers, pass_by_reference=True)
self._verify(numbers, True)
# passed by value, numbers should not change
numbers = list(range(10))
variablePassing = VariablePassing(numbers, pass_by_reference=False)
self._verify(numbers, False)
def test_contructor_multiple_params(self):
VariablePassing = autoclass('org.jnius.VariablePassing')
# passed by reference (default), all numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing = VariablePassing(*numbers)
self._verify_all(numbers, [True] * 4)
# passed by reference, all numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing = VariablePassing(*numbers, pass_by_reference=True)
self._verify_all(numbers, [True] * 4)
# passed by value, no numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing = VariablePassing(*numbers, pass_by_reference=False)
self._verify_all(numbers, [False] * 4)
# only the first set of numbers should change
numbers = [list(range(10)) for _ in range(4)]
variablePassing = VariablePassing(*numbers, pass_by_reference=[True, False])
self._verify_all(numbers, [True, False, False, False])
# only the first set of numbers should not change
numbers = [list(range(10)) for _ in range(4)]
variablePassing = VariablePassing(*numbers, pass_by_reference=[False, True])
self._verify_all(numbers, [False, True, True, True])
# only the odd sets of numbers should change
numbers = [list(range(10)) for _ in range(4)]
changed = (True, False, True, False)
variablePassing = VariablePassing(*numbers, pass_by_reference=changed)
self._verify_all(numbers, changed)
# only the even sets of numbers should change
numbers = [list(range(10)) for _ in range(4)]
changed = (False, True, False, True)
variablePassing = VariablePassing(*numbers, pass_by_reference=changed)
self._verify_all(numbers, changed)