@@ -79,8 +79,10 @@ def test_sampling_uniform_dist_hypothesis(self, u, rm):
79
79
Q = ciw .Simulation (ciw .create_network (params ))
80
80
Nu = Q .transitive_nodes [0 ]
81
81
for itr in range (10 ): # Because repition happens in the simulation
82
- self .assertTrue (ul <= Nu .simulation .service_times [Nu .id_number ][0 ]() <= uh )
83
- self .assertTrue (ul <= Nu .simulation .inter_arrival_times [Nu .id_number ][0 ]() <= uh )
82
+ self .assertTrue (
83
+ ul <= Nu .simulation .service_times [Nu .id_number ][0 ]() <= uh )
84
+ self .assertTrue (
85
+ ul <= Nu .simulation .inter_arrival_times [Nu .id_number ][0 ]() <= uh )
84
86
85
87
def test_error_uniform_dist (self ):
86
88
Arrival_distributions = [['Uniform' , 2.2 , 3.3 ]]
@@ -156,8 +158,10 @@ def test_sampling_deterministic_dist_hypothesis(self, d, rm):
156
158
Q = ciw .Simulation (ciw .create_network (params ))
157
159
Nd = Q .transitive_nodes [0 ]
158
160
for itr in range (10 ): # Because repition happens in the simulation
159
- self .assertEqual (Nd .simulation .service_times [Nd .id_number ][0 ](), d )
160
- self .assertEqual (Nd .simulation .inter_arrival_times [Nd .id_number ][0 ](), d )
161
+ self .assertEqual (
162
+ Nd .simulation .service_times [Nd .id_number ][0 ](), d )
163
+ self .assertEqual (
164
+ Nd .simulation .inter_arrival_times [Nd .id_number ][0 ](), d )
161
165
162
166
def test_error_deterministic_dist (self ):
163
167
Arrival_distributions = [['Deterministic' , 2.2 ]]
@@ -225,8 +229,10 @@ def test_sampling_triangular_dist_hypothesis(self, t, rm):
225
229
Q = ciw .Simulation (ciw .create_network (params ))
226
230
Nt = Q .transitive_nodes [0 ]
227
231
for itr in range (10 ): # Because repition happens in the simulation
228
- self .assertTrue (tl <= Nt .simulation .service_times [Nt .id_number ][0 ]() <= th )
229
- self .assertTrue (tl <= Nt .simulation .inter_arrival_times [Nt .id_number ][0 ]() <= th )
232
+ self .assertTrue (
233
+ tl <= Nt .simulation .service_times [Nt .id_number ][0 ]() <= th )
234
+ self .assertTrue (
235
+ tl <= Nt .simulation .inter_arrival_times [Nt .id_number ][0 ]() <= th )
230
236
231
237
def test_error_triangular_dist (self ):
232
238
Arrival_distributions = [['Triangular' , 2.2 , 3.3 , 2.8 ]]
@@ -620,10 +626,12 @@ def test_error_custom_dist(self):
620
626
621
627
def test_userdefined_function_dist (self ):
622
628
params = {
623
- 'Arrival_distributions' : [['UserDefined' , lambda : random ()],
624
- ['UserDefined' , lambda : custom_function ()]],
625
- 'Service_distributions' : [['UserDefined' , lambda : random ()],
626
- ['UserDefined' , lambda : custom_function ()]],
629
+ 'Arrival_distributions' : [
630
+ ['UserDefined' , lambda : random ()],
631
+ ['UserDefined' , lambda : custom_function ()]],
632
+ 'Service_distributions' : [
633
+ ['UserDefined' , lambda : random ()],
634
+ ['UserDefined' , lambda : custom_function ()]],
627
635
'Number_of_servers' : [1 , 1 ],
628
636
'Transition_matrices' : [[0.1 , 0.1 ],
629
637
[0.1 , 0.1 ]]
@@ -681,10 +689,12 @@ def test_userdefined_function_dist(self):
681
689
def test_userdefined_function_dist_hypothesis (self , const , dist , rm ):
682
690
my_empirical_dist = [8.0 , 8.0 , 8.0 , 8.8 , 8.8 , 12.3 ]
683
691
params = {
684
- 'Arrival_distributions' : [['UserDefined' , lambda : choice (my_empirical_dist )],
685
- ['UserDefined' , lambda : const ]],
686
- 'Service_distributions' : [['UserDefined' , lambda : random ()],
687
- ['UserDefined' , lambda : custom_function ()]],
692
+ 'Arrival_distributions' : [
693
+ ['UserDefined' , lambda : choice (my_empirical_dist )],
694
+ ['UserDefined' , lambda : const ]],
695
+ 'Service_distributions' : [
696
+ ['UserDefined' , lambda : random ()],
697
+ ['UserDefined' , lambda : custom_function ()]],
688
698
'Number_of_servers' : [1 , 1 ],
689
699
'Transition_matrices' : [[0.1 , 0.1 ],
690
700
[0.1 , 0.1 ]]
@@ -694,11 +704,15 @@ def test_userdefined_function_dist_hypothesis(self, const, dist, rm):
694
704
N2 = Q .transitive_nodes [1 ]
695
705
ciw .seed (5 )
696
706
for itr in range (10 ): # Because repition happens in the simulation
697
- self .assertTrue (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ]()
707
+ self .assertTrue (
708
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ]()
698
709
in set (my_empirical_dist ))
699
- self .assertTrue (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ]() == const )
700
- self .assertTrue (0.0 <= N1 .simulation .service_times [N1 .id_number ][0 ]() <= 1.0 )
701
- self .assertTrue (0.0 <= N2 .simulation .service_times [N2 .id_number ][0 ]() <= 2.0 )
710
+ self .assertTrue (
711
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ]() == const )
712
+ self .assertTrue (
713
+ 0.0 <= N1 .simulation .service_times [N1 .id_number ][0 ]() <= 1.0 )
714
+ self .assertTrue (
715
+ 0.0 <= N2 .simulation .service_times [N2 .id_number ][0 ]() <= 2.0 )
702
716
703
717
def test_no_arrivals_dist (self ):
704
718
params = {
@@ -708,9 +722,10 @@ def test_no_arrivals_dist(self):
708
722
'Transition_matrices' : [[0.1 ]]
709
723
}
710
724
Q = ciw .Simulation (ciw .create_network (params ))
711
- Nna = Q .transitive_nodes [0 ]
725
+ Na = Q .transitive_nodes [0 ]
712
726
ciw .seed (5 )
713
- self .assertEqual (Nna .simulation .inter_arrival_times [Nna .id_number ][0 ](), float ('Inf' ))
727
+ self .assertEqual (
728
+ Na .simulation .inter_arrival_times [Na .id_number ][0 ](), float ('Inf' ))
714
729
715
730
def test_error_dist (self ):
716
731
params = {'Arrival_distributions' : ['NoArrivals' ],
@@ -732,18 +747,24 @@ def test_error_dist(self):
732
747
rm = random_module ())
733
748
def test_check_userdef_dist (self , positive_float , negative_float , word , rm ):
734
749
assume (negative_float < 0 )
735
- Q = ciw .Simulation (ciw .create_network ('ciw/tests/testing_parameters/params.yml' ))
736
- self .assertEqual (Q .check_userdef_dist (lambda : positive_float ), positive_float )
737
- self .assertRaises (ValueError , Q .check_userdef_dist , lambda : negative_float )
738
- self .assertRaises (ValueError , Q .check_userdef_dist , lambda : word )
750
+ Q = ciw .Simulation (
751
+ ciw .create_network ('ciw/tests/testing_parameters/params.yml' ))
752
+ self .assertEqual (
753
+ Q .check_userdef_dist (lambda : positive_float ), positive_float )
754
+ self .assertRaises (
755
+ ValueError , Q .check_userdef_dist , lambda : negative_float )
756
+ self .assertRaises (
757
+ ValueError , Q .check_userdef_dist , lambda : word )
739
758
740
759
741
760
def test_timedependent_function_dist (self ):
742
761
params = {
743
- 'Arrival_distributions' : [['TimeDependent' , lambda t : time_dependent_function_1 (t )],
744
- ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
745
- 'Service_distributions' : [['TimeDependent' , lambda t : time_dependent_function_1 (t )],
746
- ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
762
+ 'Arrival_distributions' : [
763
+ ['TimeDependent' , lambda t : time_dependent_function_1 (t )],
764
+ ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
765
+ 'Service_distributions' : [
766
+ ['TimeDependent' , lambda t : time_dependent_function_1 (t )],
767
+ ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
747
768
'Number_of_servers' : [1 , 1 ],
748
769
'Transition_matrices' : [[0.1 , 0.1 ],
749
770
[0.1 , 0.1 ]]
@@ -752,16 +773,26 @@ def test_timedependent_function_dist(self):
752
773
N1 = Q .transitive_nodes [0 ]
753
774
N2 = Q .transitive_nodes [1 ]
754
775
ciw .seed (5 )
755
- self .assertEqual (N1 .simulation .service_times [N1 .id_number ][0 ](3.0 ), 3.0 )
756
- self .assertEqual (N1 .simulation .service_times [N1 .id_number ][0 ](9.0 ), 3.0 )
757
- self .assertEqual (N1 .simulation .service_times [N1 .id_number ][0 ](9.0 ), 3.0 )
758
- self .assertEqual (N1 .simulation .service_times [N1 .id_number ][0 ](11.0 ), 5.0 )
759
- self .assertEqual (N1 .simulation .service_times [N1 .id_number ][0 ](11.0 ), 5.0 )
760
- self .assertEqual (N2 .simulation .service_times [N2 .id_number ][0 ](4.0 ), 2.0 )
761
- self .assertEqual (N2 .simulation .service_times [N2 .id_number ][0 ](4.0 ), 2.0 )
762
- self .assertEqual (N2 .simulation .service_times [N2 .id_number ][0 ](17.0 ), 8.5 )
763
- self .assertEqual (N2 .simulation .service_times [N2 .id_number ][0 ](22.0 ), 8.0 )
764
- self .assertEqual (N2 .simulation .service_times [N2 .id_number ][0 ](22.0 ), 8.0 )
776
+ self .assertEqual (
777
+ N1 .simulation .service_times [N1 .id_number ][0 ](3.0 ), 3.0 )
778
+ self .assertEqual (
779
+ N1 .simulation .service_times [N1 .id_number ][0 ](9.0 ), 3.0 )
780
+ self .assertEqual (
781
+ N1 .simulation .service_times [N1 .id_number ][0 ](9.0 ), 3.0 )
782
+ self .assertEqual (
783
+ N1 .simulation .service_times [N1 .id_number ][0 ](11.0 ), 5.0 )
784
+ self .assertEqual (
785
+ N1 .simulation .service_times [N1 .id_number ][0 ](11.0 ), 5.0 )
786
+ self .assertEqual (
787
+ N2 .simulation .service_times [N2 .id_number ][0 ](4.0 ), 2.0 )
788
+ self .assertEqual (
789
+ N2 .simulation .service_times [N2 .id_number ][0 ](4.0 ), 2.0 )
790
+ self .assertEqual (
791
+ N2 .simulation .service_times [N2 .id_number ][0 ](17.0 ), 8.5 )
792
+ self .assertEqual (
793
+ N2 .simulation .service_times [N2 .id_number ][0 ](22.0 ), 8.0 )
794
+ self .assertEqual (
795
+ N2 .simulation .service_times [N2 .id_number ][0 ](22.0 ), 8.0 )
765
796
766
797
self .assertEqual (N1 .get_service_time (0 , 3.0 ), 3.0 )
767
798
self .assertEqual (N1 .get_service_time (0 , 9.0 ), 3.0 )
@@ -774,21 +805,33 @@ def test_timedependent_function_dist(self):
774
805
self .assertEqual (N2 .get_service_time (0 , 22.0 ), 8.0 )
775
806
self .assertEqual (N2 .get_service_time (0 , 22.0 ), 8.0 )
776
807
777
- self .assertEqual (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](3.0 ), 3.0 )
778
- self .assertEqual (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](9.0 ), 3.0 )
779
- self .assertEqual (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](9.0 ), 3.0 )
780
- self .assertEqual (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](11.0 ), 5.0 )
781
- self .assertEqual (N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](11.0 ), 5.0 )
782
- self .assertEqual (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](4.0 ), 2.0 )
783
- self .assertEqual (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](4.0 ), 2.0 )
784
- self .assertEqual (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](17.0 ), 8.5 )
785
- self .assertEqual (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](22.0 ), 8.0 )
786
- self .assertEqual (N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](22.0 ), 8.0 )
808
+ self .assertEqual (
809
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](3.0 ), 3.0 )
810
+ self .assertEqual (
811
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](9.0 ), 3.0 )
812
+ self .assertEqual (
813
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](9.0 ), 3.0 )
814
+ self .assertEqual (
815
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](11.0 ), 5.0 )
816
+ self .assertEqual (
817
+ N1 .simulation .inter_arrival_times [N1 .id_number ][0 ](11.0 ), 5.0 )
818
+ self .assertEqual (
819
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](4.0 ), 2.0 )
820
+ self .assertEqual (
821
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](4.0 ), 2.0 )
822
+ self .assertEqual (
823
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](17.0 ), 8.5 )
824
+ self .assertEqual (
825
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](22.0 ), 8.0 )
826
+ self .assertEqual (
827
+ N2 .simulation .inter_arrival_times [N2 .id_number ][0 ](22.0 ), 8.0 )
787
828
788
829
def test_broken_timedependent_function_dist (self ):
789
830
params = {
790
- 'Arrival_distributions' : [['TimeDependent' , lambda t : time_dependent_function_1 (t )]],
791
- 'Service_distributions' : [['TimeDependent' , lambda t : broken_td_func (t )]],
831
+ 'Arrival_distributions' : [
832
+ ['TimeDependent' , lambda t : time_dependent_function_1 (t )]],
833
+ 'Service_distributions' : [
834
+ ['TimeDependent' , lambda t : broken_td_func (t )]],
792
835
'Number_of_servers' : [1 ],
793
836
'Transition_matrices' : [[0.1 ]]
794
837
}
@@ -800,10 +843,12 @@ def test_broken_timedependent_function_dist(self):
800
843
801
844
def test_timedependent_exact (self ):
802
845
params = {
803
- 'Arrival_distributions' : [['TimeDependent' , lambda t : time_dependent_function_1 (t )],
804
- ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
805
- 'Service_distributions' : [['TimeDependent' , lambda t : time_dependent_function_1 (t )],
806
- ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
846
+ 'Arrival_distributions' : [
847
+ ['TimeDependent' , lambda t : time_dependent_function_1 (t )],
848
+ ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
849
+ 'Service_distributions' : [
850
+ ['TimeDependent' , lambda t : time_dependent_function_1 (t )],
851
+ ['TimeDependent' , lambda t : time_dependent_function_2 (t )]],
807
852
'Number_of_servers' : [1 , 1 ],
808
853
'Transition_matrices' : [[0.1 , 0.1 ],
809
854
[0.1 , 0.1 ]]
0 commit comments