def METHOD_NAME(sample_model_fcn2,
                                  oil, temp, expected_balance):
    '''
    test bio degradation outputs post step for a full run of model. Dump json
    for 'weathering_model.json' in dump directory
    '''
    model = sample_model_weathering2(sample_model_fcn2, oil, temp)
    # model.duration = timedelta(days=5)
    model.environment += [Water(temp), wind, waves]
    model.weatherers += Evaporation()
    model.weatherers += NaturalDispersion()
    # model.weatherers += Dissolution(waves)
    model.weatherers += Biodegradation()
    for sc in model.spills.items():
        print(sc.__dict__.keys())
        print(sc._data_arrays)
        print('num spills:', len(sc.spills))
        print('spill[0] amount:', sc.spills[0].amount)
        original_amount = sc.spills[0].amount
    # set make_default_refs to True for objects contained in model after adding
    # objects to the model
    model.set_make_default_refs(True)
    model.setup_model_run()
    bio_degradated = []
    for step in model:
        for sc in model.spills.items():
            if step['step_num'] > 0:
                assert (sc.mass_balance['bio_degradation'] > 0)
            if 'bio_degradation' in sc.mass_balance:
                bio_degradated.append(sc.mass_balance['bio_degradation'])
    print('Bio degradated amount: {}'
          .format(bio_degradated[-1]))
    print('Fraction bio degradated after full run: {}'
          .format(bio_degradated[-1] / original_amount))
    assert bio_degradated[0] == 0.0
    # assert np.isclose(bio_degradated[-1], expected_balance