< Summary

Class:Door
Assembly:Test
File(s):D:/--UnityProject/VR/subjects1_for_analysis/unity-vr-maze-master/unity-vr-maze-master/Assets/Maze/Scripts/Door.cs
Covered lines:50
Uncovered lines:5
Coverable lines:55
Total lines:114
Line coverage:90.9% (50 of 55)
Covered branches:0
Total branches:0
Covered methods:7
Total methods:7
Method coverage:100% (7 of 7)

Coverage History

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Door()0%000100%
Awake()0%000100%
Update()0%00085.71%
Open()0%00070%
Close()0%000100%
Unlock()0%000100%
PlaySound(...)0%000100%

File(s)

D:/--UnityProject/VR/subjects1_for_analysis/unity-vr-maze-master/unity-vr-maze-master/Assets/Maze/Scripts/Door.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class Door : MonoBehaviour
 6{
 7    private enum State
 8    {
 9        Closed,
 10        Opening,
 11        Closing,
 12        Opened
 13    }
 14
 15    [Header("Sounds")]
 416    public AudioClip open_fail_sound = null;
 417    public AudioClip open_success_sound = null;
 18
 419    private bool locked = true;
 420    private State _state = State.Closed;
 421    private float _slide_speed = 2.0f;
 422    private float _opened_position_offset = 7.0f;
 23    private Vector3 _initial_position;
 424    private Vector3 _slide_vector = new Vector3(0f, 1f, 0f);
 25
 126    void Awake() {
 27        // save initial door position
 128        _initial_position = gameObject.transform.position;
 129    }
 30
 8507131    void Update() {
 8507132        switch (_state)
 33        {
 34            case State.Closed:
 5800635                break;
 36
 37            case State.Opening:
 14338                if (gameObject.transform.position.y < _initial_position.y + _opened_position_offset)
 14339                {
 40                    // slide the door to open
 14341                    gameObject.transform.position = gameObject.transform.position + _slide_vector * _slide_speed * Time.
 14342                } else
 043                {
 044                    _state = State.Opened;
 045                }
 14346                break;
 47
 48            case State.Closing:
 14649                if (gameObject.transform.position.y > _initial_position.y)
 14550                {
 51                    // slide the door to open
 14552                    gameObject.transform.position = gameObject.transform.position - _slide_vector * _slide_speed * Time.
 14553                }
 54                else
 155                {
 156                    _state = State.Opened;
 157                }
 14658                break;
 59
 60            case State.Opened:
 2677661                break;
 62        }
 8507163    }
 64
 65    /**
 66     * Method that opens the door
 67     */
 68    public void Open()
 169    {
 70        // only affects closed door
 171        if (_state == State.Closed && !locked)
 172        {
 73            // start opening
 174            PlaySound(open_success_sound);
 175            _state = State.Opening;
 176        } else {
 77            // cannot open
 078            PlaySound(open_fail_sound);
 079        }
 180    }
 81
 82    /**
 83     * Method that closes the door
 84     */
 85    public void Close()
 186    {
 87        // only affects opened or opening door
 188        if (_state == State.Opened || _state == State.Opening)
 189        {
 90            // start closing
 191            PlaySound(open_success_sound);
 192            _state = State.Closing;
 193        }
 194    }
 95
 96    /**
 97     * Unlock the door
 98     */
 99    public void Unlock()
 2100    {
 2101        locked = false;
 2102    }
 103
 104    /**
 105     * Utility method for convenience
 106     */
 107    protected void PlaySound(AudioClip clip)
 2108    {
 2109        AudioSource player = gameObject.GetComponent<AudioSource>();
 2110        player.clip = clip;
 2111        player.Play();
 2112    }
 113
 114}