diff options
| author | Amir Rajan <[email protected]> | 2021-04-10 03:51:14 -0500 |
|---|---|---|
| committer | Amir Rajan <[email protected]> | 2021-04-10 03:51:14 -0500 |
| commit | 00e85147c9a1dd35a0857f361e5833a1c25f4a0a (patch) | |
| tree | 52534d292ca3fa5733584eb926116228cb3551af /samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb | |
| parent | a2d92c2bf09bcdc494f1391af69b707cca281a16 (diff) | |
| download | dragonruby-game-toolkit-contrib-00e85147c9a1dd35a0857f361e5833a1c25f4a0a.tar.gz dragonruby-game-toolkit-contrib-00e85147c9a1dd35a0857f361e5833a1c25f4a0a.zip | |
Synced from DRGTK 2.10.
Diffstat (limited to 'samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb')
| -rw-r--r-- | samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb b/samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb new file mode 100644 index 0000000..dac14b4 --- /dev/null +++ b/samples/10_advanced_debugging/03_unit_tests/nil_coercion_tests.rb @@ -0,0 +1,92 @@ +# numbers +def test_open_entity_add_number args, assert + assert.nil! args.state.i_value + args.state.i_value += 5 + assert.equal! args.state.i_value, 5 + + assert.nil! args.state.f_value + args.state.f_value += 5.5 + assert.equal! args.state.f_value, 5.5 +end + +def test_open_entity_subtract_number args, assert + assert.nil! args.state.i_value + args.state.i_value -= 5 + assert.equal! args.state.i_value, -5 + + assert.nil! args.state.f_value + args.state.f_value -= 5.5 + assert.equal! args.state.f_value, -5.5 +end + +def test_open_entity_multiply_number args, assert + assert.nil! args.state.i_value + args.state.i_value *= 5 + assert.equal! args.state.i_value, 0 + + assert.nil! args.state.f_value + args.state.f_value *= 5.5 + assert.equal! args.state.f_value, 0 +end + +def test_open_entity_divide_number args, assert + assert.nil! args.state.i_value + args.state.i_value /= 5 + assert.equal! args.state.i_value, 0 + + assert.nil! args.state.f_value + args.state.f_value /= 5.5 + assert.equal! args.state.f_value, 0 +end + +# array +def test_open_entity_add_array args, assert + assert.nil! args.state.values + args.state.values += [:a, :b, :c] + assert.equal! args.state.values, [:a, :b, :c] +end + +def test_open_entity_subtract_array args, assert + assert.nil! args.state.values + args.state.values -= [:a, :b, :c] + assert.equal! args.state.values, [] +end + +def test_open_entity_shovel_array args, assert + assert.nil! args.state.values + args.state.values << :a + assert.equal! args.state.values, [:a] +end + +def test_open_entity_enumerate args, assert + assert.nil! args.state.values + args.state.values = args.state.values.map_with_index { |i| i } + assert.equal! args.state.values, [] + + assert.nil! args.state.values_2 + args.state.values_2 = args.state.values_2.map { |i| i } + assert.equal! args.state.values_2, [] + + assert.nil! args.state.values_3 + args.state.values_3 = args.state.values_3.flat_map { |i| i } + assert.equal! args.state.values_3, [] +end + +# hashes +def test_open_entity_indexer args, assert + GTK::Entity.__reset_id__! + assert.nil! args.state.values + args.state.values[:test] = :value + assert.equal! args.state.values.to_s, { entity_id: 1, entity_name: :values, entity_keys_by_ref: {}, test: :value }.to_s +end + +# bug +def test_open_entity_nil_bug args, assert + GTK::Entity.__reset_id__! + args.state.foo.a + args.state.foo.b + @hello[:foobar] + assert.nil! args.state.foo.a, "a was not nil." + # the line below fails + # assert.nil! args.state.foo.b, "b was not nil." +end |
