Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

from builtins import range 

from gpkit import Variable 

import numpy as np 

 

import unittest 

from gpkit.tests.helpers import run_tests 

 

from robust.robust_gp_tools import RobustGPTools 

 

class TestRobustGPTools(unittest.TestCase): 

def test_check_if_no_data(self): 

for _ in range(20): 

number_of_monomials = int(30*np.random.random())+1 

number_of_gp_variables = int(np.random.rand()*15) + 1 

number_of_uncertain_variables = int(np.random.rand()*4) + 1 

vector_to_choose_from = [0, 0, 0, 0, 0, 0, 0, 0, 1, -1] 

 

m = number_of_monomials*[1] 

p_uncertain_vars = [] 

data_monomials = [] 

 

for j in range(number_of_monomials): 

for i in range(number_of_gp_variables): 

x = Variable('x_%s' % i) 

m[j] *= x**(np.random.rand()*10 - 5) 

 

for i in range(number_of_uncertain_variables): 

u = Variable('u_%s' % i, np.random.random(), pr=100*np.random.random()) 

p_uncertain_vars.append(u) 

neg_pos_neutral_powers = [vector_to_choose_from[int(10*np.random.random())] for _ in range(number_of_monomials)] 

 

for j in range(number_of_monomials): 

m[j] *= u**(np.random.rand()*5*neg_pos_neutral_powers[j]) 

if neg_pos_neutral_powers[j] != 0: 

data_monomials.append(j) 

 

for i in range(number_of_monomials): 

if i in data_monomials: 

# noinspection PyUnresolvedReferences 

self.assertFalse(RobustGPTools.check_if_no_data(p_uncertain_vars, m[i].exps[0])) 

else: 

# noinspection PyUnresolvedReferences 

self.assertTrue(RobustGPTools.check_if_no_data(p_uncertain_vars, m[i].exps[0])) 

 

TESTS = [TestRobustGPTools] 

 

def test(): 

run_tests(TESTS) 

 

if __name__ == "__main__": 

test()