Variance
Variance is a measure of how spread out the values in a dataset are around the average. It shows how much the values differ from the mean.
- Nada program
- Test 1
- Test 2
- Test 3
- Test 4
src/variance_integer.py
from nada_dsl import *
import nada_numpy as na
DIM = 10
def mean(array: na.NadaArray):
sum = Integer(0)
# Compute the sum
for v in array:
sum += v
# Divide the sum by the number of the elements
m = sum / Integer(DIM)
return m
def variance(array: na.NadaArray):
# Compute the mean
m = mean(array)
# Initialize the sum to 0
sum = Integer(0)
# Compute (x_i - mean)^2
for v in array:
diff = v - m
sum += (diff * diff)
var = sum / Integer(DIM)
return var
def nada_main():
party1 = Party(name="Party1")
arr = na.array([DIM], party1, "array", SecretInteger)
var = variance(arr)
return na.output(var, party1, "variance")
tests/variance_integer_test_1.yaml
---
program: variance_integer
inputs:
array_0: 5
array_1: 3
array_2: 1
array_3: 12
array_4: 3
array_5: 1
array_6: 5
array_7: 3
array_8: 1
array_9: 70
expected_outputs:
variance: 404
tests/variance_integer_test_2.yaml
---
program: variance_integer
inputs:
array_0: 1
array_1: 2
array_2: 3
array_3: 4
array_4: 5
array_5: 69
array_6: 7
array_7: 8
array_8: 9
array_9: 10
expected_outputs:
variance: 372
tests/variance_integer_test_3.yaml
---
program: variance_integer
inputs:
array_0: 10
array_1: 0
array_2: -1
array_3: 40
array_4: 99
array_5: 33
array_6: 22
array_7: 11
array_8: 0
array_9: 3
expected_outputs:
variance: 850
tests/variance_integer_test_4.yaml
---
program: variance_integer
inputs:
array_0: 100
array_1: 99
array_2: 80
array_3: 79
array_4: 60
array_5: 59
array_6: 40
array_7: 39
array_8: 20
array_9: 19
expected_outputs:
variance: 800
Run and test the variance_integer program
1. Open "Nada by Example"
2. Run the program with inputs
from the test file
nada run variance_integer_test_1
3. Test the program with inputs
from the test file against the expected_outputs
from the test file
nada test variance_integer_test_1