Exemplo n.º 1
0
 def test_process_aggregates_three_systems_two_disp_one_agg(self):
     """
     Process aggregates when there are three systems - two match the display
     filter and one is cut out by the aggregate.
     """
     f = SafetyAggFilter()
     f.set_weather(2)
     self.s.aggfilter.add(f)
     self.s.dispfilter.add(NameDispFilter('System', False))
     sys1 = self.s.add_system(1, 'System', 'Alpha', 5000, 5000,
                              'blue dwarf', '')
     sys1.addplanet(
         Planet(1, 'Acid', 'Acid World', 3, 3, 100, 1, 10, 5,
                MinData(base=3, )))
     sys2 = self.s.add_system(2, 'System', 'Beta', 5500, 5500, 'blue dwarf',
                              '')
     sys2.addplanet(
         Planet(2, 'Acid', 'Acid World', 1, 1, 100, 1, 5, 0,
                MinData(radioactive=3, )))
     sys3 = self.s.add_system(3, 'Serpentis', 'Gamma', 6000, 6000,
                              'blue dwarf', '')
     sys3.addplanet(
         Planet(3, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0,
                MinData(exotic=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 0)
     self.assertEqual(self.s.agg_max_value, 24)
     self.assertEqual(self.s.agg_spread, 24)
     self.assertEqual(self.s.bio_agg_min_value, 0)
     self.assertEqual(self.s.bio_agg_max_value, 5)
     self.assertEqual(self.s.bio_agg_spread, 5)
Exemplo n.º 2
0
 def test_apply_filters_one_planet_matches(self):
     """
     Tests applying filters when one planet matches the aggregate filter.
     """
     self.s.addplanet(
         Planet(1, 'Acid', 'Acid World', 4, 4, 100, 1, 10, 5,
                MinData(base=3, )))
     self.s.addplanet(
         Planet(2, 'Chlorine', 'Chlorine World', 1, 1, 100, 1, 15, 10,
                MinData(
                    base=1,
                    radioactive=5,
                )))
     f = Filter()
     saf = SafetyAggFilter()
     saf.set_tectonics(3, False)
     f.add(saf)
     self.s.apply_filters(Filter(), f)
     self.assertEqual(self.s.highlight, True)
     self.assertEqual(self.s.mineral_agg.value(), 9)
     self.assertEqual(self.s.mineral_agg_full.value(), 52)
     self.assertEqual(self.s.mineral_agg.base, 3)
     self.assertEqual(self.s.mineral_agg_full.base, 4)
     self.assertEqual(self.s.mineral_agg.radioactive, 0)
     self.assertEqual(self.s.mineral_agg_full.radioactive, 5)
     self.assertEqual(self.s.bio_agg, 10)
     self.assertEqual(self.s.bio_agg_full, 25)
     self.assertEqual(self.s.bio_danger_agg, 5)
     self.assertEqual(self.s.bio_danger_agg_full, 15)
Exemplo n.º 3
0
 def test_add_all(self):
     """
     Tests adding all values
     """
     md = MinData(common=1,
                  corrosive=2,
                  base=3,
                  noble=4,
                  rare=5,
                  precious=6,
                  radioactive=7,
                  exotic=8)
     md2 = MinData(common=8,
                   corrosive=7,
                   base=6,
                   noble=5,
                   rare=4,
                   precious=3,
                   radioactive=2,
                   exotic=1)
     md.add(md2)
     self.assertEqual(md.common, 9)
     self.assertEqual(md.corrosive, 9)
     self.assertEqual(md.base, 9)
     self.assertEqual(md.noble, 9)
     self.assertEqual(md.rare, 9)
     self.assertEqual(md.precious, 9)
     self.assertEqual(md.radioactive, 9)
     self.assertEqual(md.exotic, 9)
Exemplo n.º 4
0
 def test_process_aggregates_three_systems(self):
     """
     Process aggregates when there are three systems
     """
     sys1 = self.s.add_system(1, 'System', 'Alpha', 5000, 5000,
                              'blue dwarf', '')
     sys1.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     sys2 = self.s.add_system(2, 'System', 'Beta', 5500, 5500, 'blue dwarf',
                              '')
     sys2.addplanet(
         Planet(2, 'Acid', 'Acid World', 1, 1, 100, 1, 5, 0,
                MinData(radioactive=3, )))
     sys3 = self.s.add_system(3, 'System', 'Gamma', 6000, 6000,
                              'blue dwarf', '')
     sys3.addplanet(
         Planet(3, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0,
                MinData(exotic=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 9)
     self.assertEqual(self.s.agg_max_value, 75)
     self.assertEqual(self.s.agg_spread, 66)
     self.assertEqual(self.s.bio_agg_min_value, 0)
     self.assertEqual(self.s.bio_agg_max_value, 10)
     self.assertEqual(self.s.bio_agg_spread, 10)
Exemplo n.º 5
0
 def test_apply_filters_empty_filters(self):
     """
     Tests applying filters when there are none to apply.  System should
     remain highlighted, and all planetary resources included in the
     aggregate.
     """
     self.s.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     self.s.addplanet(
         Planet(2, 'Chlorine', 'Chlorine World', 1, 1, 100, 1, 15, 10,
                MinData(
                    base=1,
                    radioactive=5,
                )))
     self.s.apply_filters(Filter(), Filter())
     self.assertEqual(self.s.highlight, True)
     self.assertEqual(self.s.mineral_agg.value(), 52)
     self.assertEqual(self.s.mineral_agg_full.value(), 52)
     self.assertEqual(self.s.mineral_agg.base, 4)
     self.assertEqual(self.s.mineral_agg_full.base, 4)
     self.assertEqual(self.s.mineral_agg.radioactive, 5)
     self.assertEqual(self.s.mineral_agg_full.radioactive, 5)
     self.assertEqual(self.s.bio_agg, 25)
     self.assertEqual(self.s.bio_agg_full, 25)
     self.assertEqual(self.s.bio_danger_agg, 15)
     self.assertEqual(self.s.bio_danger_agg_full, 15)
Exemplo n.º 6
0
 def test_add_radioactive(self):
     """
     Tests adding radioactive
     """
     md = MinData()
     md2 = MinData(radioactive=1)
     md.add(md2)
     self.assertEqual(md.radioactive, 1)
Exemplo n.º 7
0
 def test_add_precious(self):
     """
     Tests adding precious
     """
     md = MinData()
     md2 = MinData(precious=1)
     md.add(md2)
     self.assertEqual(md.precious, 1)
Exemplo n.º 8
0
 def test_add_noble(self):
     """
     Tests adding noble
     """
     md = MinData()
     md2 = MinData(noble=1)
     md.add(md2)
     self.assertEqual(md.noble, 1)
Exemplo n.º 9
0
 def test_add_base(self):
     """
     Tests adding base
     """
     md = MinData()
     md2 = MinData(base=1)
     md.add(md2)
     self.assertEqual(md.base, 1)
Exemplo n.º 10
0
 def test_add_corrosive(self):
     """
     Tests adding corrosive
     """
     md = MinData()
     md2 = MinData(corrosive=1)
     md.add(md2)
     self.assertEqual(md.corrosive, 1)
Exemplo n.º 11
0
 def test_add_common(self):
     """
     Tests adding common
     """
     md = MinData()
     md2 = MinData(common=1)
     md.add(md2)
     self.assertEqual(md.common, 1)
Exemplo n.º 12
0
 def test_add_exotic(self):
     """
     Tests adding exotic
     """
     md = MinData()
     md2 = MinData(exotic=1)
     md.add(md2)
     self.assertEqual(md.exotic, 1)
Exemplo n.º 13
0
 def test_add_planet_type_double(self):
     """
     Tests `add_planet_type` by adding a two planets with the same type
     """
     p = Planet(1, 'Planet I', 'Acid World', 1, 1, 100, 1, 10, 5, MinData())
     p2 = Planet(2, 'Planet II', 'Acid World', 1, 1, 100, 1, 10, 5,
                 MinData())
     self.s.add_planet_type(p)
     self.s.add_planet_type(p2)
     self.assertEqual(len(self.s.planet_types), 1)
     self.assertIn('Acid', self.s.planet_types)
Exemplo n.º 14
0
 def test_add_two_planets(self):
     """
     Tests adding two planets
     """
     self.assertEqual(len(self.s.planets), 0)
     self.s.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0, MinData()))
     self.s.addplanet(
         Planet(2, 'Chlorine', 'Chlorine World', 1, 1, 100, 1, 0, 0,
                MinData()))
     self.assertEqual(len(self.s.planets), 2)
Exemplo n.º 15
0
 def test_add_planet_type_two_types(self):
     """
     Tests `add_planet_type` by adding a two planets with different types
     """
     p = Planet(1, 'Planet I', 'Acid World', 1, 1, 100, 1, 10, 5, MinData())
     p2 = Planet(2, 'Planet II', 'Treasure World', 1, 1, 100, 1, 10, 5,
                 MinData())
     self.s.add_planet_type(p)
     self.s.add_planet_type(p2)
     self.assertEqual(len(self.s.planet_types), 2)
     self.assertIn('Acid', self.s.planet_types)
     self.assertIn('Treasure', self.s.planet_types)
Exemplo n.º 16
0
 def setUp(self):
     """
     Some objects which we're likely to want in various tests
     """
     self.planet_acid = Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0,
                               MinData())
     self.planet_chlorine = Planet(2, 'Chlorine', 'Chlorine World', 1, 1,
                                   100, 1, 0, 0, MinData())
     self.planet_dust = Planet(3, 'Dust', 'Dust World', 1, 1, 100, 1, 0, 0,
                               MinData())
     self.planet_emerald = Planet(4, 'Emerald', 'Emerald World', 1, 1, 100,
                                  1, 0, 0, MinData())
Exemplo n.º 17
0
 def test_value_combined(self):
     """
     Tests combined value
     """
     md = MinData(common=1,
                  corrosive=2,
                  base=3,
                  noble=4,
                  rare=5,
                  precious=6,
                  radioactive=7,
                  exotic=8)
     self.assertEqual(md.value(), 347)
Exemplo n.º 18
0
 def test_worth_combined(self):
     """
     Tests combined worth
     """
     md = MinData(common=1,
                  corrosive=2,
                  base=3,
                  noble=4,
                  rare=5,
                  precious=6,
                  radioactive=7,
                  exotic=8)
     self.assertAlmostEqual(md.worth(), 9.639, 3)
Exemplo n.º 19
0
 def test_weight_combined(self):
     """
     Tests combined weight
     """
     md = MinData(common=1,
                  corrosive=2,
                  base=3,
                  noble=4,
                  rare=5,
                  precious=6,
                  radioactive=7,
                  exotic=8)
     self.assertEqual(md.weight(), 36)
Exemplo n.º 20
0
 def test_no_match_rev_tectonics(self):
     """
     Tests matching on a planet, with greater-than matches, which fails
     due to tectonics
     """
     p = Planet(1, 'Acid', 'Acid World', 1, 4, 100, 1, 100, 100, MinData())
     self.assertEqual(self.saf_r.approve(p), False)
Exemplo n.º 21
0
 def test_add_planet_type_single(self):
     """
     Tests `add_planet_type` by adding a single planet
     """
     p = Planet(1, 'Planet I', 'Acid World', 1, 1, 100, 1, 10, 5, MinData())
     self.s.add_planet_type(p)
     self.assertEqual(len(self.s.planet_types), 1)
     self.assertIn('Acid', self.s.planet_types)
Exemplo n.º 22
0
 def test_add_one_planet(self):
     """
     Tests adding a single planet
     """
     self.assertEqual(len(self.s.planets), 0)
     p = Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0, MinData())
     p2 = self.s.addplanet(p)
     self.assertEqual(p, p2)
     self.assertEqual(len(self.s.planets), 1)
Exemplo n.º 23
0
 def test_add_planet_type_no_world(self):
     """
     Tests `add_planet_type` by adding a single planet whose type does not
     include "World".  (Are there any planets actually like this?)
     """
     p = Planet(1, 'Planet I', 'StarBase', 1, 1, 100, 1, 10, 5, MinData())
     self.s.add_planet_type(p)
     self.assertEqual(len(self.s.planet_types), 1)
     self.assertIn('StarBase', self.s.planet_types)
Exemplo n.º 24
0
 def test_bio_intensity_single(self):
     """
     Tests bio intensity for a single system
     """
     sys1 = self.s.add_system(1, 'System', 'Alpha', 5000, 5000,
                              'blue dwarf', '')
     sys1.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     self.s.process_aggregates()
     self.assertAlmostEqual(self.s.bio_intensity(sys1), 1)
Exemplo n.º 25
0
 def test_process_aggregates_two_systems(self):
     """
     Process aggregates when there are two systems
     """
     sys1 = self.s.add_system(1, 'System', 'Alpha', 5000, 5000,
                              'blue dwarf', '')
     sys1.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     sys2 = self.s.add_system(2, 'System', 'Beta', 5500, 5500, 'blue dwarf',
                              '')
     sys2.addplanet(
         Planet(2, 'Acid', 'Acid World', 1, 1, 100, 1, 5, 0,
                MinData(radioactive=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 9)
     self.assertEqual(self.s.agg_max_value, 24)
     self.assertEqual(self.s.agg_spread, 15)
     self.assertEqual(self.s.bio_agg_min_value, 5)
     self.assertEqual(self.s.bio_agg_max_value, 10)
     self.assertEqual(self.s.bio_agg_spread, 5)
Exemplo n.º 26
0
 def test_process_aggregates_two_planets_both_pass_agg_filter(self):
     """
     Process aggregates when there is one system whose planets all
     pass the aggregate filters
     """
     f = SafetyAggFilter()
     self.s.aggfilter.add(f)
     sys = self.s.add_system(1, 'System', 'Alpha', 5000, 5000, 'blue dwarf',
                             '')
     sys.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     sys.addplanet(
         Planet(2, 'Acid', 'Acid World', 3, 3, 100, 1, 5, 0,
                MinData(radioactive=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 33)
     self.assertEqual(self.s.agg_max_value, 33)
     self.assertEqual(self.s.agg_spread, 0)
     self.assertEqual(self.s.bio_agg_min_value, 15)
     self.assertEqual(self.s.bio_agg_max_value, 15)
     self.assertEqual(self.s.bio_agg_spread, 0)
Exemplo n.º 27
0
 def test_bio_intensity_multiple(self):
     """
     Tests bio intensity for multiple systems
     """
     sys1 = self.s.add_system(1, 'System', 'Alpha', 5000, 5000,
                              'blue dwarf', '')
     sys1.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     sys2 = self.s.add_system(2, 'System', 'Beta', 5500, 5500, 'blue dwarf',
                              '')
     sys2.addplanet(
         Planet(2, 'Acid', 'Acid World', 1, 1, 100, 1, 5, 0,
                MinData(radioactive=3, )))
     sys3 = self.s.add_system(3, 'System', 'Gamma', 6000, 6000,
                              'blue dwarf', '')
     sys3.addplanet(
         Planet(3, 'Acid', 'Acid World', 1, 1, 100, 1, 0, 0,
                MinData(exotic=3, )))
     self.s.process_aggregates()
     self.assertAlmostEqual(self.s.bio_intensity(sys3), 0)
     self.assertAlmostEqual(self.s.bio_intensity(sys2), .5)
     self.assertAlmostEqual(self.s.bio_intensity(sys1), 1)
Exemplo n.º 28
0
 def test_process_aggregates_one_system(self):
     """
     Process aggregates when there is one system
     """
     sys = self.s.add_system(1, 'System', 'Alpha', 5000, 5000, 'blue dwarf',
                             '')
     sys.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 9)
     self.assertEqual(self.s.agg_max_value, 9)
     self.assertEqual(self.s.agg_spread, 0)
     self.assertEqual(self.s.bio_agg_min_value, 10)
     self.assertEqual(self.s.bio_agg_max_value, 10)
     self.assertEqual(self.s.bio_agg_spread, 0)
Exemplo n.º 29
0
 def test_process_aggregates_one_system_fails_display_filter(self):
     """
     Process aggregates when there is one system which fails the display
     filters
     """
     self.s.dispfilter.add(NameDispFilter('Yehat', False))
     sys = self.s.add_system(1, 'System', 'Alpha', 5000, 5000, 'blue dwarf',
                             '')
     sys.addplanet(
         Planet(1, 'Acid', 'Acid World', 1, 1, 100, 1, 10, 5,
                MinData(base=3, )))
     self.s.process_aggregates()
     self.assertEqual(self.s.agg_min_value, 0)
     self.assertEqual(self.s.agg_max_value, 0)
     self.assertEqual(self.s.agg_spread, 0)
     self.assertEqual(self.s.bio_agg_min_value, 0)
     self.assertEqual(self.s.bio_agg_max_value, 0)
     self.assertEqual(self.s.bio_agg_spread, 0)
Exemplo n.º 30
0
 def test_apply_filters_dont_highlight(self):
     """
     Tests applying filters when one makes the system not highlight
     """
     self.s.addplanet(
         Planet(2, 'Chlorine', 'Chlorine World', 1, 1, 100, 1, 15, 10,
                MinData(
                    base=1,
                    radioactive=5,
                )))
     f = Filter()
     f.add(TypeDispFilter('Syreen'))
     self.s.apply_filters(f, Filter())
     self.assertEqual(self.s.highlight, False)
     self.assertEqual(self.s.mineral_agg.value(), 43)
     self.assertEqual(self.s.mineral_agg_full.value(), 43)
     self.assertEqual(self.s.bio_agg, 15)
     self.assertEqual(self.s.bio_agg_full, 15)
     self.assertEqual(self.s.bio_danger_agg, 10)
     self.assertEqual(self.s.bio_danger_agg_full, 10)